[tbb] 01/64: Imported Upstream version 2.0r014

Graham Inggs ginggs at moszumanska.debian.org
Mon Jul 3 12:27:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

ginggs pushed a commit to branch master
in repository tbb.

commit 204b620483e411aff2c3762278a1fa01359c3cd7
Author: Graham Inggs <ginggs at debian.org>
Date:   Mon Jul 3 14:13:21 2017 +0200

    Imported Upstream version 2.0r014
---
 COPYING                                            |   353 +
 Makefile                                           |   123 +
 README                                             |     5 +
 build/FreeBSD.gcc.inc                              |    97 +
 build/FreeBSD.inc                                  |    81 +
 build/Makefile.tbb                                 |    86 +
 build/Makefile.tbbmalloc                           |   101 +
 build/Makefile.test                                |   198 +
 build/SunOS.gcc.inc                                |    97 +
 build/SunOS.inc                                    |    81 +
 build/codecov.txt                                  |     3 +
 build/common.inc                                   |    89 +
 build/common_rules.inc                             |    75 +
 build/detect.js                                    |   114 +
 build/generate_tbbvars.bat                         |   102 +
 build/generate_tbbvars.sh                          |   119 +
 build/index.html                                   |   225 +
 build/linux.gcc.inc                                |    98 +
 build/linux.icc.inc                                |    95 +
 build/linux.inc                                    |    89 +
 build/macos.gcc.inc                                |    73 +
 build/macos.icc.inc                                |    71 +
 build/macos.inc                                    |    84 +
 build/version_info_linux.sh                        |    41 +
 build/version_info_macos.sh                        |    39 +
 build/version_info_windows.js                      |   131 +
 build/windows.cl.inc                               |   122 +
 build/windows.icl.inc                              |   133 +
 build/windows.inc                                  |    73 +
 examples/GettingStarted/index.html                 |    25 +
 examples/GettingStarted/sub_string_finder/Makefile |    48 +
 .../sub_string_finder/Makefile.windows             |    46 +
 .../GettingStarted/sub_string_finder/index.html    |    64 +
 .../sub_string_finder/sub_string_finder.cpp        |    85 +
 .../sub_string_finder_extended.cpp                 |   124 +
 .../sub_string_finder/sub_string_finder_pretty.cpp |    95 +
 .../sub_string_finder/vc7.1/sub_string_finder.sln  |    40 +
 .../sub_string_finder/vc7.1/sub_string_finder.suo  |   Bin 0 -> 11264 bytes
 .../vc7.1/sub_string_finder.vcproj                 |   126 +
 .../vc7.1/sub_string_finder_extended.vcproj        |   126 +
 .../vc7.1/sub_string_finder_pretty.vcproj          |   126 +
 .../sub_string_finder/vc8/sub_string_finder.sln    |    50 +
 .../sub_string_finder/vc8/sub_string_finder.suo    |   Bin 0 -> 16896 bytes
 .../sub_string_finder/vc8/sub_string_finder.vcproj |   348 +
 .../vc8/sub_string_finder_extended.vcproj          |   348 +
 .../vc8/sub_string_finder_pretty.vcproj            |   348 +
 .../sub_string_finder.xcodeproj/project.pbxproj    |   566 +
 examples/Makefile                                  |   106 +
 examples/common/gui/Makefile.win                   |    79 +
 examples/common/gui/convideo.cpp                   |   138 +
 examples/common/gui/ddvideo.cpp                    |   574 +
 examples/common/gui/dxcheck.bat                    |    36 +
 examples/common/gui/gdivideo.cpp                   |   154 +
 examples/common/gui/macvideo.cpp                   |  1491 ++
 examples/common/gui/video.h                        |   177 +
 examples/common/gui/winvideo.h                     |   271 +
 examples/common/gui/xvideo.cpp                     |   350 +
 examples/common/index.html                         |    36 +
 .../concurrent_hash_map/count_strings/Makefile     |    47 +
 .../count_strings/Makefile.windows                 |    47 +
 .../count_strings/count_strings.cpp                |   172 +
 .../concurrent_hash_map/count_strings/index.html   |    51 +
 .../count_strings/vc7.1/count_strings.sln          |    21 +
 .../count_strings/vc7.1/count_strings.suo          |   Bin 0 -> 8704 bytes
 .../count_strings/vc7.1/count_strings.vcproj       |   129 +
 .../count_strings/vc8/count_strings.sln            |    25 +
 .../count_strings/vc8/count_strings.suo            |   Bin 0 -> 9216 bytes
 .../count_strings/vc8/count_strings.vcproj         |   352 +
 .../xcode/count_strings.xcodeproj/project.pbxproj  |   296 +
 examples/concurrent_hash_map/index.html            |    25 +
 examples/index.html                                |   172 +
 examples/parallel_for/index.html                   |    27 +
 examples/parallel_for/seismic/Makefile             |    96 +
 examples/parallel_for/seismic/Makefile.windows     |    59 +
 .../parallel_for/seismic/SeismicSimulation.cpp     |   415 +
 examples/parallel_for/seismic/index.html           |   105 +
 .../seismic/vc7.1/SeismicSimulation.ico            |   Bin 0 -> 23558 bytes
 .../seismic/vc7.1/SeismicSimulation.rc             |   146 +
 .../seismic/vc7.1/SeismicSimulation.sln            |    27 +
 .../seismic/vc7.1/SeismicSimulation.suo            |   Bin 0 -> 13312 bytes
 .../seismic/vc7.1/SeismicSimulation.vcproj         |   309 +
 examples/parallel_for/seismic/vc7.1/resource.h     |    32 +
 examples/parallel_for/seismic/vc7.1/small.ico      |   Bin 0 -> 23558 bytes
 .../parallel_for/seismic/vc8/SeismicSimulation.ico |   Bin 0 -> 23558 bytes
 .../parallel_for/seismic/vc8/SeismicSimulation.rc  |   145 +
 .../parallel_for/seismic/vc8/SeismicSimulation.sln |    37 +
 .../parallel_for/seismic/vc8/SeismicSimulation.suo |   Bin 0 -> 11264 bytes
 .../seismic/vc8/SeismicSimulation.vcproj           |   812 +
 examples/parallel_for/seismic/vc8/resource.h       |    32 +
 examples/parallel_for/seismic/vc8/small.ico        |   Bin 0 -> 23558 bytes
 .../seismic/xcode/English.lproj/InfoPlist.strings  |     3 +
 .../xcode/English.lproj/main.nib/classes.nib       |     4 +
 .../seismic/xcode/English.lproj/main.nib/info.nib  |    26 +
 .../xcode/English.lproj/main.nib/objects.xib       |   183 +
 examples/parallel_for/seismic/xcode/Info.plist     |    26 +
 .../seismic/xcode/SeismicSimulation.pch            |     5 +
 .../SeismicSimulation.xcodeproj/project.pbxproj    |   295 +
 examples/parallel_for/tacheon/Makefile             |   199 +
 examples/parallel_for/tacheon/Makefile.windows     |   133 +
 examples/parallel_for/tacheon/dat/820spheres.dat   |  1671 ++
 examples/parallel_for/tacheon/dat/balls.dat        | 14804 +++++++++++++++
 examples/parallel_for/tacheon/dat/balls3.dat       | 14804 +++++++++++++++
 examples/parallel_for/tacheon/dat/lattice.dat      | 18012 +++++++++++++++++++
 examples/parallel_for/tacheon/dat/model2.dat       |   104 +
 examples/parallel_for/tacheon/dat/teapot.dat       |  9279 ++++++++++
 examples/parallel_for/tacheon/dat/trypsin4pti.dat  |   538 +
 examples/parallel_for/tacheon/index.html           |   203 +
 examples/parallel_for/tacheon/src/api.cpp          |   431 +
 examples/parallel_for/tacheon/src/api.h            |   219 +
 examples/parallel_for/tacheon/src/apigeom.cpp      |   281 +
 examples/parallel_for/tacheon/src/apitrigeom.cpp   |   239 +
 examples/parallel_for/tacheon/src/apitrigeom.h     |    71 +
 examples/parallel_for/tacheon/src/bndbox.cpp       |   195 +
 examples/parallel_for/tacheon/src/bndbox.h         |    85 +
 examples/parallel_for/tacheon/src/box.cpp          |   181 +
 examples/parallel_for/tacheon/src/box.h            |    80 +
 examples/parallel_for/tacheon/src/camera.cpp       |   122 +
 examples/parallel_for/tacheon/src/camera.h         |    67 +
 examples/parallel_for/tacheon/src/coordsys.cpp     |   109 +
 examples/parallel_for/tacheon/src/coordsys.h       |    71 +
 examples/parallel_for/tacheon/src/cylinder.cpp     |   284 +
 examples/parallel_for/tacheon/src/cylinder.h       |    89 +
 examples/parallel_for/tacheon/src/extvol.cpp       |   324 +
 examples/parallel_for/tacheon/src/extvol.h         |    84 +
 examples/parallel_for/tacheon/src/getargs.cpp      |   207 +
 examples/parallel_for/tacheon/src/getargs.h        |    77 +
 examples/parallel_for/tacheon/src/global.cpp       |    88 +
 examples/parallel_for/tacheon/src/global.h         |    79 +
 examples/parallel_for/tacheon/src/grid.cpp         |   690 +
 examples/parallel_for/tacheon/src/grid.h           |   131 +
 examples/parallel_for/tacheon/src/imageio.cpp      |   160 +
 examples/parallel_for/tacheon/src/imageio.h        |    76 +
 examples/parallel_for/tacheon/src/imap.cpp         |   180 +
 examples/parallel_for/tacheon/src/imap.h           |    72 +
 examples/parallel_for/tacheon/src/intersect.cpp    |   190 +
 examples/parallel_for/tacheon/src/intersect.h      |    78 +
 examples/parallel_for/tacheon/src/jpeg.cpp         |   142 +
 examples/parallel_for/tacheon/src/jpeg.h           |    67 +
 examples/parallel_for/tacheon/src/light.cpp        |   141 +
 examples/parallel_for/tacheon/src/light.h          |    82 +
 examples/parallel_for/tacheon/src/machine.h        |    75 +
 examples/parallel_for/tacheon/src/macros.h         |    90 +
 examples/parallel_for/tacheon/src/objbound.cpp     |   349 +
 examples/parallel_for/tacheon/src/objbound.h       |    77 +
 examples/parallel_for/tacheon/src/parse.cpp        |   860 +
 examples/parallel_for/tacheon/src/parse.h          |   122 +
 examples/parallel_for/tacheon/src/plane.cpp        |   118 +
 examples/parallel_for/tacheon/src/plane.h          |    83 +
 examples/parallel_for/tacheon/src/ppm.cpp          |   127 +
 examples/parallel_for/tacheon/src/ppm.h            |    71 +
 examples/parallel_for/tacheon/src/pthread.cpp      |   167 +
 examples/parallel_for/tacheon/src/pthread.h        |   120 +
 examples/parallel_for/tacheon/src/quadric.cpp      |   183 +
 examples/parallel_for/tacheon/src/quadric.h        |    86 +
 examples/parallel_for/tacheon/src/render.cpp       |   106 +
 examples/parallel_for/tacheon/src/render.h         |    68 +
 examples/parallel_for/tacheon/src/ring.cpp         |   144 +
 examples/parallel_for/tacheon/src/ring.h           |    84 +
 examples/parallel_for/tacheon/src/shade.cpp        |   271 +
 examples/parallel_for/tacheon/src/shade.h          |    73 +
 examples/parallel_for/tacheon/src/sphere.cpp       |   146 +
 examples/parallel_for/tacheon/src/sphere.h         |    84 +
 examples/parallel_for/tacheon/src/texture.cpp      |   398 +
 examples/parallel_for/tacheon/src/texture.h        |    80 +
 examples/parallel_for/tacheon/src/tgafile.cpp      |   248 +
 examples/parallel_for/tacheon/src/tgafile.h        |    72 +
 examples/parallel_for/tacheon/src/trace.h          |   109 +
 examples/parallel_for/tacheon/src/trace.serial.cpp |   188 +
 examples/parallel_for/tacheon/src/trace.tbb.cpp    |   210 +
 examples/parallel_for/tacheon/src/trace.tbb1d.cpp  |   212 +
 examples/parallel_for/tacheon/src/trace_rest.cpp   |   151 +
 examples/parallel_for/tacheon/src/triangle.cpp     |   258 +
 examples/parallel_for/tacheon/src/triangle.h       |   105 +
 examples/parallel_for/tacheon/src/types.h          |   233 +
 examples/parallel_for/tacheon/src/ui.cpp           |   122 +
 examples/parallel_for/tacheon/src/ui.h             |    79 +
 examples/parallel_for/tacheon/src/util.cpp         |   204 +
 examples/parallel_for/tacheon/src/util.h           |    75 +
 examples/parallel_for/tacheon/src/vector.cpp       |   147 +
 examples/parallel_for/tacheon/src/vector.h         |    79 +
 examples/parallel_for/tacheon/src/video.cpp        |   221 +
 examples/parallel_for/tacheon/src/video.h          |    62 +
 examples/parallel_for/tacheon/src/vol.cpp          |   315 +
 examples/parallel_for/tacheon/src/vol.h            |    74 +
 examples/parallel_for/tacheon/vc7.1/gui.ico        |   Bin 0 -> 23558 bytes
 examples/parallel_for/tacheon/vc7.1/gui.rc         |    90 +
 examples/parallel_for/tacheon/vc7.1/resource.h     |     8 +
 examples/parallel_for/tacheon/vc7.1/small.ico      |   Bin 0 -> 23558 bytes
 .../tacheon/vc7.1/tacheon.serial.vcproj            |   239 +
 examples/parallel_for/tacheon/vc7.1/tacheon.sln    |    63 +
 examples/parallel_for/tacheon/vc7.1/tacheon.suo    |   Bin 0 -> 19968 bytes
 .../parallel_for/tacheon/vc7.1/tacheon.tbb.vcproj  |   255 +
 .../tacheon/vc7.1/tacheon.tbb1d.vcproj             |   255 +
 .../tacheon/vc7.1/tacheon.threads.vcproj           |   239 +
 examples/parallel_for/tacheon/vc7.1/tacheon.vcproj |   494 +
 .../parallel_for/tacheon/vc8/tacheon.serial.vcproj |   691 +
 examples/parallel_for/tacheon/vc8/tacheon.sln      |    92 +
 examples/parallel_for/tacheon/vc8/tacheon.suo      |   Bin 0 -> 33792 bytes
 .../parallel_for/tacheon/vc8/tacheon.tbb.vcproj    |   727 +
 .../parallel_for/tacheon/vc8/tacheon.tbb1d.vcproj  |   727 +
 .../tacheon/vc8/tacheon.threads.vcproj             |   691 +
 examples/parallel_for/tacheon/vc8/tacheon.vcproj   |  1042 ++
 .../tacheon/xcode/English.lproj/InfoPlist.strings  |     3 +
 .../xcode/English.lproj/main.nib/classes.nib       |     4 +
 .../tacheon/xcode/English.lproj/main.nib/info.nib  |    26 +
 .../xcode/English.lproj/main.nib/objects.xib       |   183 +
 examples/parallel_for/tacheon/xcode/Info.plist     |    26 +
 examples/parallel_for/tacheon/xcode/tacheon.pch    |     5 +
 .../xcode/tacheon.xcodeproj/project.pbxproj        |   930 +
 examples/parallel_reduce/convex_hull/Makefile      |    46 +
 .../parallel_reduce/convex_hull/Makefile.windows   |    46 +
 examples/parallel_reduce/convex_hull/convex_hull.h |   233 +
 .../convex_hull/convex_hull_bench.cpp              |   631 +
 .../convex_hull/convex_hull_sample.cpp             |   264 +
 examples/parallel_reduce/convex_hull/index.html    |    55 +
 .../convex_hull/vc7.1/convex_hull.sln              |    32 +
 .../convex_hull/vc7.1/convex_hull.suo              |   Bin 0 -> 10240 bytes
 .../convex_hull/vc7.1/convex_hull_bench.vcproj     |   138 +
 .../convex_hull/vc7.1/convex_hull_sample.vcproj    |   138 +
 .../convex_hull/vc8/convex_hull.sln                |    35 +
 .../convex_hull/vc8/convex_hull.suo                |   Bin 0 -> 12288 bytes
 .../convex_hull/vc8/convex_hull_benchmark.vcproj   |   362 +
 .../convex_hull/vc8/convex_hull_sample.vcproj      |   360 +
 .../xcode/convex_hull.xcodeproj/project.pbxproj    |   434 +
 examples/parallel_reduce/index.html                |    27 +
 examples/parallel_reduce/primes/Makefile           |    45 +
 examples/parallel_reduce/primes/Makefile.windows   |    45 +
 examples/parallel_reduce/primes/index.html         |    52 +
 examples/parallel_reduce/primes/primes.cpp         |   400 +
 examples/parallel_reduce/primes/vc7.1/primes.sln   |    21 +
 examples/parallel_reduce/primes/vc7.1/primes.suo   |   Bin 0 -> 9216 bytes
 .../parallel_reduce/primes/vc7.1/primes.vcproj     |   129 +
 examples/parallel_reduce/primes/vc8/primes.sln     |    25 +
 examples/parallel_reduce/primes/vc8/primes.suo     |   Bin 0 -> 9216 bytes
 examples/parallel_reduce/primes/vc8/primes.vcproj  |   352 +
 .../primes/xcode/primes.xcodeproj/project.pbxproj  |   296 +
 examples/parallel_while/index.html                 |    25 +
 .../parallel_while/parallel_preorder/Graph.cpp     |   106 +
 examples/parallel_while/parallel_preorder/Graph.h  |    90 +
 examples/parallel_while/parallel_preorder/Makefile |    45 +
 .../parallel_preorder/Makefile.windows             |    45 +
 examples/parallel_while/parallel_preorder/Matrix.h |    68 +
 .../parallel_while/parallel_preorder/index.html    |    93 +
 .../parallel_preorder/parallel_preorder.cpp        |   188 +
 .../parallel_preorder/vc7.1/parallel_preorder.sln  |    21 +
 .../parallel_preorder/vc7.1/parallel_preorder.suo  |   Bin 0 -> 9216 bytes
 .../vc7.1/parallel_preorder.vcproj                 |   143 +
 .../parallel_preorder/vc8/parallel_preorder.sln    |    25 +
 .../parallel_preorder/vc8/parallel_preorder.suo    |   Bin 0 -> 9728 bytes
 .../parallel_preorder/vc8/parallel_preorder.vcproj |   370 +
 .../parallel_preorder.xcodeproj/project.pbxproj    |   304 +
 examples/pipeline/index.html                       |    25 +
 examples/pipeline/text_filter/Makefile             |    48 +
 examples/pipeline/text_filter/Makefile.windows     |    50 +
 examples/pipeline/text_filter/index.html           |    56 +
 examples/pipeline/text_filter/text_filter.cpp      |   232 +
 .../pipeline/text_filter/vc7.1/text_filter.sln     |    21 +
 .../pipeline/text_filter/vc7.1/text_filter.suo     |   Bin 0 -> 13312 bytes
 .../pipeline/text_filter/vc7.1/text_filter.vcproj  |   135 +
 examples/pipeline/text_filter/vc8/text_filter.sln  |    25 +
 examples/pipeline/text_filter/vc8/text_filter.suo  |   Bin 0 -> 9728 bytes
 .../pipeline/text_filter/vc8/text_filter.vcproj    |   364 +
 .../xcode/text_filter.xcodeproj/project.pbxproj    |   314 +
 examples/task/index.html                           |    25 +
 examples/task/tree_sum/Makefile                    |    46 +
 examples/task/tree_sum/Makefile.windows            |    46 +
 .../task/tree_sum/OptimizedParallelSumTree.cpp     |    77 +
 examples/task/tree_sum/SerialSumTree.cpp           |    38 +
 examples/task/tree_sum/SimpleParallelSumTree.cpp   |    70 +
 examples/task/tree_sum/common.h                    |    44 +
 examples/task/tree_sum/index.html                  |    77 +
 examples/task/tree_sum/main.cpp                    |   193 +
 examples/task/tree_sum/vc7.1/tree_sum.sln          |    21 +
 examples/task/tree_sum/vc7.1/tree_sum.suo          |   Bin 0 -> 9216 bytes
 examples/task/tree_sum/vc7.1/tree_sum.vcproj       |   145 +
 examples/task/tree_sum/vc8/tree_sum.sln            |    25 +
 examples/task/tree_sum/vc8/tree_sum.suo            |   Bin 0 -> 9216 bytes
 examples/task/tree_sum/vc8/tree_sum.vcproj         |   368 +
 .../xcode/tree_sum.xcodeproj/project.pbxproj       |   325 +
 examples/test_all/fibonacci/Fibonacci.cpp          |   583 +
 examples/test_all/fibonacci/Makefile               |    45 +
 examples/test_all/fibonacci/Makefile.windows       |    45 +
 examples/test_all/fibonacci/index.html             |    54 +
 examples/test_all/fibonacci/vc7.1/fibonacci.sln    |    21 +
 examples/test_all/fibonacci/vc7.1/fibonacci.suo    |   Bin 0 -> 8704 bytes
 examples/test_all/fibonacci/vc7.1/fibonacci.vcproj |   128 +
 examples/test_all/fibonacci/vc8/fibonacci.sln      |    25 +
 examples/test_all/fibonacci/vc8/fibonacci.suo      |   Bin 0 -> 8704 bytes
 examples/test_all/fibonacci/vc8/fibonacci.vcproj   |   352 +
 .../xcode/fibonacci.xcodeproj/project.pbxproj      |   296 +
 examples/test_all/index.html                       |    25 +
 include/index.html                                 |    24 +
 include/tbb/_tbb_windef.h                          |    61 +
 include/tbb/aligned_space.h                        |    64 +
 include/tbb/atomic.h                               |   372 +
 include/tbb/blocked_range.h                        |   120 +
 include/tbb/blocked_range2d.h                      |    97 +
 include/tbb/blocked_range3d.h                      |   116 +
 include/tbb/cache_aligned_allocator.h              |   137 +
 include/tbb/concurrent_hash_map.h                  |   714 +
 include/tbb/concurrent_queue.h                     |   328 +
 include/tbb/concurrent_vector.h                    |   512 +
 include/tbb/machine/linux_em64t.h                  |   159 +
 include/tbb/machine/linux_ia32.h                   |   224 +
 include/tbb/machine/linux_itanium.h                |   179 +
 include/tbb/machine/mac_ppc.h                      |    98 +
 include/tbb/machine/windows_em64t.h                |   153 +
 include/tbb/machine/windows_ia32.h                 |   221 +
 include/tbb/machine/windows_ia32_inline.h          |   176 +
 include/tbb/mutex.h                                |   193 +
 include/tbb/parallel_for.h                         |   119 +
 include/tbb/parallel_reduce.h                      |   155 +
 include/tbb/parallel_scan.h                        |   340 +
 include/tbb/parallel_sort.h                        |   154 +
 include/tbb/parallel_while.h                       |   197 +
 include/tbb/partitioner.h                          |    80 +
 include/tbb/pipeline.h                             |   136 +
 include/tbb/queuing_mutex.h                        |   106 +
 include/tbb/queuing_rw_mutex.h                     |   164 +
 include/tbb/scalable_allocator.h                   |   140 +
 include/tbb/spin_mutex.h                           |   137 +
 include/tbb/spin_rw_mutex.h                        |   185 +
 include/tbb/task.h                                 |   492 +
 include/tbb/task_scheduler_init.h                  |    88 +
 include/tbb/tbb_machine.h                          |   495 +
 include/tbb/tbb_stddef.h                           |   174 +
 include/tbb/tick_count.h                           |   137 +
 index.html                                         |    40 +
 src/index.html                                     |    28 +
 src/tbb/Makefile                                   |    45 +
 src/tbb/cache_aligned_allocator.cpp                |   169 +
 src/tbb/concurrent_hash_map.cpp                    |    45 +
 src/tbb/concurrent_queue.cpp                       |   370 +
 src/tbb/concurrent_vector.cpp                      |   260 +
 src/tbb/em64t-masm/atomic_support.asm              |    80 +
 src/tbb/em64t-tbb-mac-export.txt                   |   127 +
 src/tbb/em64t-tbb.def                              |   139 +
 src/tbb/gate.h                                     |   224 +
 src/tbb/ia32-masm/atomic_support.asm               |   176 +
 src/tbb/ia32-masm/lock_byte.asm                    |    46 +
 src/tbb/ia32-tbb-mac-export.txt                    |   127 +
 src/tbb/ia32-tbb.def                               |   145 +
 src/tbb/itanium-gas/atomic_support.s               |   678 +
 src/tbb/itanium-gas/lock_byte.s                    |    54 +
 src/tbb/itanium-gas/log2.s                         |    67 +
 src/tbb/itanium-gas/pause.s                        |    41 +
 src/tbb/itanium-tbb.def                            |   169 +
 src/tbb/itt_notify.cpp                             |   140 +
 src/tbb/itt_notify.h                               |   116 +
 src/tbb/mutex.cpp                                  |   128 +
 src/tbb/pipeline.cpp                               |   280 +
 src/tbb/queuing_mutex.cpp                          |   116 +
 src/tbb/queuing_rw_mutex.cpp                       |   475 +
 src/tbb/spin_mutex.cpp                             |    64 +
 src/tbb/spin_rw_mutex.cpp                          |   164 +
 src/tbb/task.cpp                                   |  2028 +++
 src/tbb/tbb_misc.cpp                               |   169 +
 src/tbb/tbb_misc.h                                 |   203 +
 src/tbb/tbb_resource.rc                            |   119 +
 src/tbb/tbb_version.h                              |    98 +
 src/tbbmalloc/Customize.h                          |    82 +
 src/tbbmalloc/LifoQueue.h                          |    97 +
 src/tbbmalloc/MapMemory.h                          |    82 +
 src/tbbmalloc/MemoryAllocator.cpp                  |  1580 ++
 src/tbbmalloc/Statistics.h                         |   113 +
 src/tbbmalloc/TypeDefinitions.h                    |    68 +
 src/tbbmalloc/em64t-malloc-mac-export.txt          |    31 +
 src/tbbmalloc/em64t-malloc.def                     |    33 +
 src/tbbmalloc/ia32-malloc-mac-export.txt           |    31 +
 src/tbbmalloc/ia32-malloc.def                      |    33 +
 src/tbbmalloc/tbbmalloc.cpp                        |    48 +
 src/tbbmalloc/tbbmalloc.rc                         |   122 +
 src/test/Makefile                                  |    44 +
 src/test/harness.h                                 |   226 +
 src/test/harness_allocator.h                       |   196 +
 src/test/harness_assert.h                          |    45 +
 src/test/harness_bad_expr.h                        |    79 +
 src/test/harness_cpu.h                             |    86 +
 src/test/harness_memory.h                          |    86 +
 src/test/test_ScalableAllocator.cpp                |    44 +
 src/test/test_ScalableAllocator_STL.cpp            |    52 +
 src/test/test_aligned_space.cpp                    |    85 +
 src/test/test_allocator.h                          |   221 +
 src/test/test_assembly.cpp                         |   300 +
 src/test/test_atomic.cpp                           |   443 +
 src/test/test_blocked_range.cpp                    |   130 +
 src/test/test_blocked_range2d.cpp                  |   154 +
 src/test/test_blocked_range3d.cpp                  |   185 +
 src/test/test_cache_aligned_allocator.cpp          |    42 +
 src/test/test_cache_aligned_allocator_STL.cpp      |    56 +
 src/test/test_concurrent_hash_map.cpp              |   511 +
 src/test/test_concurrent_hash_map_string.cpp       |    84 +
 src/test/test_concurrent_queue.cpp                 |   324 +
 src/test/test_concurrent_vector.cpp                |   570 +
 src/test/test_halt.cpp                             |   123 +
 src/test/test_handle_perror.cpp                    |    56 +
 src/test/test_inits_loop.cpp                       |    93 +
 src/test/test_malloc_compliance.cpp                |   724 +
 src/test/test_malloc_pure_c.c                      |    75 +
 src/test/test_model_plugin.cpp                     |   171 +
 src/test/test_mutex.cpp                            |   294 +
 src/test/test_mutex_native_threads.cpp             |   283 +
 src/test/test_openmp.cpp                           |   224 +
 src/test/test_parallel_for.cpp                     |   162 +
 src/test/test_parallel_reduce.cpp                  |   150 +
 src/test/test_parallel_scan.cpp                    |   272 +
 src/test/test_parallel_sort.cpp                    |   527 +
 src/test/test_parallel_while.cpp                   |   183 +
 src/test/test_pipeline.cpp                         |   173 +
 src/test/test_rwm_upgrade_downgrade.cpp            |    92 +
 src/test/test_task.cpp                             |   299 +
 src/test/test_task_leaks.cpp                       |   147 +
 src/test/test_task_scheduler_init.cpp              |    98 +
 src/test/test_tick_count.cpp                       |   160 +
 src/test/test_yield.cpp                            |    79 +
 415 files changed, 127249 insertions(+)

diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..5af6ed8
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,353 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+----------------     END OF Gnu General Public License     ----------------
+
+The source code of Threading Building Blocks is distributed under version 2
+of the GNU General Public License, with the so-called "runtime exception,"
+as follows (or see any header or implementation file):
+
+   As a special exception, you may use this file as part of a free software
+   library without restriction.  Specifically, if other files instantiate
+   templates or use macros or inline functions from this file, or you compile
+   this file and link it with other files to produce an executable, this
+   file does not by itself cause the resulting executable to be covered by
+   the GNU General Public License.  This exception does not however
+   invalidate any other reasons why the executable file might be covered by
+   the GNU General Public License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ee41b14
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,123 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+tbb_root?=.
+include $(tbb_root)/build/common.inc
+.PHONY: all tbb tbbmalloc test debug examples clean
+
+all: release debug examples
+
+tbb: tbb_release tbb_debug
+
+tbbmalloc: tbbmalloc_release tbbmalloc_debug
+
+test: tbbmalloc_test_release test_release tbbmalloc_test_debug test_debug
+
+test_no_depends: tbbmalloc_test_release_no_depends test_release_no_depends tbbmalloc_test_debug_no_depends test_debug_no_depends
+
+release: tbb_release tbbmalloc_release tbbmalloc_test_release test_release
+ 
+debug: tbb_debug tbbmalloc_debug tbbmalloc_test_debug test_debug
+
+examples: tbb tbbmalloc examples_debug clean_examples examples_release
+
+clean: clean_release clean_debug clean_examples
+	@echo clean done
+
+
+.PHONY: tbb_release tbb_debug test_release test_debug
+
+# do not delete double-space after -C option
+tbb_release: mkdir_release
+	$(MAKE) -C "$(work_dir)_release"  -r -f $(tbb_root)/build/Makefile.tbb cfg=release tbb_root=$(tbb_root)
+
+tbb_debug: mkdir_debug
+	$(MAKE) -C "$(work_dir)_debug"  -r -f $(tbb_root)/build/Makefile.tbb cfg=debug tbb_root=$(tbb_root)
+
+test_release: mkdir_release tbb_release test_release_no_depends
+test_release_no_depends: 
+	-$(MAKE) -C "$(work_dir)_release"  -r -f $(tbb_root)/build/Makefile.test cfg=release tbb_root=$(tbb_root) 
+
+test_debug: tbb_debug mkdir_debug test_debug_no_depends
+test_debug_no_depends:
+	-$(MAKE) -C "$(work_dir)_debug"  -r -f $(tbb_root)/build/Makefile.test cfg=debug tbb_root=$(tbb_root)
+
+.PHONY: tbbmalloc_release tbbmalloc_debug tbbmalloc_test_release tbbmalloc_test_debug
+
+tbbmalloc_release: mkdir_release
+	$(MAKE) -C "$(work_dir)_release"  -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc tbb_root=$(tbb_root)
+
+tbbmalloc_debug: mkdir_debug
+	$(MAKE) -C "$(work_dir)_debug"  -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc tbb_root=$(tbb_root)
+
+tbbmalloc_test_release: tbb_release tbbmalloc_release mkdir_release tbbmalloc_test_release_no_depends
+tbbmalloc_test_release_no_depends:
+	-$(MAKE) -C "$(work_dir)_release"  -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test tbb_root=$(tbb_root)
+
+tbbmalloc_test_debug: tbb_debug tbbmalloc_debug mkdir_debug tbbmalloc_test_debug_no_depends
+tbbmalloc_test_debug_no_depends:
+	-$(MAKE) -C "$(work_dir)_debug"  -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test tbb_root=$(tbb_root)
+
+.PHONY: examples_release examples_debug
+
+examples_release: tbb_release tbbmalloc_release
+	$(MAKE) -C examples -r -f Makefile tbb_root=.. release test
+
+examples_debug: tbb_debug tbbmalloc_debug
+	$(MAKE) -C examples -r -f Makefile tbb_root=.. debug test
+
+.PHONY: clean_release clean_debug clean_examples
+
+clean_%:
+	$(MAKE) -C "$(work_dir)_debug"  -r -f $(tbb_root)/build/Makefile.test cfg=debug tbb_root=$(tbb_root) $@
+	
+clean_release:
+	$(shell $(RM) $(work_dir)_release$(SLASH)*.* $(NUL))
+	$(shell $(RD) $(work_dir)_release $(NUL))
+
+clean_debug:
+	$(shell $(RM) $(work_dir)_debug$(SLASH)*.* $(NUL))
+	$(shell $(RD) $(work_dir)_debug $(NUL))
+	
+clean_examples:
+	$(shell $(MAKE) -s -i -r -C examples -f Makefile tbb_root=.. clean $(NUL))
+
+.PHONY: mkdir_release mkdir_debug
+
+mkdir_release:
+	$(shell $(MD) "$(work_dir)_release" $(NUL))
+	$(if $(subst undefined,,$(origin_build_dir)),,cd "$(work_dir)_release" && $(MAKE_TBBVARS) $(tbb_build_prefix)_release)
+
+mkdir_debug:
+	$(shell $(MD) "$(work_dir)_debug" $(NUL))
+	$(if $(subst undefined,,$(origin_build_dir)),,cd "$(work_dir)_debug" && $(MAKE_TBBVARS) $(tbb_build_prefix)_debug)
+
+info:
+	@echo OS: $(tbb_os)
+	@echo arch=$(arch)
+	@echo compiler=$(compiler)
+	@echo runtime=$(runtime)
+	@echo tbb_build_prefix=$(tbb_build_prefix)
diff --git a/README b/README
new file mode 100644
index 0000000..64a8e83
--- /dev/null
+++ b/README
@@ -0,0 +1,5 @@
+Threading Building Blocks - README
+
+To build and test, type 'gmake' in this directory.
+
+See index.html for directions and documentation.
diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc
new file mode 100644
index 0000000..589882e
--- /dev/null
+++ b/build/FreeBSD.gcc.inc
@@ -0,0 +1,97 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -MMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+TBB_NOSTRICT = 1
+
+CPLUS = g++ 
+INCLUDES += -I$(tbb_root)/src/tbb -I$(tbb_root)/include -I$(tbb_root)/src
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+        CPLUS_FLAGS = -DDO_ITT_NOTIFY -O2 -DUSE_PTHREAD -D__linux__ -D__custom_linux__
+endif
+ifeq ($(cfg), debug)
+        CPLUS_FLAGS = -DTBB_DO_ASSERT -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD -D__linux__ -D__custom_linux__
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (itanium,$(arch))
+# Position-independent code (PIC) is a must for IA-64
+    CPLUS_FLAGS += $(PIC_KEY)
+    $(PIC_KEY) = 
+endif 
+
+ifeq (em64t,$(arch))
+    CPLUS_FLAGS += -m64
+    LIB_LINK_FLAGS += -m64
+endif 
+
+ifeq (ia32,$(arch))
+    CPLUS_FLAGS += -m32
+    LIB_LINK_FLAGS += -m32
+endif 
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+%.$(OBJ): %.s
+	cpp $(ASM_FLAGS) <$< | grep -v '^#' >$*.tmp
+	$(ASM) -o $@ $*.tmp
+	rm $*.tmp
+
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (itanium,$(arch))
+    ASM=ias
+    TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+endif 
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/FreeBSD.inc b/build/FreeBSD.inc
new file mode 100644
index 0000000..0be7921
--- /dev/null
+++ b/build/FreeBSD.inc
@@ -0,0 +1,81 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef arch
+        ifeq ($(shell uname -m),i386)
+                export arch:=ia32
+        endif
+endif
+
+ifndef runtime
+        gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
+        os_version:=$(shell uname -r)
+        os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+#        export os_glibc_version_full:=$(shell rpm -qa | grep '^glibc-[0-9]' | sort -u | sed -e 's/^glibc-//')
+#        os_glibc_version:=$(shell echo "$(os_glibc_version_full)" | sed -e '2,$$d' -e 's/-.*$$//')
+#        export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
+        export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= > /dev/null 2>&1
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.tmp
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+        export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+        export LD_LIBRARY_PATH := .
+endif
+
+####### Build settigns ########################################################
+
+OBJ = o
+DLL = so
+
+ifeq ($(cfg),debug)
+    DEBUG_SUFFIX = _debug
+endif
+
+TBB.DEF = 
+TBB.DLL = libtbb$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).so
+MALLOC.LIB = $(MALLOC.DLL)
+
+TBB_NOSTRICT=1
+
+
+
diff --git a/build/Makefile.tbb b/build/Makefile.tbb
new file mode 100644
index 0000000..b584c54
--- /dev/null
+++ b/build/Makefile.tbb
@@ -0,0 +1,86 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Define rules for making the TBB shared library.
+#------------------------------------------------------------------------------
+
+tbb_root ?= "$(TBB20_INSTALL_DIR)"
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+$(warning CONFIG: cfg=$(cfg) arch=$(arch) compiler=$(compiler) os=$(tbb_os) runtime=$(runtime))
+
+default_tbb: $(TBB.DLL)
+.PHONY: default_tbb tbbvars clean
+.PRECIOUS: %.$(OBJ)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb
+
+CPLUS_FLAGS += $(PIC_KEY) $(WARNING_KEY)
+
+ifeq (1,$(TBB_NOSTRICT))
+# GNU 3.2.3 headers have a ISO syntax that is rejected by Intel compiler in -strict_ansi mode.
+# The Mac uses gcc, so the list is empty for that platform.
+# The files below need the -strict_ansi flag downgraded to -ansi to compile
+
+KNOWN_NOSTRICT = concurrent_hash_map.o \
+	concurrent_vector.o
+
+endif
+
+include $(tbb_root)/build/common_rules.inc
+
+# Object files (that were compiled from C++ code) that gmake up TBB
+TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
+		concurrent_queue.$(OBJ) \
+		concurrent_vector.$(OBJ) \
+		itt_notify.$(OBJ) \
+		cache_aligned_allocator.$(OBJ) \
+		pipeline.$(OBJ) \
+		queuing_mutex.$(OBJ) \
+		queuing_rw_mutex.$(OBJ) \
+		spin_rw_mutex.$(OBJ) \
+		spin_mutex.$(OBJ) \
+		task.$(OBJ) \
+		tbb_misc.$(OBJ) \
+		mutex.$(OBJ) 
+
+# Object files that gmake up TBB (TBB_ASM.OBJ is platform-specific)
+TBB.OBJ = $(TBB_CPLUS.OBJ) $(TBB_ASM.OBJ)
+
+$(TBB.DLL): $(TBB.OBJ) $(TBB.DEF) $(TBB.RES) tbbvars
+	$(CPLUS) $(TBB.OBJ) $(TBB.RES) $(LIBS) $(PIC_KEY) $(OUTPUT_KEY)$(TBB.DLL) $(LIB_LINK_FLAGS)
+
+
+#clean:
+#	$(RM) *.$(OBJ) *.$(DLL) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d core core.*[0-9][0-9]
+
+# Include automatically generated dependences
+-include *.d
diff --git a/build/Makefile.tbbmalloc b/build/Makefile.tbbmalloc
new file mode 100644
index 0000000..a8ed40a
--- /dev/null
+++ b/build/Makefile.tbbmalloc
@@ -0,0 +1,101 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------
+# Define rules for making the TBBMalloc shared library.
+#------------------------------------------------------
+
+default_malloc: malloc malloc_test
+
+tbb_root ?= $(TBB20_INSTALL_DIR)
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+
+MALLOC_ROOT ?= $(tbb_root)/src/tbbmalloc
+MALLOC_SOURCE_ROOT ?= $(MALLOC_ROOT)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
+VPATH += $(MALLOC_ROOT) $(MALLOC_SOURCE_ROOT)
+
+# the test lists defined here because they are first used right after
+MALLOC_MAIN_TESTS = test_ScalableAllocator.exe test_ScalableAllocator_STL.exe test_malloc_compliance.exe
+MALLOC_C_TESTS = test_malloc_pure_c.exe
+
+$(MALLOC_MAIN_TESTS) $(MALLOC_C_TESTS): CPLUS_FLAGS += $(WARNING_KEY)
+
+KNOWN_NOSTRICT = test_malloc_compliance.$(OBJ) test_ScalableAllocator_STL.$(OBJ)
+
+include $(tbb_root)/build/common_rules.inc
+
+# Object files that gmake up TBBMalloc
+MALLOC_CPLUS.OBJ = tbbmalloc.$(OBJ)
+MALLOC_CUSTOM.OBJ += tbb_misc_malloc.$(OBJ)
+MALLOC_ASM.OBJ = $(TBB_ASM.OBJ)
+
+# MALLOC_CPLUS.OBJ is built in two steps due to Intel Compiler Tracker # C69574
+MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) $(MALLOC_CUSTOM.OBJ) MemoryAllocator.$(OBJ)
+MALLOC_CPLUS.OBJ += MemoryAllocator.$(OBJ)
+
+
+$(MALLOC_CPLUS.OBJ): %.$(OBJ): %.cpp
+	$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(M_INCLUDES) $<
+
+tbb_misc_malloc.$(OBJ): tbb_misc.cpp version_string.tmp
+	$(CPLUS) $(COMPILE_ONLY) $(subst -strict_ansi,-ansi,$(M_CPLUS_FLAGS)) $(PIC_KEY) $(OUTPUTOBJ_KEY)$@ $(INCLUDE_KEY). $(INCLUDES) $<
+
+
+$(MALLOC.DLL): TBB.DEF=$(MALLOC.DEF)
+$(MALLOC.DLL): $(MALLOC.OBJ) $(MALLOC.DEF) $(TBBMALLOC.RES)
+	$(CPLUS) $(MALLOC.OBJ) $(TBBMALLOC.RES) $(LIBS) $(PIC_KEY) $(OUTPUT_KEY)$(MALLOC.DLL) $(LIB_LINK_FLAGS)
+
+malloc: $(MALLOC.DLL)
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc shared library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+MALLOC_MAIN_TESTS = test_ScalableAllocator.exe test_ScalableAllocator_STL.exe test_malloc_compliance.exe
+MALLOC_C_TESTS = test_malloc_pure_c.exe
+
+$(MALLOC_MAIN_TESTS): %.exe: %.$(OBJ) $(TBB.LIB) $(MALLOC.LIB)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBS) $(LINK_FLAGS)
+$(MALLOC_C_TESTS): %.exe: %.$(OBJ) $(MALLOC.LIB)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(INCLUDES) $^ $(LIBS) $(LINK_FLAGS)
+
+malloc_test: $(TBB.DLL) $(MALLOC.DLL) $(MALLOC_MAIN_TESTS) $(MALLOC_C_TESTS)
+	./test_malloc_compliance.exe
+	./test_ScalableAllocator.exe
+	./test_ScalableAllocator_STL.exe
+	./test_malloc_pure_c.exe
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
diff --git a/build/Makefile.test b/build/Makefile.test
new file mode 100644
index 0000000..02c2805
--- /dev/null
+++ b/build/Makefile.test
@@ -0,0 +1,198 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Define rules for making the TBB tests.
+#------------------------------------------------------------------------------
+.PHONY: default test_tbb_plain clean
+
+tbb_root ?= $(TBB20_INSTALL_DIR)
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+
+default: test_tbb_plain # test_tbb_alt test_tbb_cross 
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
+
+CPLUS_FLAGS += $(WARNING_KEY)
+
+ifeq (1,$(TBB_NOSTRICT))
+# GNU 3.2.3 headers have a ISO syntax that is rejected by Intel compiler in -strict_ansi mode.
+# The Mac uses gcc, so the list is empty for that platform.
+# The files below need the -strict_ansi flag downgraded to -ansi to compile
+
+KNOWN_NOSTRICT += \
+	test_concurrent_hash_map.o	\
+	test_concurrent_vector.o		\
+	test_handle_perror.o		\
+	test_cache_aligned_allocator_STL.o	\
+	test_task_scheduler_init.o	\
+	test_model_plugin.o	\
+	test_parallel_sort.o
+
+endif
+
+include $(tbb_root)/build/common_rules.inc
+
+# KNOWN_WARNINGS is empty now! Kept here as a placeholder
+
+$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
+	$(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(INCLUDES) $<
+
+# Rule for generating executable test
+%.exe: %.$(OBJ) $(TBB.LIB)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB.LIB) $(LIBS) $(LINK_FLAGS)
+
+# Rule for generating test using Windows compiler with different flags
+#%-cross.exe: %.cpp
+#	cl $(OUTPUT_KEY)$@ $(SECURITY_FLAG) $(CPLUS_CROSS_FLAGS) $(INCLUDES) $< $(TBB.LIB) $(LIBS) $(LINK_FLAGS)
+
+# Rules for generating a test DLL
+%.$(DLL).$(OBJ): %.cpp
+	$(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(CPLUS_FLAGS_NOSTRICT) $(PIC_KEY) $(DEFINE_KEY)_USRDLL $(INCLUDES) $<
+%.$(DLL): %.$(DLL).$(OBJ) $(TBB.LIB)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB.LIB) $(LIBS) $(LINK_FLAGS) $(PIC_KEY) $(DYLIB_KEY)
+
+# Rules for the tests, which use TBB in a dynamically loadable library
+test_model_plugin.exe: test_model_plugin.$(OBJ) test_model_plugin.$(DLL)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LIBS) $(LINK_FLAGS) $(LIBDL)
+
+test_assembly.exe: test_assembly.$(OBJ) $(TBB_ASM.OBJ) cache_aligned_allocator.$(OBJ) tbb_misc.$(OBJ) itt_notify.$(OBJ) spin_mutex.$(OBJ) mutex.$(OBJ) 
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBS) $(TBB.LIB)
+
+test_task_leaks.exe: test_task_leaks.$(OBJ) $(TBB_ASM.OBJ) cache_aligned_allocator.$(OBJ) tbb_misc.$(OBJ) itt_notify.$(OBJ) mutex.$(OBJ) 
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBS) $(TBB.LIB)
+
+test_handle_perror.exe: test_handle_perror.$(OBJ) tbb_misc.$(OBJ) $(TBB_ASM.OBJ)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBS) $(TBB.LIB)
+
+
+# Rules for the tests, which depend on tbbmalloc
+test_concurrent_hash_map_string.exe: test_concurrent_hash_map_string.$(OBJ)
+	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LIBS) $(LINK_FLAGS) $(TBB.LIB) $(MALLOC.LIB)
+
+
+# These are in alphabetical order
+TEST_TBB_PLAIN.EXE = test_assembly.exe 	\
+	test_aligned_space.exe		\
+	test_atomic.exe 		\
+	test_blocked_range.exe 		\
+	test_blocked_range2d.exe 	\
+	test_blocked_range3d.exe 	\
+	test_concurrent_queue.exe	\
+	test_concurrent_vector.exe	\
+	test_concurrent_hash_map.exe	\
+	test_handle_perror.exe		\
+	test_halt.exe 			\
+	test_model_plugin.exe		\
+	test_mutex.exe			\
+	test_mutex_native_threads.exe	\
+	test_rwm_upgrade_downgrade.exe	\
+	test_cache_aligned_allocator_STL.exe	\
+	test_cache_aligned_allocator.exe	\
+	test_parallel_for.exe 		\
+	test_parallel_reduce.exe 	\
+	test_parallel_sort.exe 		\
+	test_parallel_scan.exe 		\
+	test_parallel_while.exe 	\
+	test_pipeline.exe 		\
+	test_task_scheduler_init.exe	\
+	test_task.exe			\
+	test_task_leaks.exe		\
+	test_tick_count.exe		\
+	test_inits_loop.exe      \
+	test_yield.exe
+
+ifdef OPENMP_FLAG
+	TEST_TBB_PLAIN.EXE += test_tbb_openmp
+test_openmp.exe: test_openmp.cpp 
+	$(CPLUS) $(OPENMP_FLAG) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(INCLUDES) $^ $(LIBS) $(TBB.LIB)
+.PHONY: test_tbb_openmp
+test_tbb_openmp: test_openmp.exe
+	./test_openmp.exe 1:4
+
+endif
+
+
+# Run tests that are in TEST_PLAIN.EXE
+# The test are ordered so that simpler components are tested first.
+# If a component Y uses component X, then tests for Y should come after tests for X.
+test_tbb_plain: $(TEST_TBB_PLAIN.EXE)
+	./test_assembly.exe 
+        # Yes, 4:8 is intended on the next line. 
+	./test_yield.exe 4:8
+	./test_handle_perror.exe 
+	./test_task_scheduler_init.exe 1:4
+	./test_task.exe 1:4
+	./test_task_leaks.exe
+	./test_atomic.exe 
+	./test_cache_aligned_allocator.exe
+	./test_cache_aligned_allocator_STL.exe
+	./test_blocked_range.exe 1:4
+	./test_blocked_range2d.exe 1:4
+	./test_blocked_range3d.exe 1:4
+	./test_parallel_for.exe 1:4
+	./test_parallel_sort.exe 1:4
+	./test_aligned_space.exe 
+	./test_parallel_reduce.exe 1:4
+	./test_parallel_scan.exe 1:4
+	./test_parallel_while.exe 1:4
+	./test_inits_loop.exe
+	./test_mutex.exe 1
+	./test_mutex.exe 2
+	./test_mutex.exe 4
+	./test_mutex_native_threads.exe 1
+	./test_mutex_native_threads.exe 2
+	./test_mutex_native_threads.exe 4
+	./test_rwm_upgrade_downgrade.exe 4
+        # Yes, 4:8 is intended on the next line. 
+	./test_halt.exe 4:8	
+	./test_pipeline.exe 1:4
+	./test_tick_count.exe 1:4
+	./test_concurrent_queue.exe 1:4
+	./test_concurrent_vector.exe 1:4
+	./test_concurrent_hash_map.exe 1:4
+	./test_model_plugin.exe 4
+ifeq (true,$(codecov))
+	profmerge
+	codecov -demang -comp $(tbb_root)/build/codecov.txt
+endif
+
+debug_%: test_%.exe
+	$(debugger) ./$^ $(debug_args)
+
+clean_%: 
+	$(RM) test_$*.$(OBJ) test_$*.exe test_$*.$(DLL) test_$*.$(LIBEXT) test_$*.res test_$*.map test_$*.ilk test_$*.pdb test_$*.exp test_$*.*manifest test_$*.tmp test_$*.d
+
+clean:
+	$(RM) *.$(OBJ) *.exe *.$(DLL) *.$(LIBEXT) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d core core.*[0-9][0-9]
+
+# Include automatically generated dependences
+-include *.d
diff --git a/build/SunOS.gcc.inc b/build/SunOS.gcc.inc
new file mode 100644
index 0000000..b3d2b8d
--- /dev/null
+++ b/build/SunOS.gcc.inc
@@ -0,0 +1,97 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -MMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+TBB_NOSTRICT = 1
+
+CPLUS = g++ 
+INCLUDES += -I$(tbb_root)/src/tbb -I$(tbb_root)/include -I$(tbb_root)/src
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread -lrt -ldl 
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+        CPLUS_FLAGS = -DDO_ITT_NOTIFY -O2 -DUSE_PTHREAD -D__linux__ -D__custom_linux__
+endif
+ifeq ($(cfg), debug)
+        CPLUS_FLAGS = -DTBB_DO_ASSERT -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD -D__linux__ -D__custom_linux__
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (itanium,$(arch))
+# Position-independent code (PIC) is a must for IA-64
+    CPLUS_FLAGS += $(PIC_KEY)
+    $(PIC_KEY) = 
+endif 
+
+ifeq (em64t,$(arch))
+    CPLUS_FLAGS += -m64
+    LIB_LINK_FLAGS += -m64
+endif 
+
+ifeq (ia32,$(arch))
+    CPLUS_FLAGS += -m32
+    LIB_LINK_FLAGS += -m32
+endif 
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+%.$(OBJ): %.s
+	cpp $(ASM_FLAGS) <$< | grep -v '^#' >$*.tmp
+	$(ASM) -o $@ $*.tmp
+	rm $*.tmp
+
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (itanium,$(arch))
+    ASM=ias
+    TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+endif 
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/SunOS.inc b/build/SunOS.inc
new file mode 100644
index 0000000..12ca2dd
--- /dev/null
+++ b/build/SunOS.inc
@@ -0,0 +1,81 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef arch
+        ifeq ($(shell arch),i86pc)
+                export arch:=ia32
+        endif
+endif
+
+ifndef runtime
+        gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
+        os_version:=$(shell uname -r)
+        os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+#        export os_glibc_version_full:=$(shell rpm -qa | grep '^glibc-[0-9]' | sort -u | sed -e 's/^glibc-//')
+#        os_glibc_version:=$(shell echo "$(os_glibc_version_full)" | sed -e '2,$$d' -e 's/-.*$$//')
+#        export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
+        export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= > /dev/null 2>&1
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.tmp
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+        export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+        export LD_LIBRARY_PATH := .
+endif
+
+####### Build settigns ########################################################
+
+OBJ = o
+DLL = so
+
+ifeq ($(cfg),debug)
+    DEBUG_SUFFIX = _debug
+endif
+
+TBB.DEF = 
+TBB.DLL = libtbb$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).so
+MALLOC.LIB = $(MALLOC.DLL)
+
+TBB_NOSTRICT=1
+
+
+
diff --git a/build/codecov.txt b/build/codecov.txt
new file mode 100644
index 0000000..22d4b17
--- /dev/null
+++ b/build/codecov.txt
@@ -0,0 +1,3 @@
+src/tbb
+src/tbbmalloc
+include/tbb
diff --git a/build/common.inc b/build/common.inc
new file mode 100644
index 0000000..8c94e3b
--- /dev/null
+++ b/build/common.inc
@@ -0,0 +1,89 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef tbb_os
+ ifeq ($(OS), Windows_NT)
+  export tbb_os=windows
+ else
+  OS:=$(shell uname)
+  ifneq ($(OS),)
+   export tbb_os=$(OS)
+  endif
+  ifeq ($(OS), Linux)
+   export tbb_os=linux
+  endif
+  ifeq ($(OS), Darwin)
+   export tbb_os=macos
+  endif
+ endif
+endif
+
+ifndef tbb_os
+ $(error "$(OS) is not supported")
+else
+ ifeq ($(wildcard $(tbb_root)/build/$(tbb_os).inc),)
+   $(error "$(tbb_os)" is not supported; add build/$(tbb_os).inc file with os-specific settings )
+ endif
+ 
+ # detect arch and runtime versions, provide common os-specific definitions
+ include $(tbb_root)/build/$(tbb_os).inc
+
+ ifeq ($(arch),)
+  $(error Architecture not detected)
+ endif
+ ifeq ($(runtime),)
+  $(error Runtime version not detected)
+ endif
+ ifeq ($(wildcard $(tbb_root)/build/$(tbb_os).$(compiler).inc),)
+   $(error Compiler "$(compiler)" is not supported on $(tbb_os); add build/$(tbb_os).$(compiler).inc file with compiler-specific settings )
+ endif
+
+ ifdef BUILDING_PHASE
+  # Setting default configuration to release
+  cfg?=release
+  # include copmiler-specific build configurations
+  -include $(tbb_root)/build/$(tbb_os).$(compiler).inc
+ endif
+ ifneq ($(BUILDING_PHASE),1)
+  # definitions for top-level Makefiles
+  origin_build_dir:=$(origin tbb_build_dir)
+  tbb_build_dir?=$(tbb_root)$(SLASH)build
+  tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler)_$(runtime)
+  work_dir=$(tbb_build_dir)$(SLASH)$(tbb_build_prefix)
+  ifneq ($(BUILDING_PHASE),0)
+   work_dir:=$(work_dir)
+   # assign new value for tbb_root
+   ifneq ($(firstword is_abs_path$(subst /, ,$(tbb_root))),is_abs_path)
+    ifeq ($(origin_build_dir),undefined)
+     override tbb_root:=../..
+    else
+     override tbb_root:=$(CWD)/$(tbb_root)
+    endif
+   endif
+   export tbb_root
+  endif # BUILDING_PHASE != 0
+ endif  # BUILDING_PHASE != 1
+endif
diff --git a/build/common_rules.inc b/build/common_rules.inc
new file mode 100644
index 0000000..23684ea
--- /dev/null
+++ b/build/common_rules.inc
@@ -0,0 +1,75 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+.PRECIOUS: %.$(OBJ) %.$(DLL).$(OBJ)
+
+CPLUS_FLAGS_NOSTRICT:=$(subst -strict_ansi,-ansi,$(CPLUS_FLAGS))
+
+%.$(OBJ): %.cpp
+	$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $<
+
+%.$(OBJ): %.c
+	$(CPLUS) $(COMPILE_ONLY) $(C_FLAGS) $(INCLUDES) $<
+
+%.$(OBJ): %.asm
+	$(ASM) $(ASM_FLAGS) $<
+
+tbb_misc.$(OBJ): tbb_misc.cpp version_string.tmp
+	$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(INCLUDE_KEY). $(INCLUDES) $<
+
+tbb_misc.E: tbb_misc.cpp version_string.tmp
+	$(CPLUS) $(PREPROC_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(INCLUDE_KEY). $(INCLUDES) $< >$@
+
+%.res: %.rc version_string.tmp
+	rc /Fo$@ $(INCLUDES) $(filter /D%,$(CPLUS_FLAGS)) $<
+
+# Rule for generating .E file if needed for visual inspection
+%.E: %.cpp
+	$(CPLUS) $(PREPROC_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $< >$@
+
+# TODO Rule for generating .asm file if needed for visual inspection
+%.asm: %.cpp
+	$(CPLUS) /c /Fa $(CPLUS_FLAGS) $(INCLUDES) $<
+
+# TODO Rule for generating .s file if needed for visual inspection
+%.s: %.cpp
+	$(CPLUS) -S $(CPLUS_FLAGS) $(INCLUDES) $<
+
+ifeq (1,$(TBB_NOSTRICT))
+# GNU 3.2.3 headers have a ISO syntax that is rejected by Intel compiler in -strict_ansi mode.
+# The Mac uses gcc, so the list is empty for that platform.
+# The files below need the -strict_ansi flag downgraded to -ansi to compile
+
+$(KNOWN_NOSTRICT): %.o: %.cpp
+	$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(INCLUDES) $<
+
+endif
+
+version_string.tmp: 
+	$(MAKE_VERSIONS)
+
+tbbvars:
+	$(MAKE_TBBVARS)
diff --git a/build/detect.js b/build/detect.js
new file mode 100644
index 0000000..c012e6b
--- /dev/null
+++ b/build/detect.js
@@ -0,0 +1,114 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+if ( WScript.Arguments.Count() > 0 ) {
+	
+	try {
+		
+		var WshShell = WScript.CreateObject("WScript.Shell");
+
+		var fso = new ActiveXObject("Scripting.FileSystemObject");
+
+		var tmpExec;
+		
+		//Compile binary
+		tmpExec = WshShell.Exec("cmd /c echo int main(){return 0;} >detect.c");
+		while ( tmpExec.Status == 0 ) {
+			WScript.Sleep(100);
+		}
+		
+		tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
+		while ( tmpExec.Status == 0 ) {
+			WScript.Sleep(100);
+		}
+
+		if ( WScript.Arguments(0) == "/arch" ) {
+			//read compiler banner
+			var clVersion = tmpExec.StdErr.ReadAll();
+			
+			//detect target architecture
+			var em64t=/AMD64|EM64T|x64/mgi;
+			var itanium=/IA-64|Itanium/mgi;
+			var ia32=/80x86/mgi;
+			if ( clVersion.match(em64t) ) {
+				WScript.Echo( "em64t" );
+			} else if ( clVersion.match(itanium) ) {
+				WScript.Echo( "itanium" );
+			} else if ( clVersion.match(ia32) ) {
+				WScript.Echo( "ia32" );
+			} else {
+				WScript.Echo( "unknown" );
+			}
+		}
+
+		if ( WScript.Arguments(0) == "/runtime" ) {
+			//read map-file
+			var map = fso.OpenTextFile("detect.map", 1, 0);
+			var mapContext = map.readAll();
+			map.Close();
+			
+			//detect runtime
+			var vc71=/MSVCR71\.DLL/mgi;
+			var vc80=/MSVCR80\.DLL/mgi;
+			var vc90=/MSVCR90\.DLL/mgi;
+			var psdk=/MSVCRT\.DLL/mgi;
+			if ( mapContext.match(vc71) ) {
+				WScript.Echo( "vc7.1" );
+			} else if ( mapContext.match(vc80) ) {
+				WScript.Echo( "vc8" );
+			} else if ( mapContext.match(vc90) ) {
+				WScript.Echo( "vc9" );
+			} else if ( mapContext.match(psdk) ) {
+				// Our current naming convention assumes vc7.1 for 64-bit Windows PSDK
+				WScript.Echo( "vc7.1" ); 
+			} else {
+				WScript.Echo( "unknown" );
+			}
+		}
+
+		// delete intermediate files
+		if ( fso.FileExists("detect.c") )
+			fso.DeleteFile ("detect.c", false);
+		if ( fso.FileExists("detect.obj") )
+			fso.DeleteFile ("detect.obj", false);
+		if ( fso.FileExists("detect.map") )
+			fso.DeleteFile ("detect.map", false);
+		if ( fso.FileExists("detect.exe") )
+			fso.DeleteFile ("detect.exe", false);
+		if ( fso.FileExists("detect.exe.manifest") )
+			fso.DeleteFile ("detect.exe.manifest", false);
+
+	} catch( error )
+	{
+		WScript.Echo( "unknown" );
+		WScript.Quit( 0 );
+	}
+
+} else {
+
+	WScript.Echo( "/arch or /runtime should be set" );
+}
+
diff --git a/build/generate_tbbvars.bat b/build/generate_tbbvars.bat
new file mode 100644
index 0000000..8e4f925
--- /dev/null
+++ b/build/generate_tbbvars.bat
@@ -0,0 +1,102 @@
+ at echo off
+REM
+REM Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+REM
+REM This file is part of Threading Building Blocks.
+REM
+REM Threading Building Blocks is free software; you can redistribute it
+REM and/or modify it under the terms of the GNU General Public License
+REM version 2 as published by the Free Software Foundation.
+REM
+REM Threading Building Blocks is distributed in the hope that it will be
+REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+REM GNU General Public License for more details.
+REM
+REM You should have received a copy of the GNU General Public License
+REM along with Threading Building Blocks; if not, write to the Free Software
+REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+REM
+REM As a special exception, you may use this file as part of a free software
+REM library without restriction.  Specifically, if other files instantiate
+REM templates or use macros or inline functions from this file, or you compile
+REM this file and link it with other files to produce an executable, this
+REM file does not by itself cause the resulting executable to be covered by
+REM the GNU General Public License.  This exception does not however
+REM invalidate any other reasons why the executable file might be covered by
+REM the GNU General Public License.
+REM
+if exist tbbvars.bat exit
+echo Generating tbbvars.bat
+echo @echo off>tbbvars.bat
+setlocal
+for %%D in ("%tbb_root%") do set actual_root=%%~fD
+if x%1==x goto without
+
+echo IF NOT DEFINED TBB20_INSTALL_DIR SET TBB20_INSTALL_DIR=%actual_root%>>tbbvars.bat
+echo SET TBB_ARCH_PLATFORM=%arch%\%runtime%>>tbbvars.bat
+echo SET INCLUDE="%%TBB20_INSTALL_DIR%%\include";%%INCLUDE%%>>tbbvars.bat
+echo SET LIB="%%TBB20_INSTALL_DIR%%\build\%1";%%LIB%%>>tbbvars.bat
+echo SET PATH="%%TBB20_INSTALL_DIR%%\build\%1";%%PATH%%>>tbbvars.bat
+
+if exist tbbvars.sh goto skipsh
+set fslash_root=%actual_root:\=/%
+echo Generating tbbvars.sh
+echo #!/bin/sh>tbbvars.sh
+echo if [ -z "${TBB20_INSTALL_DIR}" ]; then>>tbbvars.sh
+echo     export TBB20_INSTALL_DIR="%fslash_root%">>tbbvars.sh
+echo fi>>tbbvars.sh
+echo TBB_ARCH_PLATFORM="%arch%\%runtime%">>tbbvars.sh
+echo if [ -z "${PATH}" ]; then>>tbbvars.sh
+echo     export PATH="${TBB20_INSTALL_DIR}/build/%1">>tbbvars.sh
+echo else>>tbbvars.sh
+echo     export PATH="${TBB20_INSTALL_DIR}/build/%1;$PATH">>tbbvars.sh
+echo fi>>tbbvars.sh
+echo if [ -z "${LIB}" ]; then>>tbbvars.sh
+echo     export LIB="${TBB20_INSTALL_DIR}/build/%1">>tbbvars.sh
+echo else>>tbbvars.sh
+echo     export LIB="${TBB20_INSTALL_DIR}/build/%1;$LIB">>tbbvars.sh
+echo fi>>tbbvars.sh
+echo if [ -z "${INCLUDE}" ]; then>>tbbvars.sh
+echo     export INCLUDE="${TBB20_INSTALL_DIR}/include">>tbbvars.sh
+echo else>>tbbvars.sh
+echo     export INCLUDE="${TBB20_INSTALL_DIR}/include;$INCLUDE">>tbbvars.sh
+echo fi>>tbbvars.sh
+:skipsh
+
+if exist tbbvars.csh goto skipcsh
+echo Generating tbbvars.csh
+echo #!/bin/csh>tbbvars.csh
+echo if (! $?TBB20_INSTALL_DIR) then>>tbbvars.csh
+echo     setenv TBB20_INSTALL_DIR "%actual_root%">>tbbvars.csh
+echo endif>>tbbvars.csh
+echo setenv TBB_ARCH_PLATFORM "%arch%\%runtime%">>tbbvars.csh
+echo if (! $?PATH) then>>tbbvars.csh
+echo     setenv PATH "${TBB20_INSTALL_DIR}\build\%1">>tbbvars.csh
+echo else>>tbbvars.csh
+echo     setenv PATH "${TBB20_INSTALL_DIR}\build\%1;$PATH">>tbbvars.csh
+echo endif>>tbbvars.csh
+echo if (! $?LIB) then>>tbbvars.csh
+echo     setenv LIB "${TBB20_INSTALL_DIR}\build\%1">>tbbvars.csh
+echo else>>tbbvars.csh
+echo     setenv LIB "${TBB20_INSTALL_DIR}\build\%1;$LIB">>tbbvars.csh
+echo endif>>tbbvars.csh
+echo if (! $?INCLUDE) then>>tbbvars.csh
+echo     setenv INCLUDE "${TBB20_INSTALL_DIR}\include">>tbbvars.csh
+echo else>>tbbvars.csh
+echo     setenv INCLUDE "${TBB20_INSTALL_DIR}\include;$INCLUDE">>tbbvars.csh
+echo endif>>tbbvars.csh
+)
+:skipcsh
+exit
+
+:without
+set bin_dir=%CD%
+echo SET tbb_root=%actual_root%>>tbbvars.bat
+echo SET tbb_bin=%bin_dir%>>tbbvars.bat
+echo SET TBB_ARCH_PLATFORM=%arch%\%runtime%>>tbbvars.bat
+echo SET INCLUDE="%%tbb_root%%\include";%%INCLUDE%%>>tbbvars.bat
+echo SET LIB="%%tbb_bin%%";%%LIB%%>>tbbvars.bat
+echo SET PATH="%%tbb_bin%%";%%PATH%%>>tbbvars.bat
+
+endlocal
diff --git a/build/generate_tbbvars.sh b/build/generate_tbbvars.sh
new file mode 100644
index 0000000..6ba26f4
--- /dev/null
+++ b/build/generate_tbbvars.sh
@@ -0,0 +1,119 @@
+#!/bin/sh
+#
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Script used to generate tbbvars.[c]sh scripts
+bin_dir="$PWD"  # 
+cd "$tbb_root"  # keep this comments here
+tbb_root="$PWD" # to make it unsensible
+cd "$bin_dir"   # to EOL encoding
+[ "`uname`" = "Darwin" ] && dll_path="DYLD_LIBRARY_PATH" || dll_path="LD_LIBRARY_PATH" #
+if [ -z "$1" ]; then # custom tbb_build_dir, can't make with TBB_INSTALL_DIR
+[ -f tbbvars.sh ] || cat >tbbvars.sh <<EOF
+#!/bin/sh
+tbb_root="${tbb_root}" #
+tbb_bin="${bin_dir}" #
+if [ -z "\$CPATH" ]; then #
+    export CPATH="\${tbb_root}/include" #
+else #
+    export CPATH="\${tbb_root}/include:\$CPATH" #
+fi #
+if [ -z "\$LIBRARY_PATH" ]; then #
+    export LIBRARY_PATH="\${tbb_bin}" #
+else #
+    export LIBRARY_PATH="\${tbb_bin}:\$LIBRARY_PATH" #
+fi #
+if [ -z "\$${dll_path}" ]; then #
+    export ${dll_path}="\${tbb_bin}" #
+else #
+    export ${dll_path}="\${tbb_bin}:\$${dll_path}" #
+fi #
+EOF
+[ -f tbbvars.csh ] || cat >tbbvars.csh <<EOF
+#!/bin/csh
+setenv tbb_root "${tbb_root}" #
+setenv tbb_bin "${bin_dir}" #
+if (! \$?CPATH) then #
+    setenv CPATH "\${tbb_root}/include" #
+else #
+    setenv CPATH "\${tbb_root}/include:\$CPATH" #
+endif #
+if (! \$?LIBRARY_PATH) then #
+    setenv LIBRARY_PATH "\${tbb_bin}" #
+else #
+    setenv LIBRARY_PATH "\${tbb_bin}:\$LIBRARY_PATH" #
+endif #
+if (! \$?${dll_path}) then #
+    setenv ${dll_path} "\${tbb_bin}" #
+else #
+    setenv ${dll_path} "\${tbb_bin}:\$${dll_path}" #
+endif #
+EOF
+else # make with TBB_INSTALL_DIR
+[ -f tbbvars.sh ] || cat >tbbvars.sh <<EOF
+#!/bin/sh
+[ -z "\${TBB20_INSTALL_DIR}" ] && export TBB20_INSTALL_DIR="${tbb_root}" #
+tbb_bin="\${TBB20_INSTALL_DIR}/build/$1" #
+if [ -z "\$CPATH" ]; then #
+    export CPATH="\${TBB20_INSTALL_DIR}/include" #
+else #
+    export CPATH="\${TBB20_INSTALL_DIR}/include:\$CPATH" #
+fi #
+if [ -z "\$LIBRARY_PATH" ]; then #
+    export LIBRARY_PATH="\${tbb_bin}" #
+else #
+    export LIBRARY_PATH="\${tbb_bin}:\$LIBRARY_PATH" #
+fi #
+if [ -z "\$${dll_path}" ]; then #
+    export ${dll_path}="\${tbb_bin}" #
+else #
+    export ${dll_path}="\${tbb_bin}:\$${dll_path}" #
+fi #
+EOF
+[ -f tbbvars.csh ] || cat >tbbvars.csh <<EOF
+#!/bin/csh
+if (! \$?TBB20_INSTALL_DIR) then #
+    setenv TBB20_INSTALL_DIR "${tbb_root}" #
+endif #
+setenv tbb_bin "\${TBB20_INSTALL_DIR}/build/$1" #
+if (! \$?CPATH) then #
+    setenv CPATH "\${TBB20_INSTALL_DIR}/include" #
+else #
+    setenv CPATH "\${TBB20_INSTALL_DIR}/include:\$CPATH" #
+endif #
+if (! \$?LIBRARY_PATH) then #
+    setenv LIBRARY_PATH "\${tbb_bin}" #
+else #
+    setenv LIBRARY_PATH "\${tbb_bin}:\$LIBRARY_PATH" #
+endif #
+if (! \$?${dll_path}) then #
+    setenv ${dll_path} "\${tbb_bin}" #
+else #
+    setenv ${dll_path} "\${tbb_bin}:\$${dll_path}" #
+endif #
+EOF
+fi #
diff --git a/build/index.html b/build/index.html
new file mode 100644
index 0000000..d0eddb3
--- /dev/null
+++ b/build/index.html
@@ -0,0 +1,225 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains the internal Makefile infrastructure for Threading Building Blocks.
+
+<P>
+See below for how to <A HREF=#build>build</A> TBB and how to <A HREF=#port>port</A> TBB
+to a new platform, operating system or architecture.
+</P>
+
+<H2>Files</H2>
+The files here are not intended to be used directly.  See below for usage.
+<DL>
+<DT><A HREF="Makefile.tbb">Makefile.tbb</A>
+<DD>Main Makefile invoked to build the TBB library.
+    Normally invoked via "make tbb" from <A HREF=../Makefile>top-level Makefile</A>.
+    Also invoked via "make" from <A HREF=../src/tbb/Makefile>src/tbb Makefile</A>.
+<DT><A HREF="Makefile.tbbmalloc">Makefile.tbbmalloc</A>
+<DD>Main Makefile invoked to build the TBB scalable memory allocator library.
+    Normally invoked via "make tbbmalloc" from <A HREF=../Makefile>top-level Makefile</A>.
+<DT><A HREF="Makefile.test">Makefile.test</A>
+<DD>Main Makefile invoked to test the TBB library.
+    Normally invoked via "make test" from <A HREF=../Makefile>top-level Makefile</A>.
+    Also invoked via "make" from <A HREF=../src/test/Makefile>src/test Makefile</A>.
+<DT><A HREF="common.inc">common.inc</A>
+<DD>Main common included Makefile that includes OS-specific and compiler-specific Makefiles.
+<DT><os>.inc
+<DD>OS-specific Makefile for a particular <os>.
+<DT><os>_<compiler>.inc
+<DD>Compiler-specific Makefile for a particular <os> / <compiler> combination.
+<DT>*.sh
+<DD>Infrastructure utilities for Linux*, Mac OS* X, and related systems.
+<DT>*.js, *.bat
+<DD>Infrastructure utilities for Windows* systems.
+</DL>
+
+<A NAME=build><H2>To Build</H2></A>
+<P>
+To port TBB to a new platform, operating system or architecture, see the <A HREF=#port>porting directions</A> below.
+</P>
+
+<H3>Software prerequisites:</H3>
+<OL>
+<LI>C++ compiler for the platform, operating system and architecture of interest.
+    Either the native compiler for your system, or, optionally, the appropriate Intel® C++ compiler, may be used.
+<LI>GNU make.
+<LI>A Bourne or BASH compatible shell.  On Windows*, shell commands issued by GNU make should execute in such a shell.
+<LI>The Intel® assembler, ias (if using Intel® Itanium® processors).
+</OL>
+
+<P>
+TBB libraries can be built by performing the following steps.
+On systems that support only one ABI (e.g., 32-bit), these steps build the libraries for that ABI.
+On systems that support both 64-bit and 32-bit libraries, these steps build the 64-bit libraries
+(Linux*, Mac OS* X, and related systems) or whichever ABI is selected in the development environment (Windows* systems).
+</P>
+<OL>
+<LI>Change to the <A HREF=../index.html>top-level directory</A> of the installed software.
+<LI>If using the Intel® C++ compiler, make sure the appropriate compiler is available in your PATH
+    (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+<LI>Invoke GNU make using no arguments, for example, "gmake".
+</OL>
+
+<P>
+To build TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux*, Mac OS* X,
+or related systems that support both 64-bit and 32-bit libraries), perform the following steps.
+</P>
+<OL>
+<LI>Change to the <A HREF=../index.html>top-level directory</A> of the installed software.
+<LI>If using the Intel® C++ compiler, make sure the appropriate compiler is available in your PATH
+    (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+<LI>Invoke GNU make as follows, "gmake arch=ia32".
+</OL>
+
+<P>The default make target will build and unit-test the release and debug versions of the library.
+Unit-testing is performed by running each of the <A HREF=../src/test>unit-tests</A> and each of the
+<A HREF=../examples/index.html>examples</A>.
+</P>
+
+<P>
+By default, the libraries will be built in sub-directories within the build/ directory.
+The sub-directories are named according to the operating system, architecture, compiler and software environment used
+(the sub-directory names also distinguish release vs. debug libraries).  On Linux*, the software environment comprises
+the GCC, libc and kernel version used.  On Windows*, the software environment comprises the GCC and OS version used.
+On Windows, the software environment comprises the Microsoft* Visual Studio* version used.
+See below for how to change the default build directory.
+</P>
+
+<P>
+To perform different build and/or test operations, perform the following steps.
+</P>
+<OL>
+<LI>Change to the <A HREF=../index.html>top-level directory</A> of the installed software.
+<LI>If using the Intel® C++ compiler, make sure the appropriate compiler is available in your PATH
+    (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+<LI>Invoke GNU make by using one or more of the following commands.
+    <DL>
+    <DT><TT>make</TT>
+    <DD>Default build and test.  Equivalent to 'make release debug examples'.
+    <DT><TT>make release</TT>
+    <DD>Build and test release libraries only.
+    <DT><TT>make debug</TT>
+    <DD>Build and test debug libraries only.
+    <DT><TT>make tbb</TT>
+    <DD>Make TBB release and debug libraries.
+	Also invoked via "make" from <A HREF=../src/tbb/Makefile>src/tbb Makefile</A>.
+    <DT><TT>make tbbmalloc</TT>
+    <DD>Make TBB scalable memory allocator libraries.
+    <DT><TT>make test</TT>
+    <DD>Just run unit-tests.
+	Also invoked via "make" from <A HREF=../src/test/Makefile>src/test Makefile</A>.
+    <DT><TT>make examples</TT>
+    <DD>Build libraries and run all examples, like doing "make debug clean release" from
+	<A HREF=../examples/Makefile>examples Makefile</A>.
+    <DT><TT>make compiler=<B>{</B>icl, icc<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
+    <DD>Build and run as above, but use Intel® compilers instead of default, native compilers
+	(e.g., icl instead of cl.exe on Windows* systems, or icc instead of g++ on Linux* or Mac OS* X systems).
+    <DT><TT>make arch=<B>{</B>ia32, em64t, itanium<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
+    <DD>Build and run as above, but build libraries for the selected ABI.
+    <DT><TT>make tbb_root=<B>{</B>(TBB directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
+    <DD>Build and run as above; for use when invoking "make" from a directory other than
+	the <A HREF=../index.html>top-level directory</A>.
+    <DT><TT>make tbb_build_dir=<B>{</B>(build directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
+    <DD>Build and run as above, but place the built libraries in the specified directory, rather than in the default
+	sub-directory within the build/ directory.
+    <DT><TT>make tbb_build_prefix=<B>{</B>(build sub-directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
+    <DD>Build and run as above, but place the built libraries in the specified sub-directory within the build/ directory,
+	rather than using the default sub-directory name.
+    <DT><TT>make <B>[</B>(above options)<B>]</B> clean</TT>
+    <DD>Remove any executables or intermediate files produced by the above commands.
+        Includes build directories, object files, libraries and test executables.
+    </DL>
+</OL>
+
+<A NAME=port><H2>To Port</H2></A>
+<P>
+This section provides information on how to port TBB to a new platform, operating system or architecture.
+A subset or a superset of these steps may be required for porting to a given platform.
+</P>
+
+<H4>To port the TBB source code:</H4>
+<OL>
+<LI>If porting to a new architecture, create a file that describes the architecture-specific details for that architecture.
+    <UL>
+    <LI>Create a <os>_<architecture>.h file in the <A HREF=../include/tbb/machine>include/tbb/machine</A> directory
+	that describes these details.
+	<UL>
+	<LI>The <os>_<architecture>.h is named after the operating system and architecture as recognized by
+	    <A HREF=../include/tbb/tbb_machine.h>include/tbb/tbb_machine.h</A> and the Makefile infrastructure.
+	<LI>This file defines the implementations of synchronization operations, and also the
+	    scheduler yield function, for the operating system and architecture.
+	<LI>Several examples of <os>_<architecture>.h files can be found in the
+	    <A HREF=../include/tbb/machine>include/tbb/machine</A> directory.
+	    <UL>
+	    <LI>A minimal implementation defines the 4-byte and 8-byte compare-and-swap operations,
+		and the scheduler yield function.  See <A HREF=../include/tbb/machine/mac_ppc.h>include/tbb/machine/mac_ppc.h</A>
+		for an example of a minimal implementation.
+	    <LI>More complex implementation examples can also be found in the
+		<A HREF=../include/tbb/machine>include/tbb/machine</A> directory
+		that implement all the individual variants of synchronization operations that TBB uses.
+		Such implementations are more verbose but may achieve better performance on a given architecture.
+	    <LI>In a given implementation, any synchronization operation that is not defined is implemented, by default,
+		in terms of 4-byte or 8-byte compare-and-swap.  More operations can thus be added incrementally to increase
+		the performance of an implementation.
+	    <LI>In most cases, synchronization operations are implemented as inline assembly code; examples also exist,
+		(e.g., for Intel® Itanium® processors) that use out-of-line assembly code in *.s or *.asm files
+		(see the assembly code sub-directories in the <A HREF=../src/tbb>src/tbb</A> directory).
+	    </UL>
+	</UL>
+    <LI>Modify <A HREF=../include/tbb/tbb_machine.h>include/tbb/tbb_machine.h</A>, if needed, to invoke the appropriate
+	<os>_<architecture>.h file in the <A HREF=../include/tbb/machine>include/tbb/machine</A> directory.
+    </UL>
+<LI>Add an implementation of DetectNumberOfWorkers() in <A HREF=../src/tbb/tbb_misc.h>src/tbb/tbb_misc.h</A>,
+    if needed, that returns the number of cores found on the system.  This is used to determine the default
+    number of threads for the TBB task scheduler.
+<LI>Either properly define FillDynamicLinks for use in
+    <A HREF=../src/tbb/cache_aligned_allocator.cpp>src/tbb/cache_aligned_allocator.cpp</A>,
+    or hardcode the allocator to be used.
+<LI>Additional types might be required in the union defined in
+    <A HREF=../include/tbb/aligned_space.h>include/tbb/aligned_space.h</A>
+    to ensure proper alignment on your platform.
+<LI>Changes may be required in <A HREF=../include/tbb/tick_count.h>include/tbb/tick_count.h</A>
+    for systems that do not provide gettimeofday.
+</OL>
+
+<H4>To port the Makefile infrastructure:</H4>
+Modify the appropriate files in the Makefile infrastructure to add a new platform, operating system or architecture as needed.
+See the Makefile infrastructure files for examples.
+<OL>
+<LI>The <A HREF=../Makefile>top-level Makefile</A> includes <A HREF=common.inc>common.inc</A> to determine the operating system.
+    <UL>
+    <LI>To add a new operating system, add the appropriate test to <A HREF=common.inc>common.inc</A>,
+	and create the needed <os>.inc and <os>_<compiler>.inc files (see below).
+    </UL>
+<LI>The <os>.inc file makes OS-specific settings for a particular <os>.
+    <UL>
+    <LI>For example, <A HREF=linux.inc>linux.inc</A> makes settings specific to Linux* systems.
+    <LI>This file performs OS-dependent tests to determine the specific platform and/or architecture,
+	and sets other platform-dependent values.
+    <LI>Add a new <os>.inc file for each new operating system added.
+    </UL>
+<LI>The <os>_<compiler>.inc file makes compiler-specific settings for a particular
+    <os> / <compiler> combination.
+    <UL>
+    <LI>For example, <A HREF=linux.gcc.inc>linux.gcc.inc</A> makes specific settings for using GCC on Linux* systems,
+	and <A HREF=linux.icc.inc>linux.icc.inc</A> makes specific settings for using the Intel® C++ compiler on Linux* systems.
+    <LI>This file sets particular compiler, assembler and linker options required when using a particular
+	<os> / <compiler> combination.
+    <LI>Add a new <os>_<compiler>.inc file for each new <os> / <compiler> combination added.
+    </UL>
+</OL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<P></P>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<P></P>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<P></P>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
new file mode 100644
index 0000000..b0ea2bb
--- /dev/null
+++ b/build/linux.gcc.inc
@@ -0,0 +1,98 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -MMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_KEY = 
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+TBB_NOSTRICT = 1
+
+CPLUS = g++ 
+INCLUDES += -I$(tbb_root)/src/tbb -I$(tbb_root)/include -I$(tbb_root)/src
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread -lrt -ldl 
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+        CPLUS_FLAGS = -DDO_ITT_NOTIFY -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+        CPLUS_FLAGS = -DTBB_DO_ASSERT -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (itanium,$(arch))
+# Position-independent code (PIC) is a must for IA-64
+    CPLUS_FLAGS += $(PIC_KEY)
+    $(PIC_KEY) = 
+endif 
+
+ifeq (em64t,$(arch))
+    CPLUS_FLAGS += -m64
+    LIB_LINK_FLAGS += -m64
+endif 
+
+ifeq (ia32,$(arch))
+    CPLUS_FLAGS += -m32
+    LIB_LINK_FLAGS += -m32
+endif 
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+%.$(OBJ): %.s
+	cpp $(ASM_FLAGS) <$< | grep -v '^#' >$*.tmp
+	$(ASM) -o $@ $*.tmp
+	rm $*.tmp
+
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (itanium,$(arch))
+    ASM=ias
+    TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+endif 
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/linux.icc.inc b/build/linux.icc.inc
new file mode 100644
index 0000000..3e10c6b
--- /dev/null
+++ b/build/linux.icc.inc
@@ -0,0 +1,95 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -MMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_KEY = 
+DYLIB_KEY = -shared
+LIBDL = -ldl
+export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&1 | grep 'Version')
+
+TBB_NOSTRICT = 1
+
+CPLUS = icpc 
+
+ifeq (release,$(cfg))
+CPLUS_FLAGS = -DDO_ITT_NOTIFY -O2 -strict_ansi -DUSE_PTHREAD
+else
+CPLUS_FLAGS = -DTBB_DO_ASSERT -DDO_ITT_NOTIFY -O0 -g -strict_ansi -DUSE_PTHREAD
+endif
+
+ifeq (true,$(codecov))
+    CPLUS_FLAGS += -prof-genx
+endif
+
+OPENMP_FLAG = -openmp
+INCLUDES += -I$(tbb_root)/src/tbb -I$(tbb_root)/include -I$(tbb_root)/src -I.
+LIB_LINK_FLAGS = -shared -i-static
+LIBS = -lpthread -lrt -ldl 
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (itanium,$(arch))
+# Position-independent code (PIC) is a must for IA-64
+    CPLUS_FLAGS += $(PIC_KEY)
+    $(PIC_KEY) = 
+endif 
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+%.$(OBJ): %.s
+	cpp $(ASM_FLAGS) <$< | grep -v '^#' >$*.tmp
+	$(ASM) -o $@ $*.tmp
+	rm $*.tmp
+
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (itanium,$(arch))
+    ASM=ias
+    TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+endif 
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
diff --git a/build/linux.inc b/build/linux.inc
new file mode 100644
index 0000000..c1fe631
--- /dev/null
+++ b/build/linux.inc
@@ -0,0 +1,89 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef arch
+        ifeq ($(shell arch),i686)
+                export arch:=ia32
+        endif
+        ifeq ($(shell arch),ia64)
+                export arch:=itanium
+        endif
+        ifeq ($(shell arch),x86_64)
+                export arch:=em64t
+        endif
+endif
+
+ifndef runtime
+        #gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc --version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
+        gcc_version_full=$(shell gcc --version | grep 'gcc'| egrep -o ' [0-9]+\.[0-9]+\.[0-9]+.*' | sed -e 's/^\ //')
+        gcc_version=$(shell echo "$(gcc_version_full)" | egrep -o '^[0-9]+\.[0-9]+\.[0-9]+\s*' | head -n 1 | sed -e 's/ *//g')
+        os_version:=$(shell uname -r)
+        os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+        export os_glibc_version_full:=$(shell getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //')
+        os_glibc_version:=$(shell echo "$(os_glibc_version_full)" | sed -e '2,$$d' -e 's/-.*$$//')
+        export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= > /dev/null 2>&1
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.tmp
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+        export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+        export LD_LIBRARY_PATH := .
+endif
+
+####### Build settigns ########################################################
+
+OBJ = o
+DLL = so
+LIBEXT = so
+
+ifeq ($(cfg),debug)
+    DEBUG_SUFFIX = _debug
+endif
+
+TBB.DEF = 
+TBB.DLL = libtbb$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).so
+MALLOC.LIB = $(MALLOC.DLL)
+
+TBB_NOSTRICT=1
+
+
+
diff --git a/build/macos.gcc.inc b/build/macos.gcc.inc
new file mode 100644
index 0000000..73a6744
--- /dev/null
+++ b/build/macos.gcc.inc
@@ -0,0 +1,73 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+CPLUS = g++
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -MMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_KEY = 
+DYLIB_KEY = -dynamiclib
+LIBDL = -ldl
+
+INCLUDES += -I$(tbb_root)/src -I$(tbb_root)/include
+LIBS = -lpthread
+LINK_FLAGS = 
+LIB_LINK_FLAGS = -dynamiclib -Wl,-exported_symbols_list,$(TBB.DEF) 
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+    CPLUS_FLAGS = -O2
+else
+    CPLUS_FLAGS = -g -O0 -DTBB_DO_ASSERT
+endif
+
+CPLUS_FLAGS += -DUSE_PTHREAD
+
+ifeq (em64t,$(arch))
+    CPLUS_FLAGS += -m64
+    LINK_FLAGS += -m64
+    LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ppc64,$(arch))
+    CPLUS_FLAGS += -m64
+    LINK_FLAGS += -m64
+    LIB_LINK_FLAGS += -m64
+endif
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
diff --git a/build/macos.icc.inc b/build/macos.icc.inc
new file mode 100644
index 0000000..1f989fc
--- /dev/null
+++ b/build/macos.icc.inc
@@ -0,0 +1,71 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+CPLUS = icpc
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -MMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_KEY = 
+DYLIB_KEY = -dynamiclib
+LIBDL = -ldl
+export COMPILER_VERSION := $(shell icc -V </dev/null 2>&1 | grep 'Version')
+
+INCLUDES += -I$(tbb_root)/src -I$(tbb_root)/include
+OPENMP_FLAG = -openmp
+LIBS = -lpthread
+LINK_FLAGS = 
+LIB_LINK_FLAGS = -dynamiclib -i-static -Wl,-exported_symbols_list,$(TBB.DEF) 
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+    CPLUS_FLAGS = -O2
+else
+    CPLUS_FLAGS = -g -O0 -DTBB_DO_ASSERT
+endif
+
+CPLUS_FLAGS += -DUSE_PTHREAD
+
+ifeq (true,$(codecov))
+    CPLUS_FLAGS += -prof-genx
+endif
+
+ifeq (em64t,$(arch))
+#    LINK_FLAGS += -m64
+#    LIB_LINK_FLAGS += -m64
+endif
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/macos.inc b/build/macos.inc
new file mode 100644
index 0000000..0bd6ee4
--- /dev/null
+++ b/build/macos.inc
@@ -0,0 +1,84 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+####### Detections and Commands ###############################################
+ifndef arch
+ ifeq ($(shell /usr/sbin/sysctl -n hw.machine),Power Macintosh)
+   ifeq ($(shell /usr/sbin/sysctl -n hw.optional.64bitops),1)
+     export arch:=ppc64
+   else
+     export arch:=ppc32
+   endif
+ else
+   ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
+     export arch:=em64t
+   else
+     export arch:=ia32
+   endif
+ endif
+endif
+
+ifndef runtime
+ #gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//' )
+ gcc_version_full=$(shell gcc --version | grep 'gcc'| egrep -o ' [0-9]+\.[0-9]+\.[0-9]+.*' | sed -e 's/^\ //')
+ gcc_version=$(shell echo "$(gcc_version_full)" | egrep -o '^[0-9]+\.[0-9]+\.[0-9]+\s*' | head -n 1 | sed -e 's/ *//g')
+ os_version:=$(shell /usr/bin/sw_vers -productVersion)
+ export runtime:=cc$(gcc_version)_os$(os_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= > /dev/null 2>&1
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_macos.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.tmp
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+####### Build settigns ########################################################
+
+OBJ=o
+DLL=dylib
+LIBEXT=dylib
+
+ifeq ($(cfg),debug)
+    DEBUG_SUFFIX = _debug
+endif
+
+TBB.DEF = $(tbb_root)/src/tbb/$(arch)-tbb-mac-export.txt
+TBB.DLL = libtbb$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(arch)-malloc-mac-export.txt
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).dylib
+MALLOC.LIB = $(MALLOC.DLL)
+
+TBB_NOSTRICT=1
+
diff --git a/build/version_info_linux.sh b/build/version_info_linux.sh
new file mode 100644
index 0000000..e4bacc5
--- /dev/null
+++ b/build/version_info_linux.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Script used to generate version info string
+echo "#define __TBB_VERSION_STRINGS \\"
+echo '"TBB: ' "BUILD_HOST\t\t"`hostname -s`" ("`arch`")"'" ENDL \'
+echo '"TBB: ' "BUILD_OS\t\t"`head -1 /etc/issue | sed -e 's/\\\\//g'`'" ENDL \'
+echo '"TBB: ' "BUILD_KERNEL\t"`uname -rv`'" ENDL \'
+echo '"TBB: ' "BUILD_GCC\t\t"`g++ -v </dev/null 2>&1 | grep 'gcc.*version'`'" ENDL \'
+[ -z "$COMPILER_VERSION" ] || echo '"TBB: ' "BUILD_COMPILER\t"$COMPILER_VERSION'" ENDL \'
+echo '"TBB: ' "BUILD_GLIBC\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \'
+echo '"TBB: ' "BUILD_LD\t\t"`ld -v | grep 'version'`'" ENDL \'
+echo '"TBB: ' "BUILD_TARGET\t$arch on $runtime"'" ENDL \'
+echo '"TBB: ' "BUILD_COMMAND\t"$*'" ENDL \'
+echo ""
+echo "#define __TBB_DATETIME \""`date -u`"\""
diff --git a/build/version_info_macos.sh b/build/version_info_macos.sh
new file mode 100644
index 0000000..bd5990c
--- /dev/null
+++ b/build/version_info_macos.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Script used to generate version info string
+echo "#define __TBB_VERSION_STRINGS \\"
+echo '"TBB: ' "BUILD_HOST\t\t"`hostname -s`" ("`arch`")"'" ENDL \'
+echo '"TBB: ' "BUILD_KERNEL\t"`uname -rv`'" ENDL \'
+echo '"TBB: ' "BUILD_GCC\t\t"`gcc -v </dev/null 2>&1 | grep 'version'`'" ENDL \'
+[ -z "$COMPILER_VERSION" ] || echo '"TBB: ' "BUILD_COMPILER\t"$COMPILER_VERSION'" ENDL \'
+echo '"TBB: ' "BUILD_LD\t\t"`ld -v | grep 'version'`'" ENDL \'
+echo '"TBB: ' "BUILD_TARGET\t$arch on $runtime"'" ENDL \'
+echo '"TBB: ' "BUILD_COMMAND\t"$*'" ENDL \'
+echo ""
+echo "#define __TBB_DATETIME \""`date -u`"\""
diff --git a/build/version_info_windows.js b/build/version_info_windows.js
new file mode 100644
index 0000000..373193f
--- /dev/null
+++ b/build/version_info_windows.js
@@ -0,0 +1,131 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+var WshShell = WScript.CreateObject("WScript.Shell");
+
+var tmpExec;
+
+WScript.Echo("#define __TBB_VERSION_STRINGS \\");
+
+//Getting BUILD_HOST
+WScript.echo( "\"TBB: BUILD_HOST\\t\\t" + 
+			  WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%") +
+			  "\" ENDL \\" );
+
+//Getting BUILD_OS
+tmpExec = WshShell.Exec("cmd /c ver");
+while ( tmpExec.Status == 0 ) {
+	WScript.Sleep(100);
+}
+tmpExec.StdOut.ReadLine();
+
+WScript.echo( "\"TBB: BUILD_OS\\t\\t" + 
+			  tmpExec.StdOut.ReadLine() +
+			  "\" ENDL \\" );
+
+
+//Getting BUILD_CL
+tmpExec = WshShell.Exec("cmd /c echo #define 0 0>empty.cpp");
+tmpExec = WshShell.Exec("cl -c empty.cpp ");
+while ( tmpExec.Status == 0 ) {
+	WScript.Sleep(100);
+}
+var clVersion = tmpExec.StdErr.ReadLine();
+WScript.echo( "\"TBB: BUILD_CL\\t\\t" + 
+			  clVersion +
+			  "\" ENDL \\" );
+
+//Getting BUILD_COMPILER
+if ( WScript.Arguments(0).toLowerCase().match("icl") ) {
+	tmpExec = WshShell.Exec("icl -c empty.cpp ");
+	while ( tmpExec.Status == 0 ) {
+		WScript.Sleep(100);
+	}
+	WScript.echo( "\"TBB: BUILD_COMPILER\\t" + 
+				  tmpExec.StdErr.ReadLine() + 
+				  "\" ENDL \\" );
+} else {
+	WScript.echo( "\"TBB: BUILD_COMPILER\\t\\t" + 
+				  clVersion +
+				  "\" ENDL \\" );
+}
+
+tmpExec = WshShell.Exec("cmd /c del /F /Q empty.cpp ");
+tmpExec = WshShell.Exec("cmd /c del /F /Q empty.obj ");
+
+//Getting BUILD_TARGET
+WScript.echo( "\"TBB: BUILD_TARGET\\t" + 
+			  WScript.Arguments(1) + 
+			  "\" ENDL \\" );
+
+//Getting BUILD_COMMAND
+WScript.echo( "\"TBB: BUILD_COMMAND\\t" + WScript.Arguments(2) + "\" ENDL" );
+
+//Getting __TBB_DATETIME and __TBB_VERSION_YMD
+var date = new Date();
+WScript.echo( "#define __TBB_DATETIME \"" + date.toUTCString() + "\"" );
+WScript.echo( "#define __TBB_VERSION_YMD " + date.getUTCFullYear() + ", " + 
+			  (date.getUTCMonth() > 8 ? (date.getUTCMonth()+1):("0"+(date.getUTCMonth()+1))) + 
+			  (date.getUTCDate() > 9 ? date.getUTCDate():("0"+date.getUTCDate())) );
+
+
+/*
+
+Original strings
+
+#define __TBB_VERSION_STRINGS \
+"TBB: BUILD_HOST\t\tvpolin-mobl1 (ia32)" ENDL \
+"TBB: BUILD_OS\t\tMicrosoft Windows XP [Version 5.1.2600]" ENDL \
+"TBB: BUILD_CL\t\tMicrosoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86" ENDL \
+"TBB: BUILD_COMPILER\tIntel(R) C++ Compiler for 32-bit applications, Version 9.1 Build 20070109Z Package ID: W_CC_C_9.1.034 " ENDL \
+"TBB: BUILD_TARGET\t" ENDL \
+"TBB: BUILD_COMMAND\t" ENDL \
+
+#define __TBB_DATETIME "Mon Jun 4 10:16:07 UTC 2007"
+#define __TBB_VERSION_YMD 2007, 0604
+
+
+
+# The script must be run from two directory levels below this level.
+x='"TBB: '
+y='" ENDL \'
+echo "#define __TBB_VERSION_STRINGS \\"
+echo $x "BUILD_HOST\t\t"`hostname`" ("`../../arch.exe`")"$y
+echo $x "BUILD_OS\t\t"`../../win_version.bat|grep -i 'Version'`$y
+echo >empty.cpp
+echo $x "BUILD_CL\t\t"`cl -c empty.cpp 2>&1 | grep -i Version`$y
+echo $x "BUILD_COMPILER\t"`icl -c empty.cpp 2>&1 | grep -i Version`$y
+echo $x "BUILD_TARGET\t"$TBB_ARCH$y
+echo $x "BUILD_COMMAND\t"$*$y
+echo ""
+# A workaround for MKS 8.6 where `date -u` crashes.
+date -u > date.tmp
+echo "#define __TBB_DATETIME \""`cat date.tmp`"\""
+echo "#define __TBB_VERSION_YMD "`date '+%Y, %m%d'`
+rm empty.cpp
+rm empty.obj
+rm date.tmp
+*/
diff --git a/build/windows.cl.inc b/build/windows.cl.inc
new file mode 100644
index 0000000..35f8efc
--- /dev/null
+++ b/build/windows.cl.inc
@@ -0,0 +1,122 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Define compiler-specific variables.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting default configuration to release.
+#------------------------------------------------------------------------------
+cfg ?= release
+#------------------------------------------------------------------------------
+# End of setting default configuration to release.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting compiler flags.
+#------------------------------------------------------------------------------
+CPLUS = cl
+LINK_FLAGS = /link /nologo
+LIB_LINK_FLAGS=/link /nologo /DLL \
+               /DEF:"$(TBB.DEF)" /MAP /DEBUG /fixed:no
+
+ifeq ($(cfg), release)
+        CPLUS_FLAGS = /nologo /MD /O2 /Zi /EHsc /Zc:forScope /DDO_ITT_NOTIFY \
+        /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE
+        ASM_FLAGS =
+ifeq (ia32,$(arch))
+        CPLUS_FLAGS += /Oy
+endif
+endif
+ifeq ($(cfg), debug)
+        CPLUS_FLAGS = /nologo /MDd /Od /Ob0 /Zi /EHsc /Zc:forScope \
+                      /DTBB_DO_ASSERT /DDO_ITT_NOTIFY
+        ASM_FLAGS = /DUSE_FRAME_POINTER
+endif
+
+
+COMPILE_ONLY = /c
+PREPROC_ONLY = /E
+INCLUDE_KEY = /I
+DEFINE_KEY = /D
+OUTPUT_KEY = /Fe
+OUTPUTOBJ_KEY = /Fo
+WARNING_KEY = 
+DYLIB_KEY = /DLL
+ifeq ($(runtime),vc8)
+        OPENMP_FLAG = /openmp
+endif
+
+ifeq (em64t,$(arch))
+        ASM_FLAGS += /DEM64T=1
+        CPLUS_FLAGS += /GS-
+endif
+
+
+
+TARGET_VERSION = 0x0400
+CPLUS_FLAGS += /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE \
+        /D_WIN32_WINNT=$(TARGET_VERSION)
+C_FLAGS = $(CPLUS_FLAGS) /TC
+#------------------------------------------------------------------------------
+# End of setting compiler flags.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-masm
+ifeq (em64t,$(arch))
+    ASM=ml64
+    ASM_FLAGS += /c /Zi
+    TBB_ASM.OBJ = atomic_support.obj
+else
+    ASM=ml
+    ASM_FLAGS += /c /coff /Zi
+    TBB_ASM.OBJ = atomic_support.obj lock_byte.obj
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_CPLUS_FLAGS = $(subst EHsc,EHs-,$(CPLUS_FLAGS))
+M_INCLUDES = $(INCLUDES) /I$(MALLOC_ROOT) /I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS += /EHs- /GR-
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# End of define compiler-specific variables.
+#------------------------------------------------------------------------------
diff --git a/build/windows.icl.inc b/build/windows.icl.inc
new file mode 100644
index 0000000..51cfa24
--- /dev/null
+++ b/build/windows.icl.inc
@@ -0,0 +1,133 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Define compiler-specific variables.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting default configuration to release.
+#------------------------------------------------------------------------------
+cfg ?= release
+#------------------------------------------------------------------------------
+# End of setting default configuration to release.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting compiler flags.
+#------------------------------------------------------------------------------
+CPLUS = icl $(VCCOMPAT_FLAG)
+LINK_FLAGS = /link /nologo
+LIB_LINK_FLAGS=/nologo /link /nologo /DLL \
+               /DEF:"$(TBB.DEF)" /MAP /DEBUG /fixed:no
+
+ifeq ($(cfg), release)
+        CPLUS_FLAGS = /nologo /MD /O2 /Zi /EHsc /Zc:forScope /DDO_ITT_NOTIFY
+        ASM_FLAGS =
+ifeq (ia32,$(arch))
+        CPLUS_FLAGS += /Oy
+endif
+endif
+ifeq ($(cfg), debug)
+        CPLUS_FLAGS = /nologo /MDd /Od /Ob0 /Zi /EHsc /Zc:forScope \
+                      /DTBB_DO_ASSERT /DDO_ITT_NOTIFY
+        LINK_FLAGS += libmmds.lib /NODEFAULTLIB:libmmdd.lib
+        ASM_FLAGS = /DUSE_FRAME_POINTER
+endif
+
+
+COMPILE_ONLY = /c /QMMD
+PREPROC_ONLY = /E
+INCLUDE_KEY = /I
+DEFINE_KEY = /D
+OUTPUT_KEY = /Fe
+OUTPUTOBJ_KEY = /Fo
+WARNING_KEY = 
+DYLIB_KEY = /DLL
+
+ifeq (em64t,$(arch))
+        ASM_FLAGS += /DEM64T=1
+        CPLUS_FLAGS += /GS-
+endif
+
+ifeq (true,$(codecov))
+    CPLUS_FLAGS += /Qprof-genx
+endif
+
+TARGET_VERSION = 0x0400
+OPENMP_FLAG = /Qopenmp
+CPLUS_FLAGS += /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE \
+        /D_WIN32_WINNT=$(TARGET_VERSION)
+C_FLAGS = $(CPLUS_FLAGS) /TC
+
+VCVERSION:=$(runtime)
+VCCOMPAT_FLAG := $(if $(findstring vc7.1, $(VCVERSION)),/Qvc7.1)
+ifeq ($(VCCOMPAT_FLAG),)
+        VCCOMPAT_FLAG := $(if $(findstring vc8, $(VCVERSION)),/Qvc8)
+endif
+ifeq ($(VCCOMPAT_FLAG),)
+        $(error VC version not detected correctly: $(VCVERSION) )
+endif
+export VCCOMPAT_FLAG
+#------------------------------------------------------------------------------
+# End of setting compiler flags.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-masm
+ifeq (em64t,$(arch))
+    ASM=ml64
+    ASM_FLAGS += /c /Zi
+    TBB_ASM.OBJ = atomic_support.obj
+else
+    ASM=ml
+    ASM_FLAGS += /c /coff /Zi
+    TBB_ASM.OBJ = atomic_support.obj lock_byte.obj
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_CPLUS_FLAGS = $(subst EHsc,EHs-,$(CPLUS_FLAGS))
+M_INCLUDES = $(INCLUDES) /I$(MALLOC_ROOT) /I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS += /EHs- /GR-
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# End of define compiler-specific variables.
+#------------------------------------------------------------------------------
diff --git a/build/windows.inc b/build/windows.inc
new file mode 100644
index 0000000..1cd4645
--- /dev/null
+++ b/build/windows.inc
@@ -0,0 +1,73 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifdef tbb_build_dir
+  test_dir:=$(tbb_build_dir)
+else
+  test_dir:=.
+endif
+
+ifndef arch
+  export arch:=$(shell cmd /C "cscript /nologo /E:jscript $(tbb_root)/build/detect.js /arch")
+endif
+
+ifndef runtime
+  export runtime:=$(shell cmd /C "cscript /nologo /E:jscript $(tbb_root)/build/detect.js /runtime")
+endif
+
+native_compiler := cl
+export compiler ?= cl
+debugger ?= devenv /debugexe
+
+CWD=$(shell cmd /C echo %CD%)
+RM=cmd /C del /Q /F
+RD=cmd /C rmdir
+MD=cmd /c mkdir
+SLASH=\\
+NUL = >nul 2>&1
+
+INCLUDES += /I$(tbb_root)/src /I$(tbb_root)/include
+OBJ = obj
+DLL = dll
+LIBEXT = lib
+
+ifeq ($(cfg),debug)
+    DEBUG_SUFFIX = _debug
+endif
+
+TBB.DEF = $(tbb_root)/src/tbb/$(arch)-tbb.def
+TBB.DLL = tbb$(DEBUG_SUFFIX).dll
+TBB.LIB = tbb$(DEBUG_SUFFIX).lib
+TBB.RES = tbb_resource.res
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(arch)-malloc.def
+MALLOC.DLL = tbbmalloc$(DEBUG_SUFFIX).dll
+MALLOC.LIB = tbbmalloc$(DEBUG_SUFFIX).lib
+MALLOC.RES = tbbmalloc.res
+
+
+MAKE_VERSIONS = cmd /C cscript /nologo /E:jscript $(tbb_root)/build/version_info_windows.js $(compiler) $(arch) "$(CPLUS) $(CPLUS_FLAGS) $(INCLUDES)" > version_string.tmp
+MAKE_TBBVARS  = cmd /C "$(subst /,\,$(tbb_root))\build\generate_tbbvars.bat"
diff --git a/examples/GettingStarted/index.html b/examples/GettingStarted/index.html
new file mode 100644
index 0000000..a83766e
--- /dev/null
+++ b/examples/GettingStarted/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains the examples referenced by the Threading Building Blocks Getting Started Guide. 
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="sub_string_finder/index.html">sub_string_finder</A>
+<DD>Finds largest matching substrings.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/GettingStarted/sub_string_finder/Makefile b/examples/GettingStarted/sub_string_finder/Makefile
new file mode 100644
index 0000000..1fea7f8
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/Makefile
@@ -0,0 +1,48 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder sub_string_finder.cpp -ltbb
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder_extended sub_string_finder_extended.cpp -ltbb
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder_pretty sub_string_finder_pretty.cpp -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o sub_string_finder sub_string_finder.cpp -ltbb_debug
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o sub_string_finder_extended sub_string_finder_extended.cpp -ltbb_debug
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o sub_string_finder_pretty sub_string_finder_pretty.cpp -ltbb_debug
+
+clean:
+	rm -f sub_string_finder sub_string_finder_extended sub_string_finder_pretty *.o *.d
+
+test:
+	./sub_string_finder_extended
diff --git a/examples/GettingStarted/sub_string_finder/Makefile.windows b/examples/GettingStarted/sub_string_finder/Makefile.windows
new file mode 100644
index 0000000..349aa55
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/Makefile.windows
@@ -0,0 +1,46 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs examples.
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) sub_string_finder.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS) /OUT:sub_string_finder.exe
+	$(CXX) sub_string_finder_extended.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS) /OUT:sub_string_finder_extended.exe
+	$(CXX) sub_string_finder_pretty.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS) /OUT:sub_string_finder_pretty.exe
+debug:
+	$(CXX) sub_string_finder.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS) /OUT:sub_string_finder.exe
+	$(CXX) sub_string_finder_extended.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS) /OUT:sub_string_finder_extended.exe
+	$(CXX) sub_string_finder_pretty.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS) /OUT:sub_string_finder_pretty.exe
+clean:
+	@cmd.exe /C del sub_string_finder*.exe *.obj *.?db *.manifest
+test:
+	sub_string_finder_extended
diff --git a/examples/GettingStarted/sub_string_finder/index.html b/examples/GettingStarted/sub_string_finder/index.html
new file mode 100644
index 0000000..1aefa5f
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/index.html
@@ -0,0 +1,64 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+A simple example that uses the parallel_for template in a substring matching program. For each position 
+in a string, the program displays the length of the largest matching substring elsewhere in the string. 
+The program also displays the location of a largest match for each position.  Consider the string "babba" 
+as an example. Starting at position 0, "ba" is the largest substring with a match elsewhere in the 
+string (position 3). 
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="sub_string_finder.cpp">sub_string_finder.cpp</A>
+<DD>The example as it appears in the Getting Started Guide.
+<DT><A HREF="sub_string_finder_extended.cpp">sub_string_finder_extended.cpp</A>
+<DD>An example similar to the one in the Getting Started Guide, but with an added sequential
+    implementation.  The two implementations are both timed, by using tick_count,
+    and the speedup of the parallel version is calculated and displayed.
+<DT><A HREF="sub_string_finder_pretty.cpp">sub_string_finder_pretty.cpp</A>
+<DD>An example similar to the one in the Getting Started Guide, but with more attractive printing of the results.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>sub_string_finder</TT>
+<DD>Runs the example as it appears in the Getting Started Guide.
+<DT><TT>sub_string_finder_extended</TT>
+<DD>Runs the extended example with the added sequential implementation.
+<DT><TT>sub_string_finder_pretty</TT>
+<DD>Runs the similar example with more attractive printing of the results.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the <TT>sub_string_finder_pretty</TT> example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it, e.g., <TT>sub_string_finder_pretty</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/GettingStarted/sub_string_finder/sub_string_finder.cpp b/examples/GettingStarted/sub_string_finder/sub_string_finder.cpp
new file mode 100644
index 0000000..a43879e
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/sub_string_finder.cpp
@@ -0,0 +1,85 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include <iostream>
+#include <string>
+#include <algorithm>							
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_for.h"
+#include "tbb/blocked_range.h"
+
+using namespace tbb;
+using namespace std;
+
+static const size_t N = 23;
+
+class SubStringFinder {							
+ const string str;							
+ size_t *max_array;							
+ size_t *pos_array;							
+ public:									
+ void operator() ( const blocked_range<size_t>& r ) const {	
+  for ( size_t i = r.begin(); i != r.end(); ++i ) {		
+   size_t max_size = 0, max_pos = 0;				
+   for (size_t j = 0; j < str.size(); ++j) 					
+    if (j != i) {								
+     size_t limit = str.size()-( i > j ? i : j );		
+     for (size_t k = 0; k < limit; ++k) {
+      if (str[i + k] != str[j + k]) break;		
+      if (k > max_size) {						
+       max_size = k;							
+       max_pos = j;							
+      }									
+     }
+    }										
+   max_array[i] = max_size;						
+   pos_array[i] = max_pos;						
+  }										
+ }										
+ SubStringFinder(string &s, size_t *m, size_t *p) : 	
+  str(s), max_array(m), pos_array(p) { }										
+};				
+
+int main(size_t argc, char *argv[]) {
+ task_scheduler_init init;
+
+ string str[N] = { string("a"), string("b") };
+ for (size_t i = 2; i < N; ++i) str[i] = str[i-1]+str[i-2];
+ string &to_scan = str[N-1]; 
+
+ size_t *max = new size_t[to_scan.size()];
+ size_t *pos = new size_t[to_scan.size()];
+
+ parallel_for(blocked_range<size_t>(0, to_scan.size(), 100),
+       SubStringFinder( to_scan, max, pos ) );			 
+
+ for (size_t i = 0; i < to_scan.size(); ++i)
+  cout << " " << (int)max[i] << "(" << (int)pos[i] << ")" << endl;
+ return 0;
+}
+
diff --git a/examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp b/examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp
new file mode 100644
index 0000000..a87e1c3
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp
@@ -0,0 +1,124 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include <iostream>
+#include <string>
+#include <algorithm>							
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_for.h"
+#include "tbb/blocked_range.h"
+#include "tbb/tick_count.h"
+
+using namespace tbb;
+using namespace std;
+static const size_t N = 22;
+
+void SerialSubStringFinder ( const string &str, size_t *max_array, size_t *pos_array) {
+ for ( size_t i = 0; i < str.size(); ++i ) {
+   size_t max_size = 0, max_pos = 0;
+   for (size_t j = 0; j < str.size(); ++j)
+    if (j != i) {
+     size_t limit = str.size()-( i > j ? i : j );
+     for (size_t k = 0; k < limit; ++k) {
+      if (str[i + k] != str[j + k]) break;
+      if (k > max_size) {
+       max_size = k;
+       max_pos = j;
+      }
+     }
+    }
+   max_array[i] = max_size;
+   pos_array[i] = max_pos;
+  }
+}
+
+class SubStringFinder {							
+ const string str;							
+ size_t *max_array;							
+ size_t *pos_array;							
+ public:									
+ void operator() ( const blocked_range<size_t>& r ) const {	
+  for ( size_t i = r.begin(); i != r.end(); ++i ) {		
+   size_t max_size = 0, max_pos = 0;				
+   for (size_t j = 0; j < str.size(); ++j) 					
+    if (j != i) {								
+     size_t limit = str.size()-( i > j ? i : j );		
+     for (size_t k = 0; k < limit; ++k) {
+      if (str[i + k] != str[j + k]) break;		
+      if (k > max_size) {						
+       max_size = k;							
+       max_pos = j;							
+      }									
+     }
+    }										
+   max_array[i] = max_size;						
+   pos_array[i] = max_pos;						
+  }										
+ }										
+ SubStringFinder(string &s, size_t *m, size_t *p) : 	
+  str(s), max_array(m), pos_array(p) { }										
+};				
+
+int main(size_t argc, char *argv[]) {
+ task_scheduler_init init;
+
+ string str[N] = { string("a"), string("b") };
+ for (size_t i = 2; i < N; ++i) str[i] = str[i-1]+str[i-2];
+ string &to_scan = str[N-1]; 
+
+ size_t *max = new size_t[to_scan.size()];
+ size_t *max2 = new size_t[to_scan.size()];
+ size_t *pos = new size_t[to_scan.size()];
+ size_t *pos2 = new size_t[to_scan.size()];
+ cout << " Done building string." << endl;
+
+ 
+ tick_count serial_t0 = tick_count::now();
+ SerialSubStringFinder(to_scan, max2, pos2);
+ tick_count serial_t1 = tick_count::now();
+ cout << " Done with serial version." << endl;
+
+ tick_count parallel_t0 = tick_count::now();
+ parallel_for(blocked_range<size_t>(0, to_scan.size(), 100),
+       SubStringFinder( to_scan, max, pos ) );			 
+ tick_count parallel_t1 = tick_count::now();
+ cout << " Done with parallel version." << endl;
+
+ for (size_t i = 0; i < to_scan.size(); ++i) {
+   if (max[i] != max2[i] || pos[i] != pos2[i]) {
+     cout << "ERROR: Serial and Parallel Results are Different!" << endl;
+   }
+ }
+ cout << " Done validating results." << endl;
+
+ cout << "Serial version ran in " << (serial_t1 - serial_t0).seconds() << " seconds" << endl
+           << "Parallel version ran in " <<  (parallel_t1 - parallel_t0).seconds() << " seconds" << endl
+           << "Resulting in a speedup of " << (serial_t1 - serial_t0).seconds() / (parallel_t1 - parallel_t0).seconds() << endl;
+ return 0;
+}
+
diff --git a/examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp b/examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp
new file mode 100644
index 0000000..8d7d05f
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp
@@ -0,0 +1,95 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include <iostream>
+#include <string>
+#include <algorithm>							
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_for.h"
+#include "tbb/blocked_range.h"
+
+using namespace tbb;
+static const size_t N = 9;
+
+class SubStringFinder {							
+ const std::string str;							
+ size_t *max_array;							
+ size_t *pos_array;							
+ public:									
+ void operator() ( const blocked_range<size_t>& r ) const {	
+  for ( size_t i = r.begin(); i != r.end(); ++i ) {		
+   size_t max_size = 0, max_pos = 0;				
+   for (size_t j = 0; j < str.size(); ++j) 					
+    if (j != i) {								
+     size_t limit = str.size()-( i > j ? i : j );		
+     for (size_t k = 0; k < limit; ++k) {
+      if (str[i + k] != str[j + k]) break;		
+      if (k+1 > max_size) {						
+       max_size = k+1;							
+       max_pos = j;							
+      }									
+     }
+    }										
+   max_array[i] = max_size;						
+   pos_array[i] = max_pos;						
+  }										
+ }										
+ SubStringFinder(std::string &s, size_t *m, size_t *p) : 	
+  str(s), max_array(m), pos_array(p) { }										
+};				
+
+int main(size_t argc, char *argv[]) {
+ task_scheduler_init init;
+
+ std::string str[N] = { std::string("a"), std::string("b") };
+ for (size_t i = 2; i < N; ++i) str[i] = str[i-1]+str[i-2];
+ std::string &to_scan = str[N-1]; 
+ std::cout << "String to scan: " << to_scan << std::endl;
+
+ size_t *max = new size_t[to_scan.size()];
+ size_t *pos = new size_t[to_scan.size()];
+
+ parallel_for(blocked_range<size_t>(0, to_scan.size(), 100),
+       SubStringFinder( to_scan, max, pos ) );			 
+
+ for (size_t i = 0; i < to_scan.size(); ++i) {
+   for (size_t j = 0; j < to_scan.size(); ++j) {
+     if (j >= i && j < i + max[i]) std::cout << "_";
+     else std::cout << " ";
+   } 
+   std::cout << std::endl << to_scan << std::endl;
+
+   for (size_t j = 0; j < to_scan.size(); ++j) {
+     if (j >= pos[i] && j < pos[i] + max[i]) std::cout << "*";
+     else std::cout << " ";
+   }
+   std::cout << std::endl;
+ }
+ return 0;
+}
+
diff --git a/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.sln b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.sln
new file mode 100644
index 0000000..8d55e19
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.sln
@@ -0,0 +1,40 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder", "sub_string_finder.vcproj", "{C64078BC-8A63-4C3D-B48D-ECC2B60E75E6}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder_pretty", "sub_string_finder_pretty.vcproj", "{8DCA120F-7D8C-4D43-A939-9403F03D3F45}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder_extended", "sub_string_finder_extended.vcproj", "{2607C858-EE23-429D-BCCC-D89D2A5EDFFE}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{C64078BC-8A63-4C3D-B48D-ECC2B60E75E6}.Debug.ActiveCfg = Debug|Win32
+		{C64078BC-8A63-4C3D-B48D-ECC2B60E75E6}.Debug.Build.0 = Debug|Win32
+		{C64078BC-8A63-4C3D-B48D-ECC2B60E75E6}.Release.ActiveCfg = Release|Win32
+		{C64078BC-8A63-4C3D-B48D-ECC2B60E75E6}.Release.Build.0 = Release|Win32
+		{8DCA120F-7D8C-4D43-A939-9403F03D3F45}.Debug.ActiveCfg = Debug|Win32
+		{8DCA120F-7D8C-4D43-A939-9403F03D3F45}.Debug.Build.0 = Debug|Win32
+		{8DCA120F-7D8C-4D43-A939-9403F03D3F45}.Release.ActiveCfg = Release|Win32
+		{8DCA120F-7D8C-4D43-A939-9403F03D3F45}.Release.Build.0 = Release|Win32
+		{2607C858-EE23-429D-BCCC-D89D2A5EDFFE}.Debug.ActiveCfg = Debug|Win32
+		{2607C858-EE23-429D-BCCC-D89D2A5EDFFE}.Debug.Build.0 = Debug|Win32
+		{2607C858-EE23-429D-BCCC-D89D2A5EDFFE}.Release.ActiveCfg = Release|Win32
+		{2607C858-EE23-429D-BCCC-D89D2A5EDFFE}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionItems) = postSolution
+		..\index.html = ..\index.html
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.suo b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.suo
new file mode 100644
index 0000000..47fb326
Binary files /dev/null and b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.suo differ
diff --git a/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.vcproj b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.vcproj
new file mode 100644
index 0000000..e3ad67f
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder.vcproj
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="sub_string_finder"
+	ProjectGUID="{C64078BC-8A63-4C3D-B48D-ECC2B60E75E6}"
+	RootNamespace="sub_string_finder"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\sub_string_finder.cpp">
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder_extended.vcproj b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder_extended.vcproj
new file mode 100644
index 0000000..b98e11c
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder_extended.vcproj
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="sub_string_finder_extended"
+	ProjectGUID="{2607C858-EE23-429D-BCCC-D89D2A5EDFFE}"
+	RootNamespace="sub_string_finder_extended"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\sub_string_finder_extended.cpp">
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder_pretty.vcproj b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder_pretty.vcproj
new file mode 100644
index 0000000..4bbf8a5
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc7.1/sub_string_finder_pretty.vcproj
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="sub_string_finder_pretty"
+	ProjectGUID="{8DCA120F-7D8C-4D43-A939-9403F03D3F45}"
+	RootNamespace="sub_string_finder_pretty"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\sub_string_finder_pretty.cpp">
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.sln b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.sln
new file mode 100644
index 0000000..fc96ac1
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.sln
@@ -0,0 +1,50 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder", "sub_string_finder.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2525}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder_extended", "sub_string_finder_extended.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2526}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder_pretty", "sub_string_finder_pretty.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2524}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A26B588D-97F7-4466-9672-8A7E3173FBA1}"
+	ProjectSection(SolutionItems) = preProject
+		..\index.html = ..\index.html
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|x64.Build.0 = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|x64.Build.0 = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.suo b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.suo
new file mode 100644
index 0000000..9ad071b
Binary files /dev/null and b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.suo differ
diff --git a/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.vcproj b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.vcproj
new file mode 100644
index 0000000..9e992d7
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder.vcproj
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="sub_string_finder"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A2525}"
+	RootNamespace="sub_string_finder"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\sub_string_finder.cpp"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder_extended.vcproj b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder_extended.vcproj
new file mode 100644
index 0000000..1a9c4fe
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder_extended.vcproj
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="sub_string_finder_extended"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A2526}"
+	RootNamespace="sub_string_finder_extended"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\sub_string_finder_extended.cpp"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder_pretty.vcproj b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder_pretty.vcproj
new file mode 100644
index 0000000..5d1d9e2
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/vc8/sub_string_finder_pretty.vcproj
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="sub_string_finder_pretty"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A2524}"
+	RootNamespace="sub_string_finder_pretty"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\sub_string_finder_pretty.cpp"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj b/examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..0800395
--- /dev/null
+++ b/examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj
@@ -0,0 +1,566 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A1F593A60B8F042A00073279 /* sub_string_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* sub_string_finder.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594120B8F1E0C00073279 /* sub_string_finder_pretty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */; };
+		A1F594130B8F1E1700073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594160B8F1E8000073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594240B8F1F5F00073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594250B8F1F6800073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594270B8F1F8100073279 /* sub_string_finder_extended.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594140B8F1E2D00073279 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F594160B8F1E8000073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F5941D0B8F1F2D00073279 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F594250B8F1F6800073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8DD76F6C0486A84900D96B5E /* sub_string_finder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F593A50B8F042A00073279 /* sub_string_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder.cpp; path = ../sub_string_finder.cpp; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+		A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder_pretty; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder_pretty.cpp; path = ../sub_string_finder_pretty.cpp; sourceTree = SOURCE_ROOT; };
+		A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder_extended; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder_extended.cpp; path = ../sub_string_finder_extended.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594080B8F1D8E00073279 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F594130B8F1E1700073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594190B8F1F0900073279 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F594240B8F1F5F00073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* sub_string_finder */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = sub_string_finder;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */,
+				A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */,
+				A1F593A50B8F042A00073279 /* sub_string_finder.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* sub_string_finder */,
+				A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */,
+				A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* sub_string_finder */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "sub_string_finder" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = sub_string_finder;
+			productInstallPath = "$(HOME)/bin";
+			productName = sub_string_finder;
+			productReference = 8DD76F6C0486A84900D96B5E /* sub_string_finder */;
+			productType = "com.apple.product-type.tool";
+		};
+		A1F594090B8F1D8E00073279 /* sub_string_finder_pretty */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */;
+			buildPhases = (
+				A1F594070B8F1D8E00073279 /* Sources */,
+				A1F594080B8F1D8E00073279 /* Frameworks */,
+				A1F594140B8F1E2D00073279 /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = sub_string_finder_pretty;
+			productName = sub_string_finder_pretty;
+			productReference = A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */;
+			productType = "com.apple.product-type.tool";
+		};
+		A1F5941A0B8F1F0900073279 /* sub_string_finder_extended */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */;
+			buildPhases = (
+				A1F594180B8F1F0900073279 /* Sources */,
+				A1F594190B8F1F0900073279 /* Frameworks */,
+				A1F5941D0B8F1F2D00073279 /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = sub_string_finder_extended;
+			productName = sub_string_finder_extended;
+			productReference = A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* sub_string_finder */;
+			projectDirPath = "";
+			targets = (
+				A1F5941A0B8F1F0900073279 /* sub_string_finder_extended */,
+				A1F594090B8F1D8E00073279 /* sub_string_finder_pretty */,
+				8DD76F620486A84900D96B5E /* sub_string_finder */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593A60B8F042A00073279 /* sub_string_finder.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594070B8F1D8E00073279 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F594120B8F1E0C00073279 /* sub_string_finder_pretty.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594180B8F1F0900073279 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F594270B8F1F8100073279 /* sub_string_finder_extended.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = sub_string_finder;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = sub_string_finder;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = sub_string_finder;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = sub_string_finder;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+		A1F5940D0B8F1DB600073279 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_pretty;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		A1F5940E0B8F1DB600073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_pretty;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F5940F0B8F1DB600073279 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_pretty;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		A1F594100B8F1DB600073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_pretty;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F594200B8F1F4E00073279 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_extended;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		A1F594210B8F1F4E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_extended;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F594220B8F1F4E00073279 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_extended;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		A1F594230B8F1F4E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = sub_string_finder_extended;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "sub_string_finder" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A1F5940D0B8F1DB600073279 /* Debug */,
+				A1F5940E0B8F1DB600073279 /* Debug64 */,
+				A1F5940F0B8F1DB600073279 /* Release */,
+				A1F594100B8F1DB600073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A1F594200B8F1F4E00073279 /* Debug */,
+				A1F594210B8F1F4E00073279 /* Debug64 */,
+				A1F594220B8F1F4E00073279 /* Release */,
+				A1F594230B8F1F4E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/Makefile b/examples/Makefile
new file mode 100644
index 0000000..f1127b3
--- /dev/null
+++ b/examples/Makefile
@@ -0,0 +1,106 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# This file should be always located and called in $(tbb_root)/examples
+
+tbb_root?=..
+BUILDING_PHASE:=0
+include ../build/common.inc
+
+ifneq ($(firstword is_abs_path$(subst /, ,$(tbb_root))),is_abs_path)
+    # also changes related variables like work_dir
+    override tbb_root := $(CWD)$(SLASH)..
+    export TBB20_INSTALL_DIR := $(tbb_root)
+endif
+
+ifeq ($(tbb_os),windows)
+    EXAMPLE_MAKEFILE = Makefile.windows
+    EXAMPLES = $(wildcard */*/$(EXAMPLE_MAKEFILE))
+    EXAMPLE_MAKEFILE := $(if $(EXAMPLES),Makefile.windows,Makefile)
+    work_dir := $(subst /,$(SLASH),$(work_dir))
+    export PATH := $(work_dir)_release;$(work_dir)_debug;$(PATH)
+    export LIB := $(work_dir)_release;$(work_dir)_debug;$(LIB)
+    export INCLUDE := $(tbb_root)$(SLASH)include;$(INCLUDE)
+    export TBB_ARCH_PLATFORM = $(arch)\$(runtime)
+else
+    EXAMPLE_MAKEFILE = Makefile
+    EXAMPLES := $(wildcard */*/$(EXAMPLE_MAKEFILE))
+    # platform-specific settings
+    ifeq ($(arch),itanium)
+        export CXXFLAGS += $(PIC_KEY)
+    endif
+    ifeq ($(compiler),gcc)
+        ifeq ($(arch),em64t)
+            export CXXFLAGS += -m64
+        endif
+        ifeq ($(arch),ia32)
+            export CXXFLAGS += -m32
+        endif
+        ifeq ($(arch),ppc64)
+            export CXXFLAGS += -m64
+        endif
+        ifeq ($(arch),ppc32)
+            export CXXFLAGS += -m32
+        endif
+    endif
+    ifeq ($(tbb_os),macos)
+        ifeq ($(arch),em64t)
+            # making GUI examples work in text console due to incompatible arch
+            export UI=con
+        endif
+        ifeq ($(arch),ppc64)
+            # making GUI examples work in text console due to incompatible arch
+            export UI=con
+        endif
+        export DYLD_LIBRARY_PATH := $(DYLD_LIBRARY_PATH):$(work_dir)_release:$(work_dir)_debug
+    else
+        export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(work_dir)_release:$(work_dir)_debug
+    endif
+    export LIBRARY_PATH := $(LIBRARY_PATH):$(work_dir)_release:$(work_dir)_debug
+    export CPATH := $(CPATH):$(tbb_root)/include
+endif
+
+COMMON_TARGETS := all clean release debug test
+EXAMPLES_TARGETS := $(foreach T,$(COMMON_TARGETS),$(addsuffix _target.$(T),$(EXAMPLES)))
+
+.PHONY: $(COMMON_TARGETS) $(EXAMPLES_TARGETS)
+
+.DEFAULT: all
+
+$(COMMON_TARGETS):: % : $(addsuffix _target.%,$(EXAMPLES))
+
+$(EXAMPLES_TARGETS)::
+	-$(MAKE) -C $(@D)  -f $(EXAMPLE_MAKEFILE) $(subst .,,$(suffix $@)) CXX="$(CPLUS)"
+
+printenv:
+ifeq ($(tbb_os),windows)
+	@cmd /C set PATH
+	@cmd /C set LIB
+	@cmd /C set INCLUDE
+else
+	@env | grep PATH
+endif
+
diff --git a/examples/common/gui/Makefile.win b/examples/common/gui/Makefile.win
new file mode 100644
index 0000000..57a176a
--- /dev/null
+++ b/examples/common/gui/Makefile.win
@@ -0,0 +1,79 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Per-build Makefile rules (for recursive $(MAKE) calls from Makefile)
+
+# Base compile/link options
+MYCXXFLAGS = /nologo $(TBB_SECURITY_SWITCH) /EHsc /Zc:forScope /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS)
+MYLFLAGS = /link /incremental:no /fixed:no $(LFLAGS)
+CXXFLAGS_NDEBUG = /MD /O2 /Oy /Ot /Gy /D NDEBUG
+CXXFLAGS_DEBUG = /MDd /Od /Zi /D _DEBUG
+
+# Specify library directory for Direct X SDK
+DDLIB_DIR=$(DXSDK_DIR)\lib\$(XARCH:AMD64=x64)
+
+# Input and output files
+#SOURCE = v
+#RCNAME = specified externaly
+#EXE =    ^
+# defaults on XARCH = x86
+UISRC = ../../common/gui/$(UI)video.cpp
+
+default:
+
+build_echo:
+	- at echo Building$(DEBUG) $(EXE) with UI=$(UI) XARCH=$(XARCH)
+
+build_one:	build_echo build_$(UI)$(DEBUG)
+
+build_con: $(SOURCE) $(UISRC)
+	$(CXX) $(CXXFLAGS_NDEBUG) $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) /subsystem:console /OUT:$(EXE)
+	@cmd.exe /C del *.obj
+
+build_con_debug: $(SOURCE) $(UISRC)
+	$(CXX) $(CXXFLAGS_DEBUG) $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) /debug /subsystem:console /OUT:$(EXE)
+	@cmd.exe /C del *.obj
+
+build_gdi: $(SOURCE) $(UISRC) vc7.1/$(RCNAME).res
+	$(CXX) $(CXXFLAGS_NDEBUG) /D _WINDOWS $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) vc7.1/$(RCNAME).res /subsystem:windows /machine:$(XARCH) /OUT:$(EXE)
+	@cmd.exe /C del *.obj
+
+build_gdi_debug: $(SOURCE) $(UISRC) vc7.1/$(RCNAME).res
+	$(CXX) $(CXXFLAGS_DEBUG) /D _WINDOWS $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) vc7.1/$(RCNAME).res /debug /subsystem:windows /machine:$(XARCH) /OUT:$(EXE)
+	@cmd.exe /C del *.obj
+
+build_dd: $(SOURCE) $(UISRC) vc7.1/$(RCNAME).res
+	- at echo Using DirectX SDK from "$(DDLIB_DIR)"
+	$(CXX) $(CXXFLAGS_NDEBUG) /D _WINDOWS $(MYCXXFLAGS) /I "$(DXSDK_DIR)\include" $(SOURCE) $(UISRC) $(MYLFLAGS) /LIBPATH:"$(DDLIB_DIR)" vc7.1/$(RCNAME).res /subsystem:windows /machine:$(XARCH) /OUT:$(EXE)
+	@cmd.exe /C del *.obj
+
+build_dd_debug: $(SOURCE) $(UISRC) vc7.1/$(RCNAME).res
+	- at echo Using DirectX SDK from "$(DDLIB_DIR)"
+	$(CXX) $(CXXFLAGS_DEBUG) /D _WINDOWS $(MYCXXFLAGS) /I "$(DXSDK_DIR)\include" $(SOURCE) $(UISRC) $(MYLFLAGS) /LIBPATH:"$(DDLIB_DIR)" vc7.1/$(RCNAME).res /debug /subsystem:windows /machine:$(XARCH) /OUT:$(EXE)
+	@cmd.exe /C del *.obj
+
+vc7.1/$(RCNAME).res:
+	rc /r vc7.1/$(RCNAME)
diff --git a/examples/common/gui/convideo.cpp b/examples/common/gui/convideo.cpp
new file mode 100644
index 0000000..5db09fc
--- /dev/null
+++ b/examples/common/gui/convideo.cpp
@@ -0,0 +1,138 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "video.h"
+#include <cassert>
+#include <stdio.h>
+
+unsigned int *              g_pImg = 0;
+int                         g_sizex, g_sizey;
+static video *g_video = 0;
+static int g_fps = 0;
+#if _WIN32 || _WIN64
+static DWORD g_msec = 0;
+
+#ifdef _WINDOWS
+HINSTANCE video::win_hInstance = 0;
+int video::win_iCmdShow = 0;
+void video::win_set_class(WNDCLASSEX &wcex)
+{
+}
+void video::win_load_accelerators(int idc)
+{
+}
+#endif
+
+#elif __linux__ || __APPLE__
+
+#include <sched.h>
+#include <sys/time.h>
+struct timeval g_time;
+#endif
+
+video::video()
+    : red_mask(0xff0000), red_shift(16), green_mask(0xff00),
+      green_shift(8), blue_mask(0xff), blue_shift(0), depth(24)
+{
+    assert(g_video == 0);
+    g_video = this; title = "Video"; updating = calc_fps = false;
+}
+
+bool video::init_window(int x, int y)
+{
+    g_sizex = x; g_sizey = y;
+    g_pImg = new unsigned int[x*y];
+    running = true;
+    return false;
+}
+
+bool video::init_console()
+{
+    running = true;
+    return true;
+}
+
+void video::terminate()
+{
+    if(calc_fps) {
+        double fps = g_fps;
+#if _WIN32 || _WIN64
+        fps /= (GetTickCount()-g_msec)/1000.0;
+#else
+        struct timezone tz; struct timeval end_time; gettimeofday(&end_time, &tz);
+        fps /= (end_time.tv_sec+1.0*end_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0);
+#endif
+        printf("%s: %.1f fps\n", title, fps);
+  	}
+    g_video = 0; running = false;
+    if(g_pImg) { delete[] g_pImg; g_pImg = 0; }
+}
+
+video::~video()
+{
+    if(g_video) terminate();
+}
+
+//! Count and display FPS count in titlebar
+bool video::next_frame()
+{
+	if(!g_fps) {
+#if _WIN32 || _WIN64
+        g_msec = GetTickCount();
+#else
+        struct timezone tz; gettimeofday(&g_time, &tz);
+#endif
+	}
+    g_fps++;
+    return running;
+}
+
+//! Do standart loop
+void video::main_loop()
+{
+    on_process();
+}
+
+//! Change window title
+void video::show_title()
+{
+}
+
+///////////////////////////////////////////// public methods of video class ///////////////////////
+
+drawing_area::drawing_area(int x, int y, int sizex, int sizey)
+    : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24),
+    base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg)
+{
+    assert(x < g_sizex); assert(y < g_sizey);
+    assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey);
+
+    index = base_index; // current index
+}
+
+drawing_area::~drawing_area() {}
diff --git a/examples/common/gui/ddvideo.cpp b/examples/common/gui/ddvideo.cpp
new file mode 100644
index 0000000..3060168
--- /dev/null
+++ b/examples/common/gui/ddvideo.cpp
@@ -0,0 +1,574 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// common Windows parts
+#include "winvideo.h"
+// and another headers
+#include <cassert>
+#include <stdio.h>
+#include <ddraw.h>
+
+#pragma comment(lib, "ddraw.lib")
+#pragma comment(lib, "dxguid.lib")
+
+LPDIRECTDRAW7               g_pDD = NULL;        // DirectDraw object
+LPDIRECTDRAWSURFACE7        g_pDDSPrimary = NULL;// DirectDraw primary surface
+LPDIRECTDRAWSURFACE7        g_pDDSBack = NULL;   // DirectDraw back surface
+LPDIRECTDRAWSURFACE7        g_pDDSOverlay = NULL;// DirectDraw overlay surface
+LPDIRECTDRAWCLIPPER         g_pClipper = NULL;   // DirectDraw clipping struct
+DDOVERLAYFX                 g_OverlayFX;         // DirectDraw overlay effects struct
+DDCAPS                      g_DDCaps;            // DirectDraw hardware capabilities struct
+DWORD                       g_OverlayFlags = 0;  // DirectDraw overlay flags variable
+DWORD                       g_dwXRatio,
+                            g_dwYRatio;          // The ratios between the src and dst rects
+RECT                        g_rcSrc = {0, 0, 0, 0},
+                            g_rcDst = {0, 0, 0, 0};
+HANDLE                      g_hVSync;
+
+// check for new DX SDK (8 & 9)
+#ifdef DDSCAPS_PRIMARYSURFACELEFT
+#include <dxerr8.h>
+#pragma comment(lib, "dxerr8.lib")
+#else
+// old SDK (7)
+#include <d3dx.h>
+#pragma comment(lib, "d3dx.lib")
+#endif
+
+//! Create a dialog box and tell the user what went wrong
+bool DisplayError(LPSTR lpstrErr, HRESULT hres)
+{
+    static bool InError = false;
+    int retval = 0;
+    if (!InError)
+    {
+        InError = true;
+#ifdef DDSCAPS_PRIMARYSURFACELEFT
+        const char *message = hres?DXGetErrorString8A(hres):0;
+#else
+        char message[256]; if(hres) D3DXGetErrorString(hres, 256, message);
+#endif
+        retval = MessageBoxA(g_hAppWnd, lpstrErr, hres?message:"Error!", MB_OK|MB_ICONERROR);
+        InError = false;
+    }
+    return false;
+}
+
+//! Releases the overlay surface
+void DestroyOverlay()
+{
+    if (g_pClipper)
+        g_pClipper->Release();
+    if (g_pDDSOverlay) {
+        g_pImg = 0; LPDIRECTDRAWSURFACE7 pDDSOverlay(g_pDDSOverlay);
+        g_pDDSOverlay = NULL; Sleep(0); pDDSOverlay->Release(); // be sure nobody uses old value
+    }
+}
+
+//! Releases the primary surface
+void DestroyPrimary()
+{
+    if (g_pDDSPrimary)
+    {
+        g_pDDSPrimary->Release();
+        g_pDDSPrimary = NULL;
+    }
+}
+
+//! Releases core DirectDraw objects
+void DestroyDDraw()
+{
+    DestroyPrimary();
+    // Release the DDraw object
+    if (g_pDD) {
+        LPDIRECTDRAW7 pDD(g_pDD); // be sure nobody uses old value
+        g_pDD = NULL; Sleep(1); pDD->Release();
+    }
+}
+
+//! Checks and corrects all boundries for alignment and stretching
+void CheckBoundries(void)
+{
+    // Make sure the coordinates fulfill the stretching requirements.  Often
+    // the hardware will require a certain ammount of stretching to do
+    // overlays. This stretch factor is held in dwMinOverlayStretch as the
+    // stretch factor multiplied by 1000 (to keep an accuracy of 3 decimal places).
+    if ((g_DDCaps.dwCaps & DDCAPS_OVERLAYSTRETCH) && (g_DDCaps.dwMinOverlayStretch)
+        && (g_dwXRatio < g_DDCaps.dwMinOverlayStretch))
+    {
+        g_rcDst.right = 2 * GetSystemMetrics(SM_CXSIZEFRAME) + g_rcDst.left + (g_sizex
+                                 * (g_DDCaps.dwMinOverlayStretch + 1)) / 1000;
+        SetWindowTextA(g_hAppWnd, "Window is too small!");
+    }
+    else if ((g_DDCaps.dwCaps & DDCAPS_OVERLAYSTRETCH) && (g_DDCaps.dwMaxOverlayStretch)
+        && (g_dwXRatio > g_DDCaps.dwMaxOverlayStretch))
+    {
+        g_rcDst.right = 2 * GetSystemMetrics(SM_CXSIZEFRAME) + g_rcDst.left + (g_sizey
+                               * (g_DDCaps.dwMaxOverlayStretch + 999)) / 1000;
+        SetWindowTextA(g_hAppWnd, "Window is too large!");
+    }
+    else if(!g_video->calc_fps) SetWindowText(g_hAppWnd, g_video->title);
+
+    // Recalculate the ratio's for the upcoming calculations
+    g_dwXRatio = (g_rcDst.right - g_rcDst.left) * 1000 / (g_rcSrc.right - g_rcSrc.left);
+    g_dwYRatio = (g_rcDst.bottom - g_rcDst.top) * 1000 / (g_rcSrc.bottom - g_rcSrc.top);
+
+    // Check to make sure we're within the screen's boundries, if not then fix
+    // the problem by adjusting the source rectangle which we draw from.
+    if (g_rcDst.left < 0)
+    {
+        g_rcSrc.left = -g_rcDst.left * 1000 / g_dwXRatio;
+        g_rcDst.left = 0;
+    }
+    if (g_rcDst.right > GetSystemMetrics(SM_CXSCREEN))
+    {
+        g_rcSrc.right = g_sizex - ((g_rcDst.right - GetSystemMetrics(SM_CXSCREEN)) * 1000 / g_dwXRatio);
+        g_rcDst.right = GetSystemMetrics(SM_CXSCREEN);
+    }
+    if (g_rcDst.bottom > GetSystemMetrics(SM_CYSCREEN))
+    {
+        g_rcSrc.bottom = g_sizey - ((g_rcDst.bottom - GetSystemMetrics(SM_CYSCREEN)) * 1000 / g_dwYRatio);
+        g_rcDst.bottom = GetSystemMetrics(SM_CYSCREEN);
+    }
+    // I don't know how useful this is... but just in case someone can do it - here's the check.
+    if (g_rcDst.top < 0)
+    {
+        g_rcSrc.top = -g_rcDst.top * 1000 / g_dwYRatio;
+        g_rcDst.top = 0;
+    }
+
+    // Make sure the coordinates fulfill the alignment requirements
+    // these expressions (x & -y) just do alignment by dropping low order bits...
+    // so to round up, we add first, then truncate.
+    if ((g_DDCaps.dwCaps & DDCAPS_ALIGNBOUNDARYSRC) && g_DDCaps.dwAlignBoundarySrc)
+        g_rcSrc.left = (g_rcSrc.left + g_DDCaps.dwAlignBoundarySrc / 2) & -(signed)
+            (g_DDCaps.dwAlignBoundarySrc);
+    if ((g_DDCaps.dwCaps & DDCAPS_ALIGNSIZESRC) && g_DDCaps.dwAlignSizeSrc)
+        g_rcSrc.right = g_rcSrc.left + (g_rcSrc.right - g_rcSrc.left + g_DDCaps.dwAlignSizeSrc
+                                   / 2) & -(signed) (g_DDCaps.dwAlignSizeSrc);
+    if ((g_DDCaps.dwCaps & DDCAPS_ALIGNBOUNDARYDEST) && g_DDCaps.dwAlignBoundaryDest)
+        g_rcDst.left = (g_rcDst.left + g_DDCaps.dwAlignBoundaryDest / 2) & -(signed)
+            (g_DDCaps.dwAlignBoundaryDest);
+    if ((g_DDCaps.dwCaps & DDCAPS_ALIGNSIZEDEST) && g_DDCaps.dwAlignSizeDest)
+        g_rcDst.right = g_rcDst.left + (g_rcDst.right - g_rcDst.left) & -(signed) (g_DDCaps.dwAlignSizeDest);
+}
+
+//! Get translated by system color value
+DWORD DDColorMatch(IDirectDrawSurface7 * pdds, COLORREF rgb)
+{
+    COLORREF       rgbT;
+    HDC            hdc;
+    DWORD          dw = CLR_INVALID;
+    DDSURFACEDESC2 ddsd;
+    HRESULT        hres;
+
+    //  Use GDI SetPixel to color match for us
+    if (rgb != CLR_INVALID && pdds->GetDC(&hdc) == DD_OK) {
+        rgbT = GetPixel(hdc, 0, 0);     // Save current pixel value
+        SetPixel(hdc, 0, 0, rgb);       // Set our value
+        pdds->ReleaseDC(hdc);
+    }
+    // Now lock the surface so we can read back the converted color
+    ddsd.dwSize = sizeof(ddsd);
+    while ((hres = pdds->Lock(NULL, &ddsd, 0, NULL)) == DDERR_WASSTILLDRAWING)
+        Sleep(0);
+    if (hres == DD_OK) {
+        dw = *(DWORD *) ddsd.lpSurface;                 // Get DWORD
+        if (ddsd.ddpfPixelFormat.dwRGBBitCount < 32)
+            dw &= (1 << ddsd.ddpfPixelFormat.dwRGBBitCount) - 1;  // Mask it to bpp
+        pdds->Unlock(NULL);
+    }
+    else return DisplayError("Can't lock primary surface", hres);
+    //  Now put the color that was there back.
+    if (rgb != CLR_INVALID && pdds->GetDC(&hdc) == DD_OK) {
+        SetPixel(hdc, 0, 0, rgbT);
+        pdds->ReleaseDC(hdc);
+    }
+    return dw;
+}
+
+//! Load the bitmap and copy it to the overlay surface
+bool DrawOverlay()
+{
+    HRESULT        hRet;       // This is where we put return values from DirectDraw.
+    DDSURFACEDESC2 surfDesc;
+    // Setup structure
+    memset(&surfDesc, 0, sizeof(surfDesc)); surfDesc.dwSize = sizeof(surfDesc);
+
+    hRet = g_pDDSOverlay->Lock(NULL, &surfDesc, DDLOCK_SURFACEMEMORYPTR | DDLOCK_NOSYSLOCK | DDLOCK_WRITEONLY, NULL);
+    if (hRet != DD_OK ||  surfDesc.lpSurface == NULL)
+        return DisplayError("Can't lock overlay surface", hRet);
+    else {
+        g_pImg = (unsigned int *)surfDesc.lpSurface;
+        //g_pDDSOverlay->Unlock(NULL); is not needed?
+    }
+    // Setup effects structure
+    memset(&g_OverlayFX, 0, sizeof(g_OverlayFX)); g_OverlayFX.dwSize = sizeof(g_OverlayFX);
+    // Setup overlay flags.
+    g_OverlayFlags = DDOVER_SHOW;
+    // Check for destination color keying capability
+    if ((g_DDCaps.dwCKeyCaps & DDCKEYCAPS_DESTOVERLAY) && ((g_DDCaps.dwCaps & DDCAPS_OVERLAYCANTCLIP) || (g_DDCaps.dwCKeyCaps & DDCKEYCAPS_NOCOSTOVERLAY) ))
+    {
+        // If so, we'll use it to clip the bitmap when other windows go on top
+        // of us. Just for the record - this color range for color keying (the
+        // high/low values) are not heavily supported right now, so for almost
+        // all cards, just use the same color for both.
+        g_OverlayFX.dckDestColorkey.dwColorSpaceLowValue =
+        g_OverlayFX.dckDestColorkey.dwColorSpaceHighValue = DDColorMatch(g_pDDSPrimary, RGBKEY);
+        g_OverlayFlags |= DDOVER_DDFX | DDOVER_KEYDESTOVERRIDE;
+    } else {
+        // If not, we'll setup a clipper for the window.  This will fix the
+        // problem on a few video cards - but the ones that don't shouldn't care.
+        hRet = g_pDD->CreateClipper(0, &g_pClipper, NULL);
+        if (hRet != DD_OK)
+            return DisplayError("Can't create clipper", hRet);
+        hRet = g_pClipper->SetHWnd(0, g_hAppWnd);
+        if (hRet != DD_OK)
+            return DisplayError("Can't attach clipper", hRet);
+        hRet = g_pDDSPrimary->SetClipper(g_pClipper);
+        if (hRet != DD_OK)
+            return DisplayError("Can't set clipper", hRet);
+    }
+    return true;
+}
+
+//! Init the primary surface
+bool DDPrimaryInit()
+{
+    HRESULT        hRet;
+    DDSURFACEDESC2 ddsd;  // A surface description structure
+
+    // Create the primary surface.  The primary surface is the full screen -
+    // since we're a windowed app - we'll just write to the portion of the
+    // screen within our window.
+    memset(&ddsd, 0, sizeof(ddsd)); // Set all fields of struct to 0 and set .dwSize to
+    ddsd.dwSize = sizeof(ddsd);     // Sizeof the variable - these two steps required for most DDraw structs
+    ddsd.dwFlags = DDSD_CAPS;       // Set flags for variables we're using...
+    ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;  // Set the variables we said we would in dwFlags
+    hRet = g_pDD->CreateSurface(&ddsd, &g_pDDSPrimary, NULL);
+    if (hRet != DD_OK)
+        return DisplayError("Can't create primary surface", hRet);
+    return true;
+}
+
+//! Init DirectDraw Stuff
+bool DDInit()
+{
+    HRESULT hRet;
+    g_rcSrc.right = g_sizex;
+    g_rcSrc.bottom = g_sizey;
+
+    hRet = DirectDrawCreateEx(NULL, (VOID**)&g_pDD, IID_IDirectDraw7, NULL);
+    if (hRet != DD_OK)
+        return DisplayError("Can't create DirectDraw7 instance", hRet);
+
+    // Set cooperation level with other windows to be normal (ie. not full screen)
+    // You MUST set the cooperation level to be SOMETHING, for windowed apps use
+    // DDSCL_NORMAL, for full screen use: DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN.
+    hRet = g_pDD->SetCooperativeLevel(g_hAppWnd, DDSCL_NORMAL);
+    if (hRet != DD_OK)
+        return DisplayError("Can't set cooperative level", hRet);
+    return DDPrimaryInit();
+}
+
+//! Setup the overlay object
+bool DDOverlayInit()
+{
+    // Get hardware's CAPabilitieS
+    memset(&g_DDCaps, 0, sizeof(g_DDCaps));
+    g_DDCaps.dwSize = sizeof(g_DDCaps);
+    if (g_pDD->GetCaps(&g_DDCaps, 0))
+        return DisplayError("Can't get capabilities");
+
+    // Make sure it supports overlays
+    if (!(g_DDCaps.dwCaps & DDCAPS_OVERLAY))
+        return DisplayError("Hardware doesn't support overlays");
+
+    //DO NOT Make sure it supports stretching (scaling)
+    //if (!(g_DDCaps.dwCaps & DDCAPS_OVERLAYSTRETCH)) return false;
+
+    DDSURFACEDESC2              ddsd;  // DirectDraw surface descriptor
+    HRESULT                     hRet;  // I'm not even going to try...
+    // The pixel formats that we want the surface to be in
+    DDPIXELFORMAT               ddpfOverlayFormats[] = {
+        {sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 32, 0xFF0000, 0x0FF00, 0x0000FF, 0}, // 32-bit RGB
+        {sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16, 0x007C00, 0x003e0, 0x00001F, 0}, // 16-bit RGB 5:5:5
+        {sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16, 0x00F800, 0x007e0, 0x00001F, 0}, // 16-bit RGB 5:6:5
+        {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('U','Y','V','Y'), 16, 0, 0, 0, 0}, // UYVY
+        {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('Y','4','2','2'), 16, 0, 0, 0, 0}, // the same as UYVY
+        {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('Y','U','Y','2'), 16, 0, 0, 0, 0}, // YUY2 is unsupported color-space here
+        {0}};
+
+    // Setup the overlay surface's attributes in the surface descriptor
+    memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | g_DDCaps.ddsCaps.dwCaps&DDSCAPS_VIDEOMEMORY;
+    ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT;
+    ddsd.dwBackBufferCount = 0;
+    ddsd.dwWidth = g_sizex;
+    ddsd.dwHeight = g_sizey;
+    for(int format = 0; ddpfOverlayFormats[format].dwSize; format++) {
+        ddsd.ddpfPixelFormat = ddpfOverlayFormats[format];
+        // Attempt to create the surface with theses settings
+        hRet = g_pDD->CreateSurface(&ddsd, &g_pDDSOverlay, NULL);
+        if(hRet == DD_OK) break;
+    }
+    if (hRet != DD_OK)
+        return DisplayError("Can't create appropriate overlay surface", hRet);
+    return true;
+}
+
+inline void mouse(int k, LPARAM lParam)
+{
+    int x = (int)LOWORD(lParam), y = (int)HIWORD(lParam);
+    g_video->on_mouse( x*g_sizex/(g_rcDst.right - g_rcDst.left),
+        y*g_sizey/(g_rcDst.bottom - g_rcDst.top), k);
+}
+
+LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
+{
+    PAINTSTRUCT                 ps;         // Structure for the paint message
+    POINT                       p = {0, 0}; // Translation point for the window's client region
+    HRESULT                     hRet;
+
+    switch (iMsg)
+    {
+        case WM_MOVE:
+            // Make sure we're not moving to be minimized - because otherwise
+            // our ratio varialbes (g_dwXRatio and g_dwYRatio) will end up
+            // being 0, and once we hit CheckBoundries it divides by 0.
+            if (!IsIconic(hwnd))
+            {
+                g_rcSrc.left = 0;
+                g_rcSrc.right = g_sizex;
+                g_rcSrc.top = 0;
+                g_rcSrc.bottom = g_sizey;
+                GetClientRect(hwnd, &g_rcDst);
+                g_dwXRatio = (g_rcDst.right - g_rcDst.left) * 1000 /
+                             (g_rcSrc.right - g_rcSrc.left);
+                g_dwYRatio = (g_rcDst.bottom - g_rcDst.top) * 1000 /
+                             (g_rcSrc.bottom - g_rcSrc.top);
+                ClientToScreen(hwnd, &p);
+                g_rcDst.left = p.x;
+                g_rcDst.top = p.y;
+                g_rcDst.bottom += p.y;
+                g_rcDst.right += p.x;
+                CheckBoundries();
+            }
+            else
+                // Else, hide the overlay... just in case we can't do
+                // destination color keying, this will pull the overlay
+                // off of the screen for the user.
+                if (g_pDDSOverlay && g_pDDSPrimary)
+                    g_pDDSOverlay->UpdateOverlay(NULL, g_pDDSPrimary, NULL, DDOVER_HIDE, NULL);
+            // Check to make sure our window exists before we tell it to
+            // repaint. This will fail the first time (while the window is being created).
+            if (hwnd)
+            {
+                InvalidateRect(hwnd, NULL, FALSE);
+                UpdateWindow(hwnd);
+            }
+            return 0L;
+
+        case WM_SIZE:
+            // Another check for the minimization action.  This check is
+            // quicker though...
+            if (wParam != SIZE_MINIMIZED)
+            {
+                GetClientRect(hwnd, &g_rcDst);
+                ClientToScreen(hwnd, &p);
+                g_rcDst.left = p.x;
+                g_rcDst.top = p.y;
+                g_rcDst.bottom += p.y;
+                g_rcDst.right += p.x;
+                g_rcSrc.left = 0;
+                g_rcSrc.right = g_sizex;
+                g_rcSrc.top = 0;
+                g_rcSrc.bottom = g_sizey;
+                // Here we multiply by 1000 to preserve 3 decimal places in the
+                // division opperation (we picked 1000 to be on the same order
+                // of magnitude as the stretch factor for easier comparisons)
+                g_dwXRatio = (g_rcDst.right - g_rcDst.left) * 1000 /
+                             (g_rcSrc.right - g_rcSrc.left);
+                g_dwYRatio = (g_rcDst.bottom - g_rcDst.top) * 1000 /
+                             (g_rcSrc.bottom - g_rcSrc.top);
+                CheckBoundries();
+            }
+            return 0L;
+
+        case WM_PAINT:
+            BeginPaint(hwnd, &ps);
+            // Check the primary surface to see if it's lost - if so you can
+            // pretty much bet that the other surfaces are also lost - thus
+            // restore EVERYTHING!  If we got our surfaces stolen by a full
+            // screen app - then we'll destroy our primary - and won't be able
+            // to initialize it again. When we get our next paint message (the
+            // full screen app closed for example) we'll want to try to reinit
+            // the surfaces again - that's why there is a check for
+            // g_pDDSPrimary == NULL.  The other option, is that our program
+            // went through this process, could init the primary again, but it
+            // couldn't init the overlay, that's why there's a third check for
+            // g_pDDSOverlay == NULL.  Make sure that the check for
+            // !g_pDDSPrimary is BEFORE the IsLost call - that way if the
+            // pointer is NULL (ie. !g_pDDSPrimary is TRUE) - the compiler
+            // won't try to evaluate the IsLost function (which, since the
+            // g_pDDSPrimary surface is NULL, would be bad...).
+            if (!g_pDDSPrimary || (g_pDDSPrimary->IsLost() != DD_OK) ||
+                (g_pDDSOverlay == NULL))
+            {
+                DestroyOverlay();
+                DestroyPrimary();
+                if (DDPrimaryInit())
+                    if (DDOverlayInit())
+                        if (!DrawOverlay())
+                            DestroyOverlay();
+            }
+            // UpdateOverlay is how we put the overlay on the screen.
+            if (g_pDDSOverlay && g_pDDSPrimary && g_video->updating)
+            {
+                hRet = g_pDDSOverlay->UpdateOverlay(&g_rcSrc, g_pDDSPrimary,
+                                                    &g_rcDst, g_OverlayFlags,
+                                                    &g_OverlayFX);
+#ifdef _DEBUG
+                if(hRet != DD_OK) DisplayError("Can't update overlay", hRet);
+#endif
+            }
+            EndPaint(hwnd, &ps);
+            return 0L;
+
+        // process mouse and keyboard events
+        case WM_LBUTTONDOWN:    mouse(1, lParam); break;
+        case WM_LBUTTONUP:      mouse(-1, lParam); break;
+        case WM_RBUTTONDOWN:    mouse(2, lParam); break;
+        case WM_RBUTTONUP:      mouse(-2, lParam); break;
+        case WM_MBUTTONDOWN:    mouse(3, lParam); break;
+        case WM_MBUTTONUP:      mouse(-3, lParam); break;
+        case WM_CHAR:           g_video->on_key(wParam); break;
+
+        case WM_DISPLAYCHANGE:  return 0L;
+
+        case WM_DESTROY:
+            // Now, shut down the window...
+            PostQuitMessage(0);
+            return 0L;
+    }
+    return g_pUserProc? g_pUserProc(hwnd, iMsg, wParam, lParam) : DefWindowProc(hwnd, iMsg, wParam, lParam);
+}
+
+DWORD WINAPI thread_vsync(LPVOID lpParameter)
+{
+    BOOL vblank = false;
+    while(g_video && g_video->running) {
+        while(!vblank && g_video && g_video->running) {
+            Sleep(0); LPDIRECTDRAW7 pDD(g_pDD); if(pDD) pDD->GetVerticalBlankStatus(&vblank);
+        }
+        LPDIRECTDRAWSURFACE7 pDDSOverlay(g_pDDSOverlay);
+        if(pDDSOverlay) pDDSOverlay->UpdateOverlay(&g_rcSrc, g_pDDSPrimary, &g_rcDst, g_OverlayFlags | DDOVER_REFRESHALL, &g_OverlayFX);
+        do {
+            Sleep(1); LPDIRECTDRAW7 pDD(g_pDD); if(pDD) pDD->GetVerticalBlankStatus(&vblank);
+        } while(vblank && g_video && g_video->running);
+        while(g_video && !g_video->updating && g_video->running) Sleep(10);
+    }
+    return 0;
+}
+
+///////////////////////////////////////////// public methods of video class ///////////////////////
+
+inline void mask2bits(unsigned int mask, color_t &save, char &shift)
+{
+    save  = mask; if(!mask) { shift = 8; return; }
+    shift = 0; while(!(mask&1)) ++shift, mask >>= 1;
+    int bits = 0; while(mask&1) ++bits,  mask >>= 1;
+    shift += bits - 8;
+}
+
+bool video::init_window(int sizex, int sizey)
+{
+    assert(win_hInstance != 0);
+    g_sizex = sizex; g_sizey = sizey;
+    if( !WinInit(win_hInstance, win_iCmdShow, gWndClass, title, false) )
+        return DisplayError("Unable to initialize the program's window.");
+    running = true;
+    if( !DDInit() ) {
+        DestroyDDraw();
+        goto fail;
+    }
+    if( !DDOverlayInit() || !DrawOverlay() ) {
+        DestroyOverlay();
+        DestroyDDraw();
+        goto fail;
+    }
+    DDPIXELFORMAT PixelFormat; memset(&PixelFormat, 0, sizeof(PixelFormat)); PixelFormat.dwSize = sizeof(PixelFormat);
+    g_pDDSOverlay->GetPixelFormat(&PixelFormat);
+    mask2bits(PixelFormat.dwRBitMask, red_mask, red_shift);
+    mask2bits(PixelFormat.dwGBitMask, green_mask, green_shift);
+    mask2bits(PixelFormat.dwBBitMask, blue_mask, blue_shift);
+    if(PixelFormat.dwFlags == DDPF_RGB)
+         depth = char(PixelFormat.dwRGBBitCount);
+    else depth = -char(PixelFormat.dwFourCC);
+    for(int i = 0, e = sizex * sizey * PixelFormat.dwRGBBitCount / 32, c = get_color(0, 0, 0); i < e; i++)
+        g_pImg[i] = c; // clear surface
+    ShowWindow(g_hAppWnd, SW_SHOW);
+    g_hVSync = CreateThread (
+	    NULL,				// LPSECURITY_ATTRIBUTES security_attrs
+	    0,					// SIZE_T stacksize
+	    (LPTHREAD_START_ROUTINE) thread_vsync,
+	    this,               // argument
+	    0, 0);
+    SetPriorityClass(g_hVSync, IDLE_PRIORITY_CLASS); // questionable
+    return true;
+fail:
+    g_pImg = new unsigned int[g_sizex * g_sizey];
+    return false;
+}
+
+void video::terminate()
+{
+    running = false;
+    DestroyOverlay();
+    if(WaitForSingleObject(g_hVSync, 100) == WAIT_TIMEOUT) TerminateThread(g_hVSync, 0);
+    CloseHandle(g_hVSync);
+    DestroyDDraw();
+    if(g_pImg) delete[] g_pImg;
+    g_pImg = 0; g_video = 0;
+}
+//////////// drawing area constructor & destructor /////////////
+
+drawing_area::drawing_area(int x, int y, int sizex, int sizey)
+: start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(g_video->depth),
+    base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg)
+{
+    assert(ptr32); assert(x < g_sizex); assert(y < g_sizey);
+    assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey);
+
+    index = base_index; // current index
+}
+
+drawing_area::~drawing_area()
+{
+}
diff --git a/examples/common/gui/dxcheck.bat b/examples/common/gui/dxcheck.bat
new file mode 100644
index 0000000..36ffaac
--- /dev/null
+++ b/examples/common/gui/dxcheck.bat
@@ -0,0 +1,36 @@
+ at echo off
+REM
+REM Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+REM
+REM This file is part of Threading Building Blocks.
+REM
+REM Threading Building Blocks is free software; you can redistribute it
+REM and/or modify it under the terms of the GNU General Public License
+REM version 2 as published by the Free Software Foundation.
+REM
+REM Threading Building Blocks is distributed in the hope that it will be
+REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+REM GNU General Public License for more details.
+REM
+REM You should have received a copy of the GNU General Public License
+REM along with Threading Building Blocks; if not, write to the Free Software
+REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+REM
+REM As a special exception, you may use this file as part of a free software
+REM library without restriction.  Specifically, if other files instantiate
+REM templates or use macros or inline functions from this file, or you compile
+REM this file and link it with other files to produce an executable, this
+REM file does not by itself cause the resulting executable to be covered by
+REM the GNU General Public License.  This exception does not however
+REM invalidate any other reasons why the executable file might be covered by
+REM the GNU General Public License.
+REM
+if "%DXSDK_DIR%"=="" goto error_no_DXSDK
+goto end
+
+:error_no_DXSDK
+echo DirectX SDK Check : error : This example requires the DirectX SDK.  Either (re)-install the DirectX SDK, or set the DXSDK_DIR environment variable to indicate where it is installed.
+
+:end
+
diff --git a/examples/common/gui/gdivideo.cpp b/examples/common/gui/gdivideo.cpp
new file mode 100644
index 0000000..ff206e5
--- /dev/null
+++ b/examples/common/gui/gdivideo.cpp
@@ -0,0 +1,154 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// common Windows parts
+#include "winvideo.h"
+// include GDI+ headers
+#include <gdiplus.h>
+// and another headers
+#include <stdio.h>
+
+// tag linking library
+#pragma comment(lib, "gdiplus.lib")
+
+// global specific variables
+Gdiplus::Bitmap *           g_pBitmap;           // main drawing bitmap
+ULONG_PTR                   gdiplusToken;
+Gdiplus::GdiplusStartupInput gdiplusStartupInput;// GDI+
+
+//! display system error
+bool DisplayError(LPSTR lpstrErr, HRESULT hres)
+{
+    static bool InError = false;
+    int retval = 0;
+    if (!InError)
+    {
+        InError = true;
+        LPCSTR lpMsgBuf;
+        if(!hres) hres = GetLastError();
+        FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+                               NULL, hres, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL );
+        retval = MessageBox(g_hAppWnd, lpstrErr, lpMsgBuf, MB_OK|MB_ICONERROR);
+        LocalFree( (HLOCAL)lpMsgBuf );
+        InError = false;
+    }
+    return false;
+}
+
+//! Win event processing function
+LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
+{
+    switch (iMsg)
+    {
+        case WM_MOVE:
+            // Check to make sure our window exists before we tell it to repaint.
+            // This will fail the first time (while the window is being created).
+            if (hwnd) {
+                InvalidateRect(hwnd, NULL, FALSE);
+                UpdateWindow(hwnd);
+            }
+            return 0L;
+
+        case WM_PAINT:
+            {
+                PAINTSTRUCT ps;
+                Gdiplus::Graphics graphics( BeginPaint(hwnd, &ps) );
+                // redraw just requested area. This call is as fast as simple DrawImage() call.
+                if(g_video->updating) graphics.DrawImage(g_pBitmap, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.left, ps.rcPaint.top,
+                                    ps.rcPaint.right, ps.rcPaint.bottom, Gdiplus::UnitPixel);
+                EndPaint(hwnd, &ps);
+            }
+            return 0L;
+
+        // Proccess all mouse and keyboard events
+        case WM_LBUTTONDOWN:    g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), 1); break;
+        case WM_LBUTTONUP:      g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), -1); break;
+        case WM_RBUTTONDOWN:    g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), 2); break;
+        case WM_RBUTTONUP:      g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), -2); break;
+        case WM_MBUTTONDOWN:    g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), 3); break;
+        case WM_MBUTTONUP:      g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), -3); break;
+        case WM_CHAR:           g_video->on_key(wParam); break;
+
+        // some useless stuff
+        case WM_ERASEBKGND:     return 1;  // keeps erase-background events from happening, reduces chop
+        case WM_DISPLAYCHANGE:  return 0;
+
+        // Now, shut down the window...
+        case WM_DESTROY:        PostQuitMessage(0); return 0;
+    }
+    // call user defined proc, if exists
+    return g_pUserProc? g_pUserProc(hwnd, iMsg, wParam, lParam) : DefWindowProc(hwnd, iMsg, wParam, lParam);
+}
+
+///////////// video functions ////////////////
+
+bool video::init_window(int sizex, int sizey)
+{
+    assert(win_hInstance != 0);
+    g_sizex = sizex; g_sizey = sizey;
+    if (!WinInit(win_hInstance, win_iCmdShow, gWndClass, title, true)) {
+        DisplayError("Unable to initialize the program's window.");
+        return false;
+    }
+    ShowWindow(g_hAppWnd, SW_SHOW);
+    Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
+    g_pImg = new unsigned int[sizex*sizey];
+    g_pBitmap = new Gdiplus::Bitmap(g_sizex, g_sizey, 4*g_sizex, PixelFormat32bppRGB, (BYTE*)g_pImg );
+    running = true;
+    return true;
+}
+
+void video::terminate()
+{
+    if(g_pBitmap) { delete g_pBitmap; g_pBitmap = 0; }
+    Gdiplus::GdiplusShutdown(gdiplusToken);
+    g_video = 0; running = false;
+    if(g_pImg) { delete[] g_pImg; g_pImg = 0; }
+}
+
+//////////// drawing area constructor & destructor /////////////
+
+drawing_area::drawing_area(int x, int y, int sizex, int sizey)
+: start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24),
+    base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg)
+{
+    assert(x < g_sizex); assert(y < g_sizey);
+    assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey);
+
+    index = base_index; // current index
+}
+
+drawing_area::~drawing_area()
+{
+    if(g_video->updating) {
+        RECT r;
+        r.left = start_x; r.right  = start_x + size_x;
+        r.top  = start_y; r.bottom = start_y + size_y;
+        InvalidateRect(g_hAppWnd, &r, false);
+    }
+}
diff --git a/examples/common/gui/macvideo.cpp b/examples/common/gui/macvideo.cpp
new file mode 100644
index 0000000..0de8dc2
--- /dev/null
+++ b/examples/common/gui/macvideo.cpp
@@ -0,0 +1,1491 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+ *  Based on "OpenGL Image" example from http://developer.apple.com/samplecode/OpenGL_Image/
+ */
+
+#include "video.h"
+#include <sched.h>
+#include <sys/time.h>
+#include <stdio.h>
+#include <string.h>
+#include <pthread.h>
+
+#include <AvailabilityMacros.h>
+#undef DEPRECATED_ATTRIBUTE
+#define DEPRECATED_ATTRIBUTE
+#include <Carbon/Carbon.h>
+#include <AGL/agl.h>
+#include <OpenGL/gl.h>    // for OpenGL API
+#include <OpenGL/glext.h> // for OpenGL extension support 
+
+unsigned int *      g_pImg = 0;
+int                 g_sizex, g_sizey;
+WindowRef           g_window = 0;
+static video *      g_video = 0;
+static int          g_fps = 0;
+struct timeval      g_time;
+static pthread_mutex_t  g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+
+static OSStatus     AppEventHandler( EventHandlerCallRef inCaller, EventRef inEvent, void* inRefcon );
+WindowRef           HandleNew();
+static OSStatus     WindowEventHandler( EventHandlerCallRef inCaller, EventRef inEvent, void* inRefcon );
+
+static IBNibRef     sNibRef;
+
+//-------------------------------------------------------------------------------------------- 
+
+// structure for creating a fullscreen context
+struct structGLInfo // storage for setup info
+{
+    SInt16 width;               // input: width of drawable (screen width in full screen mode), return: actual width allocated
+    SInt16 height;              // input: height of drawable (screen height in full screen mode), return: actual height allocated
+    UInt32 pixelDepth;          // input: requested pixel depth
+    Boolean fDepthMust;         // input: pixel depth must be set (if false then current depth will be used if able)
+    Boolean fAcceleratedMust;   // input: must renderer be accelerated?
+    GLint aglAttributes[64];    // input: pixel format attributes always required (reset to what was actually allocated)
+    SInt32 VRAM;                // input: minimum VRAM; output: actual (if successful otherwise input)
+    SInt32 textureRAM;          // input: amount of texture RAM required on card; output: same (used in allcoation to ensure enough texture
+    AGLPixelFormat    fmt;      // input: none; output pixel format...
+};
+typedef struct structGLInfo structGLInfo;
+typedef struct structGLInfo * pstructGLInfo;
+
+// structure for creating a context from a window
+struct structGLWindowInfo // storage for setup info
+{
+    Boolean fAcceleratedMust;   // input: must renderer be accelerated?
+    GLint aglAttributes[64];    // input: pixel format attributes always required (reset to what was actually allocated)
+    SInt32 VRAM;                // input: minimum VRAM; output: actual (if successful otherwise input)
+    SInt32 textureRAM;          // input: amount of texture RAM required on card; output: same (used in allcoation to ensure enough texture
+    AGLPixelFormat    fmt;      // input: none; output pixel format...
+    Boolean fDraggable;         // input: is window going to be dragable, 
+                                //        if so renderer check (accel, VRAM, textureRAM) will look at all renderers vice just the current one
+                                //        if window is not dragable renderer check will either check the single device or short 
+                                //            circuit to software if window spans multiple devices 
+                                //        software renderer is consider to have unlimited VRAM, unlimited textureRAM and to not be accelerated
+};
+typedef struct structGLWindowInfo structGLWindowInfo;
+typedef struct structGLWindowInfo * pstructGLWindowInfo;
+
+//-------------------------------------------------------------------------------------------- 
+
+struct recGLCap // structure to store minimum OpenGL capabilites across all displays and GPUs
+{
+    Boolean f_ext_texture_rectangle; // is texture rectangle extension supported
+    Boolean f_ext_client_storage; // is client storage extension supported
+    Boolean f_ext_packed_pixel; // is packed pixel extension supported
+    Boolean f_ext_texture_edge_clamp; // is SGI texture edge clamp extension supported
+    Boolean f_gl_texture_edge_clamp; // is OpenGL texture edge clamp support (1.2+)
+    unsigned long edgeClampParam; // the param that is passed to the texturing parmeteres
+    long maxTextureSize; // the minimum max texture size across all GPUs
+    long maxNOPTDTextureSize; // the minimum max texture size across all GPUs that support non-power of two texture dimensions
+};
+typedef struct recGLCap recGLCap;
+typedef recGLCap * pRecGLCap;
+
+struct recImage // OpenGL and image information associated with each window
+{
+    // genric OpenGL stuff
+    structGLWindowInfo glInfo;  // gl info used with SetupGL to build context
+    AGLContext aglContext;      // the OpenGL context (read: state)
+    GLuint fontList;            // the display list storing the bitmap font created for the context to display info
+    
+    Boolean fAGPTexturing;      // 10.1+ only: texture from AGP memory without loading to GPU
+    
+    // texture display stuff
+    Boolean fNPOTTextures; // are we using Non-Power Of Two (NPOT) textures?
+    Boolean fTileTextures; // are multiple tiled textures used to display image?
+    Boolean fOverlapTextures; // do tiled textures overlapped to create correct filtering between tiles? (only applies if using tiled textures)
+    Boolean fClientTextures; // 10.1+ only: texture from client memory
+        
+    unsigned char * pImageBuffer; // image buffer that contains data for image (disposed after loading into texture if not using client textures)
+    long imageWidth; // height of orginal image
+    long imageHeight; // width of orginal image
+    float imageAspect; // width / height or aspect ratio of orginal image
+    long imageDepth; // depth of image (after loading into gworld, will be either 32 or 16 bits)
+    long textureX; // number of horizontal textures
+    long textureY; // number of vertical textures
+    long maxTextureSize; // max texture size for image
+    GLuint * pTextureName; // array for texture names (# = textureX * textureY)
+    long textureWidth; // total width of texels with cover image (including any border on image, but not internal texture overlaps)
+    long textureHeight; // total height of texels with cover image (including any border on image, but not internal texture overlaps)
+    float zoomX; // zoom from on texel = one pixel is 1.0
+    float zoomY; // zoom from on texel = one pixel is 1.0
+ };
+typedef struct recImage recImage; // typedef for easy declaration
+typedef recImage * pRecImage; // pointer type
+
+// ==================================
+
+// public function declarations -------------------------------------
+
+// Destroys drawable and context
+// Ouputs: *paglDraw, *paglContext should be 0 on exit
+// destorys a context that was associated with an existing window, window is left intacted
+OSStatus DestroyGLFromWindow (AGLContext* paglContext, pstructGLWindowInfo pcontextInfo);
+
+short FindGDHandleFromWindow (WindowPtr pWindow, GDHandle * phgdOnThisDevice);
+
+// disposes OpenGL context, and associated texture list
+OSStatus DisposeGLForWindow (WindowRef window);
+
+// builds the GL context and associated state for the window
+// loads image into a texture or textures
+// disposes of GWorld and image buffer when finished loading textures
+OSStatus BuildGLForWindow (WindowRef window);
+
+// Handle updating context for window moves and resizing
+OSStatus ResizeMoveGLWindow (WindowRef window);
+
+// main GL drawing routine, should be valid window passed in (will setupGL if require).  Draw image
+void DrawGL (WindowRef window);
+
+pRecGLCap gpOpenGLCaps; 
+
+// prototypes (internal/private) --------------------------------------------
+
+static Boolean CheckRenderer (GDHandle hGD, long *VRAM, long *textureRAM, GLint*  , Boolean fAccelMust);
+static Boolean CheckAllDeviceRenderers (long* pVRAM, long* pTextureRAM, GLint* pDepthSizeSupport, Boolean fAccelMust);
+static void DumpCurrent (AGLDrawable* paglDraw, AGLContext* paglContext, pstructGLInfo pcontextInfo);
+static OSStatus BuildGLonWindow (WindowPtr pWindow, AGLContext* paglContext, pstructGLWindowInfo pcontextInfo, AGLContext aglShareContext);
+
+static long GetNextTextureSize (long textureDimension, long maxTextureSize, Boolean textureRectangle);
+static long GetTextureNumFromTextureDim (long textureDimension, long maxTextureSize, Boolean texturesOverlap, Boolean textureRectangle);
+
+// ----------------------------------------------------------------------------------------
+
+// functions (internal/private) ---------------------------------------------
+
+#pragma mark -
+// --------------------------------------------------------------------------
+
+// central error reporting
+
+void ReportErrorNum (char * strError, long numError)
+{
+    char errMsgPStr [257];
+    
+    errMsgPStr[0] = (char)snprintf (errMsgPStr+1, 255, "%s %ld (0x%lx)\n", strError, numError, numError); 
+
+    // ensure we are faded in
+    DebugStr ( (ConstStr255Param) errMsgPStr );
+}
+
+// --------------------------------------------------------------------------
+
+void ReportError (char * strError)
+{
+    char errMsgPStr [257];
+    
+    errMsgPStr[0] = (char)snprintf (errMsgPStr+1, 255, "%s\n", strError); 
+
+    // ensure we are faded in
+    DebugStr ( (ConstStr255Param) errMsgPStr );
+}
+
+//-----------------------------------------------------------------------------------------------------------------------
+
+// if error dump agl errors to debugger string, return error
+
+OSStatus aglReportError (void)
+{
+    GLenum err = aglGetError();
+    if (AGL_NO_ERROR != err)
+        ReportError ((char *)aglErrorString(err));
+    // ensure we are returning an OSStatus noErr if no error condition
+    if (err == AGL_NO_ERROR)
+        return noErr;
+    else
+        return (OSStatus) err;
+}
+
+//-----------------------------------------------------------------------------------------------------------------------
+
+// if error dump gl errors to debugger string, return error
+
+OSStatus glReportError (void)
+{
+    GLenum err = glGetError();
+    switch (err)
+    {
+        case GL_NO_ERROR:
+            break;
+        case GL_INVALID_ENUM:
+            ReportError ("GL Error: Invalid enumeration");
+            break;
+        case GL_INVALID_VALUE:
+            ReportError ("GL Error: Invalid value");
+            break;
+        case GL_INVALID_OPERATION:
+            ReportError ("GL Error: Invalid operation");
+            break;
+        case GL_STACK_OVERFLOW:
+            ReportError ("GL Error: Stack overflow");
+            break;
+        case GL_STACK_UNDERFLOW:
+            ReportError ("GL Error: Stack underflow");
+            break;
+        case GL_OUT_OF_MEMORY:
+            ReportError ("GL Error: Out of memory");
+            break;
+    }
+    // ensure we are returning an OSStatus noErr if no error condition
+    if (err == GL_NO_ERROR)
+        return noErr;
+    else
+        return (OSStatus) err;
+}
+
+//--------------------------------------------------------------------------------------------
+
+// functions (internal/private) ---------------------------------------------
+
+// CheckRenderer
+
+// looks at renderer attributes it has at least the VRAM is accelerated
+
+// Inputs:     hGD: GDHandle to device to look at
+//            pVRAM: pointer to VRAM in bytes required; out is actual VRAM if a renderer was found, otherwise it is the input parameter
+//            pTextureRAM:  pointer to texture RAM in bytes required; out is same (implementation assume VRAM returned by card is total so we add texture and VRAM)
+//            fAccelMust: do we check for acceleration
+
+// Returns: true if renderer for the requested device complies, false otherwise
+
+static Boolean CheckRenderer (GDHandle hGD, long* pVRAM, long* pTextureRAM, GLint* pDepthSizeSupport, Boolean fAccelMust)
+{
+    AGLRendererInfo info, head_info;
+    GLint inum;
+    GLint dAccel = 0;
+    GLint dVRAM = 0, dMaxVRAM = 0;
+    Boolean canAccel = false, found = false;
+    head_info = aglQueryRendererInfo(&hGD, 1);
+    aglReportError ();
+    if(!head_info)
+    {
+        ReportError ("aglQueryRendererInfo error");
+        return false;
+    }
+    else
+    {
+        info = head_info;
+        inum = 0;
+        // see if we have an accelerated renderer, if so ignore non-accelerated ones
+        // this prevents returning info on software renderer when actually we'll get the hardware one
+        while (info)
+        {    
+            aglDescribeRenderer(info, AGL_ACCELERATED, &dAccel);
+            aglReportError ();
+            if (dAccel)
+                canAccel = true;
+            info = aglNextRendererInfo(info);
+            aglReportError ();
+            inum++;
+        }
+            
+        info = head_info;
+        inum = 0;
+        while (info)
+        {
+            aglDescribeRenderer (info, AGL_ACCELERATED, &dAccel);
+            aglReportError ();
+            // if we can accel then we will choose the accelerated renderer 
+            // how about compliant renderers???
+            if ((canAccel && dAccel) || (!canAccel && (!fAccelMust || dAccel)))
+            {
+                aglDescribeRenderer (info, AGL_VIDEO_MEMORY, &dVRAM);    // we assume that VRAM returned is total thus add texture and VRAM required
+                aglReportError ();
+                if (dVRAM >= (*pVRAM + *pTextureRAM))
+                {
+                    if (dVRAM >= dMaxVRAM) // find card with max VRAM
+                    {
+                        aglDescribeRenderer (info, AGL_DEPTH_MODES, pDepthSizeSupport);    // which depth buffer modes are supported
+                        aglReportError ();
+                        dMaxVRAM = dVRAM; // store max
+                        found = true;
+                    }
+                }
+            }
+            info = aglNextRendererInfo(info);
+            aglReportError ();
+            inum++;
+        }
+    }
+    aglDestroyRendererInfo(head_info);
+    if (found) // if we found a card that has enough VRAM and meets the accel criteria
+    {
+        *pVRAM = dMaxVRAM; // return VRAM
+        return true;
+    }
+    // VRAM will remain to same as it did when sent in
+    return false;
+}
+
+//-----------------------------------------------------------------------------------------------------------------------
+
+// CheckAllDeviceRenderers 
+
+// looks at renderer attributes and each device must have at least one renderer that fits the profile
+
+// Inputs:     pVRAM: pointer to VRAM in bytes required; out is actual min VRAM of all renderers found, otherwise it is the input parameter
+//            pTextureRAM:  pointer to texture RAM in bytes required; out is same (implementation assume VRAM returned by card is total so we add texture and VRAM)
+//            fAccelMust: do we check fro acceleration
+
+// Returns: true if any renderer for on each device complies (not necessarily the same renderer), false otherwise
+
+static Boolean CheckAllDeviceRenderers (long* pVRAM, long* pTextureRAM, GLint* pDepthSizeSupport, Boolean fAccelMust)
+{
+    AGLRendererInfo info, head_info;
+    GLint inum;
+    GLint dAccel = 0;
+    GLint dVRAM = 0, dMaxVRAM = 0;
+    Boolean canAccel = false, found = false, goodCheck = true; // can the renderer accelerate, did we find a valid renderer for the device, are we still successfully on all the devices looked at
+    long MinVRAM = 0x8FFFFFFF; // max long
+    GDHandle hGD = GetDeviceList (); // get the first screen
+    while (hGD && goodCheck)
+    {
+        head_info = aglQueryRendererInfo(&hGD, 1);
+        aglReportError ();
+        if(!head_info)
+        {
+            ReportError ("aglQueryRendererInfo error");
+            return false;
+        }
+        else
+        {
+            info = head_info;
+            inum = 0;
+            // see if we have an accelerated renderer, if so ignore non-accelerated ones
+            // this prevents returning info on software renderer when actually we'll get the hardware one
+            while (info)
+            {
+                aglDescribeRenderer(info, AGL_ACCELERATED, &dAccel);
+                aglReportError ();
+                if (dAccel)
+                    canAccel = true;
+                info = aglNextRendererInfo(info);
+                aglReportError ();
+                inum++;
+            }
+                
+            info = head_info;
+            inum = 0;
+            while (info)
+            {    
+                aglDescribeRenderer(info, AGL_ACCELERATED, &dAccel);
+                aglReportError ();
+                // if we can accel then we will choose the accelerated renderer 
+                // how about compliant renderers???
+                if ((canAccel && dAccel) || (!canAccel && (!fAccelMust || dAccel)))
+                {
+                    aglDescribeRenderer(info, AGL_VIDEO_MEMORY, &dVRAM);    // we assume that VRAM returned is total thus add texture and VRAM required
+                    aglReportError ();
+                    if (dVRAM >= (*pVRAM + *pTextureRAM))
+                    {
+                        if (dVRAM >= dMaxVRAM) // find card with max VRAM
+                        {
+                            aglDescribeRenderer(info, AGL_DEPTH_MODES, pDepthSizeSupport);    // which depth buffer modes are supported
+                            aglReportError ();
+                            dMaxVRAM = dVRAM; // store max
+                            found = true;
+                        }
+                    }
+                }
+                info = aglNextRendererInfo(info);
+                aglReportError ();
+                inum++;
+            }
+        }
+        aglDestroyRendererInfo(head_info);
+        if (found) // if we found a card that has enough VRAM and meets the accel criteria
+        {
+            if (MinVRAM > dMaxVRAM)
+                MinVRAM = dMaxVRAM; // return VRAM
+            
+        }
+        else
+            goodCheck = false; // one device failed thus entire requirement fails
+        hGD = GetNextDevice (hGD); // get next device
+    } // while
+    if (goodCheck) // we check all devices and each was good
+    {
+        *pVRAM = MinVRAM; // return VRAM
+        return true;
+    }
+    return false; //at least one device failed to have mins
+}
+
+//-----------------------------------------------------------------------------------------------------------------------
+
+// DumpCurrent
+
+// Kills currently allocated context
+// does not care about being pretty (assumes display is likely faded)
+
+// Inputs:     paglDraw, paglContext: things to be destroyed
+
+void DumpCurrent (AGLDrawable* paglDraw, AGLContext* paglContext, pstructGLInfo pcontextInfo)
+{
+    if (*paglContext)
+    {
+        aglSetCurrentContext (NULL);
+        aglReportError ();
+        aglSetDrawable (*paglContext, NULL);
+        aglReportError ();
+        aglDestroyContext (*paglContext);
+        aglReportError ();
+        *paglContext = NULL;
+    }
+    
+    if (pcontextInfo->fmt)
+    {
+        aglDestroyPixelFormat (pcontextInfo->fmt); // pixel format is no longer needed
+        aglReportError ();
+    }
+    pcontextInfo->fmt = 0;
+
+    if (*paglDraw) // do not destory a window on DSp since there is no window built in X
+        DisposeWindow (GetWindowFromPort (*paglDraw));
+    *paglDraw = NULL;
+}
+
+#pragma mark -
+// --------------------------------------------------------------------------
+
+// BuildGLonWindow
+
+static OSStatus BuildGLonWindow (WindowPtr pWindow, AGLContext* paglContext, pstructGLWindowInfo pcontextInfo, AGLContext aglShareContext)
+{
+    GDHandle hGD = NULL;
+    GrafPtr cgrafSave = NULL;
+    short numDevices;
+    GLint depthSizeSupport;
+    OSStatus err = noErr;
+    
+    if (!pWindow || !pcontextInfo)
+    {
+        ReportError ("NULL parameter passed to BuildGLonWindow.");
+        return paramErr;
+    }
+    
+    GetPort (&cgrafSave);
+    SetPortWindowPort(pWindow);
+
+    // check renderere VRAM and acceleration
+    numDevices = FindGDHandleFromWindow (pWindow, &hGD);
+    if (!pcontextInfo->fDraggable)     // if numDevices > 1 then we will only be using the software renderer otherwise check only window device
+    {
+        if ((numDevices > 1) || (numDevices == 0)) // this window spans mulitple devices thus will be software only
+        {
+            // software renderer
+            // infinite VRAM, infinite textureRAM, not accelerated
+            if (pcontextInfo->fAcceleratedMust)
+            {
+                ReportError ("Unable to accelerate window that spans multiple devices");
+                return err;
+            }
+        }
+        else // not draggable on single device
+        {
+            if (!CheckRenderer (hGD, &(pcontextInfo->VRAM), &(pcontextInfo->textureRAM), &depthSizeSupport, pcontextInfo->fAcceleratedMust))
+            {
+                ReportError ("Renderer check failed");
+                return err;
+            }
+        }
+    }
+    // else draggable so must check all for support (each device should have at least one renderer that meets the requirements)
+    else if (!CheckAllDeviceRenderers (&(pcontextInfo->VRAM), &(pcontextInfo->textureRAM), &depthSizeSupport, pcontextInfo->fAcceleratedMust))
+    {
+        ReportError ("Renderer check failed");
+        return err;
+    }
+    
+    // do agl
+    if ((Ptr) kUnresolvedCFragSymbolAddress == (Ptr) aglChoosePixelFormat) // check for existance of OpenGL
+    {
+        ReportError ("OpenGL not installed");
+        return noErr;
+    }    
+    // we successfully passed the renderer check
+
+    if ((!pcontextInfo->fDraggable && (numDevices == 1)))  // not draggable on a single device
+        pcontextInfo->fmt = aglChoosePixelFormat (&hGD, 1, pcontextInfo->aglAttributes); // get an appropriate pixel format
+    else
+        pcontextInfo->fmt = aglChoosePixelFormat (NULL, 0, pcontextInfo->aglAttributes); // get an appropriate pixel format
+    aglReportError ();
+    if (NULL == pcontextInfo->fmt) 
+    {
+        ReportError("Could not find valid pixel format");
+        return noErr;
+    }
+
+    *paglContext = aglCreateContext (pcontextInfo->fmt, aglShareContext); // Create an AGL context
+    if (AGL_BAD_MATCH == aglGetError())
+        *paglContext = aglCreateContext (pcontextInfo->fmt, 0); // unable to sahre context, create without sharing
+    aglReportError ();
+    if (NULL == *paglContext) 
+    {
+        ReportError ("Could not create context");
+        return noErr;
+    }
+    
+    if (!aglSetDrawable (*paglContext, GetWindowPort (pWindow))) // attach the CGrafPtr to the context
+        return aglReportError ();
+    
+    if(!aglSetCurrentContext (*paglContext)) // make the context the current context
+        return aglReportError ();
+
+    SetPort (cgrafSave);
+
+    return err;
+}
+
+#pragma mark -
+
+// functions (public) -------------------------------------------------------
+
+// DestroyGLFromWindow
+
+// Destroys context that waas allocated with BuildGLonWindow
+// Ouputs: *paglContext should be NULL on exit
+
+OSStatus DestroyGLFromWindow (AGLContext* paglContext, pstructGLWindowInfo pcontextInfo)
+{
+    OSStatus err;
+    
+    if ((!paglContext) || (!*paglContext))
+        return paramErr; // not a valid context
+    glFinish ();
+    aglSetCurrentContext (NULL);
+    err = aglReportError ();
+    aglSetDrawable (*paglContext, NULL);
+    err = aglReportError ();
+    aglDestroyContext (*paglContext);
+    err = aglReportError ();
+    *paglContext = NULL;
+
+    if (pcontextInfo->fmt)
+    {
+        aglDestroyPixelFormat (pcontextInfo->fmt); // pixel format is no longer valid
+        err = aglReportError ();
+    }
+    pcontextInfo->fmt = 0;
+    
+    return err;
+}
+
+//-----------------------------------------------------------------------------------------------------------------------
+
+// GetWindowDevice
+
+// Inputs:    a valid WindowPtr
+
+// Outputs:    the GDHandle that that window is mostly on
+
+// returns the number of devices that the windows content touches
+
+short FindGDHandleFromWindow (WindowPtr pWindow, GDHandle * phgdOnThisDevice)
+{
+    GrafPtr pgpSave;
+    Rect rectWind, rectSect;
+    long greatestArea, sectArea;
+    short numDevices = 0;
+    GDHandle hgdNthDevice;
+    
+    if (!pWindow || !phgdOnThisDevice)
+        return 0;
+        
+    *phgdOnThisDevice = NULL;
+    
+    GetPort (&pgpSave);
+    SetPortWindowPort (pWindow);
+    
+
+    GetWindowPortBounds (pWindow, &rectWind);
+    LocalToGlobal ((Point*)& rectWind.top);    // convert to global coordinates
+    LocalToGlobal ((Point*)& rectWind.bottom);
+    hgdNthDevice = GetDeviceList ();
+    greatestArea = 0;
+    // check window against all gdRects in gDevice list and remember 
+    //  which gdRect contains largest area of window}
+    while (hgdNthDevice)
+    {
+        if (TestDeviceAttribute (hgdNthDevice, screenDevice))
+            if (TestDeviceAttribute (hgdNthDevice, screenActive))
+            {
+                // The SectRect routine calculates the intersection 
+                //  of the window rectangle and this gDevice 
+                //  rectangle and returns TRUE if the rectangles intersect, 
+                //  FALSE if they don't.
+                SectRect (&rectWind, &(**hgdNthDevice).gdRect, &rectSect);
+                // determine which screen holds greatest window area
+                //  first, calculate area of rectangle on current device
+                sectArea = (long) (rectSect.right - rectSect.left) * (rectSect.bottom - rectSect.top);
+                if (sectArea > 0)
+                    numDevices++;
+                if (sectArea > greatestArea)
+                {
+                    greatestArea = sectArea; // set greatest area so far
+                    *phgdOnThisDevice = hgdNthDevice; // set zoom device
+                }
+                hgdNthDevice = GetNextDevice(hgdNthDevice);
+            }
+    }
+    
+    SetPort (pgpSave);
+    return numDevices;
+}
+
+//--------------------------------------------------------------------------------------------
+// private
+
+// returns the largest power of 2 texture <= textureDimension
+// or in the case of texture rectangle returns the next texture size (can be non-power of two)
+
+static long GetNextTextureSize (long textureDimension, long maxTextureSize, Boolean textureRectangle)
+{
+    long targetTextureSize = maxTextureSize; // start at max texture size
+    if (textureRectangle)
+    {
+        if (textureDimension >= targetTextureSize) // the texture dimension is greater than the target texture size (i.e., it fits)
+            return targetTextureSize; // return corresponding texture size
+        else
+            return textureDimension; // jusr return the dimension
+    }
+    else
+    {
+        do // while we have txture sizes check for texture value being equal or greater
+        {  
+            if (textureDimension >= targetTextureSize) // the texture dimension is greater than the target texture size (i.e., it fits)
+                return targetTextureSize; // return corresponding texture size
+        }
+        while (targetTextureSize >>= 1); // step down to next texture size smaller
+    }
+    return 0; // no textures fit so return zero
+}
+
+// ---------------------------------
+
+// returns the nuber of textures need to represent a size of textureDimension given
+// requirement for power of 2 textures as the maximum texture size
+// for the overlap case each texture effectively covers two less pixels so must iterate through using whole statement
+
+static long GetTextureNumFromTextureDim (long textureDimension, long maxTextureSize, Boolean texturesOverlap, Boolean textureRectangle) 
+{
+    // start at max texture size 
+    // loop through each texture size, removing textures in turn which are less than the remaining texture dimension
+    // each texture has 2 pixels of overlap (one on each side) thus effective texture removed is 2 less than texture size
+    
+    long i = 0; // initially no textures
+    long bitValue = maxTextureSize; // start at max texture size
+    long texOverlapx2 = texturesOverlap ? 2 : 0;
+    textureDimension -= texOverlapx2; // ignore texture border since we are using effective texure size (by subtracting 2 from the initial size)
+    if (textureRectangle)
+    {
+        // count number of full textures
+        while (textureDimension > (bitValue - texOverlapx2)) // while our texture dimension is greater than effective texture size (i.e., minus the border)
+        {
+            i++; // count a texture
+            textureDimension -= bitValue - texOverlapx2; // remove effective texture size
+        }
+        // add one partial texture
+        i++; 
+    }
+    else
+    {
+        do
+        {
+            while (textureDimension >= (bitValue - texOverlapx2)) // while our texture dimension is greater than effective texture size (i.e., minus the border)
+            {
+                i++; // count a texture
+                textureDimension -= bitValue - texOverlapx2; // remove effective texture size
+            }
+        }
+        while ((bitValue >>= 1) > texOverlapx2); // step down to next texture while we are greater than two (less than 4 can't be used due to 2 pixel overlap)
+    if (textureDimension > 0x0) // if any textureDimension is left there is an error, because we can't texture these small segments and in anycase should not have image pixels left
+        ReportErrorNum ("GetTextureNumFromTextureDim error: Texture to small to draw, should not ever get here, texture size remaining:", textureDimension);
+    }
+    return i; // return textures counted
+} 
+
+#pragma mark -
+// ==================================
+// public
+
+// disposes OpenGL context, and associated texture list
+
+OSStatus DisposeGLForWindow (WindowRef window)
+{
+    if (window)
+    {
+        pRecImage pWindowInfo = (pRecImage) GetWRefCon (window); // get gl data stored in refcon
+        SetWRefCon (window, 0); // ensure the refcon is not used again
+        if (NULL == pWindowInfo) // if this is non-existant
+            return paramErr; // then drop out
+        if (NULL != pWindowInfo->aglContext)
+        {
+            aglSetCurrentContext (pWindowInfo->aglContext); // ensaure the context we are working with is set to current
+            aglUpdateContext (pWindowInfo->aglContext); // ensaure the context we are working with is set to current
+            glFinish (); // ensure all gl commands are complete
+            glDeleteTextures (pWindowInfo->textureX * pWindowInfo->textureY, pWindowInfo->pTextureName); // delete the complete set of textures used for the window
+            DestroyGLFromWindow (&pWindowInfo->aglContext, &pWindowInfo->glInfo); // preoperly destroy GL context and any associated structures
+            pWindowInfo->aglContext = NULL; // ensure we don't use invlad context
+        }
+        if (NULL != pWindowInfo->pTextureName)
+        {
+            DisposePtr ((Ptr) pWindowInfo->pTextureName); // dispose of the allocate4d texture name storage
+            pWindowInfo->pTextureName = NULL; // ensure we do not use it again
+        }
+        if (pWindowInfo->pImageBuffer) // MUST preserve the buffer if texturing from client memory
+        {
+            //DisposePtr ((Ptr) pWindowInfo->pImageBuffer); // or image buffer
+            pWindowInfo->pImageBuffer = NULL;
+        }
+        DisposePtr ((Ptr) pWindowInfo);
+        return noErr; // we are good to go
+    }
+    else
+        return paramErr; // NULL window ref passed in
+}
+
+// ---------------------------------
+
+// builds the GL context and associated state for the window
+// loads image into a texture or textures
+// disposes of GWorld and image buffer when finished loading textures
+
+OSStatus BuildGLForWindow (WindowRef window)
+{
+    GrafPtr portSave = NULL; // port which is set on entrance to this routine
+    pRecImage pWindowInfo = (pRecImage) GetWRefCon (window); // the info structure for the window stored in the refcon
+    short i; // iterator
+    GLenum textureTarget = GL_TEXTURE_2D;
+   
+    if (!pWindowInfo->aglContext) // if we get here and do not have a context built, build one
+    {
+        GetPort (&portSave);    // save current port
+        SetPort ((GrafPtr) GetWindowPort (window)); // set port to the current window
+        // set parameters for Carbon SetupGL
+        pWindowInfo->glInfo.fAcceleratedMust = false; // must renderer be accelerated?
+        pWindowInfo->glInfo.VRAM = 0 * 1048576; // minimum VRAM (if not zero this is always required)
+        pWindowInfo->glInfo.textureRAM = 0 * 1048576; // minimum texture RAM (if not zero this is always required)
+           pWindowInfo->glInfo.fDraggable = true; // is this a draggable window
+        pWindowInfo->glInfo.fmt = 0; // output pixel format
+        
+        i = 0; // first attribute in array
+        pWindowInfo->glInfo.aglAttributes [i++] = AGL_RGBA; // RGB + Alpha pixels
+        pWindowInfo->glInfo.aglAttributes [i++] = AGL_DOUBLEBUFFER; // doble buffered context
+        pWindowInfo->glInfo.aglAttributes [i++] = AGL_ACCELERATED; // require hardware acceleration
+        pWindowInfo->glInfo.aglAttributes [i++] = AGL_NO_RECOVERY; // 10.0.4 has problems with the GL (disregards UNPACK_ROW_LENGTH) resulting from using no recovery
+                                                                   // normally we would use no recovery to ensure the minimum pixel size textures are stored by GL.
+        pWindowInfo->glInfo.aglAttributes [i++] = AGL_NONE; // end parameter list
+        BuildGLonWindow (window, &(pWindowInfo->aglContext), &(pWindowInfo->glInfo), NULL); // build opengl context for our window
+        if (!pWindowInfo->aglContext) // if could not create context
+            DestroyGLFromWindow (&pWindowInfo->aglContext, &pWindowInfo->glInfo); // ensure context is destroyed correctly
+        else // we have a valid context
+        {
+            GLint swap = 0; // swap interval (i.e., VBL sync) setting 1 = sync, 0 = no sync
+            Rect rectPort; // window port rectangle
+            long width = pWindowInfo->imageWidth, height = pWindowInfo->imageHeight; // image width and height
+            GDHandle device; // GDevice to find the constrain the window to
+            Rect deviceRect, availRect, rect; // rect of device which window is on (mostly, area wise at least). avialable area for window (minus dock and menu if req), working rect
+
+            GetWindowGreatestAreaDevice (window, kWindowContentRgn, &device, &deviceRect); // find device the window is mostly on
+            GetAvailableWindowPositioningBounds (device, &availRect); //  get the geretest available area for te windoew (mminus doc and menu if applicable)
+            if (width > (availRect.right - availRect.left)) // adjust window width if it is greater than available area (orginally set to image width, see above)
+                width = (availRect.right - availRect.left);
+            if (height > (availRect.bottom - availRect.top)) // adjust window height if it is greater than available area (orginally set to image width, see above)
+                height = (availRect.bottom - availRect.top);
+            SizeWindow (window, (short) width, (short) height, true); // size the window to new width and height
+            ConstrainWindowToScreen(window, kWindowStructureRgn, kWindowConstrainMayResize, NULL, &rect); // ensure window structure region is on the screen
+            GetWindowPortBounds (window, &rectPort); // get port rect for viewport reset
+
+            aglSetCurrentContext (pWindowInfo->aglContext); // set our GL context to this one
+            aglUpdateContext (pWindowInfo->aglContext); // update the context to account for the resize
+            InvalWindowRect (window, &rectPort); // inval the entire window to ensure we get a redraw
+            glViewport (0, 0, rectPort.right - rectPort.left, rectPort.bottom - rectPort.top); // reset viewport to entier window area
+
+            aglSetInteger (pWindowInfo->aglContext, AGL_SWAP_INTERVAL, &swap); // set swap interval to account for vbl syncing or not
+            
+            // set correct texture target // if building on 10.0 or 9 this will be undefined
+        #ifdef GL_TEXTURE_RECTANGLE_EXT
+            if (pWindowInfo->fNPOTTextures)
+                textureTarget = GL_TEXTURE_RECTANGLE_EXT;
+        #endif
+            
+            // Set texture mapping parameters
+            glEnable (textureTarget); // enable texturing
+                
+            glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // set clear color buffer to dark gray
+            glClear (GL_COLOR_BUFFER_BIT); // clear just to color buffer
+            aglSwapBuffers (pWindowInfo->aglContext); // swap the cleared buffer to front
+    
+            //GetFNum ("\pMonaco", &fNum); // get font number for named font
+            //pWindowInfo->fontList = BuildFontGL (pWindowInfo->aglContext, fNum, normal, 9); // build display list for fonts for this context (see aglString for more info)
+            
+            // if we can use texture rectangle // if building on 10.0 or 9 this will be undefined
+        #ifdef GL_TEXTURE_RECTANGLE_EXT
+            if (pWindowInfo->fNPOTTextures)
+                glEnable(GL_TEXTURE_RECTANGLE_EXT);
+        #endif
+            if (pWindowInfo->fAGPTexturing)
+                glTextureRangeAPPLE(textureTarget, pWindowInfo->textureHeight * pWindowInfo->textureWidth * (pWindowInfo->imageDepth >> 3), pWindowInfo->pImageBuffer);
+            glPixelStorei (GL_UNPACK_ROW_LENGTH, pWindowInfo->textureWidth); // set image width in groups (pixels), accounts for border this ensures proper image alignment row to row
+            // get number of textures x and y
+                // extract the number of horiz. textures needed to tile image
+            pWindowInfo->textureX = GetTextureNumFromTextureDim (pWindowInfo->textureWidth, pWindowInfo->maxTextureSize, pWindowInfo->fOverlapTextures, pWindowInfo->fNPOTTextures); 
+                // extract the number of horiz. textures needed to tile image
+            pWindowInfo->textureY = GetTextureNumFromTextureDim (pWindowInfo->textureHeight, pWindowInfo->maxTextureSize, pWindowInfo->fOverlapTextures, pWindowInfo->fNPOTTextures); 
+            pWindowInfo->pTextureName = (GLuint *) NewPtrClear ((long) sizeof (GLuint) * pWindowInfo->textureX * pWindowInfo->textureY); // allocate storage for texture name lists
+            glGenTextures (pWindowInfo->textureX * pWindowInfo->textureY, pWindowInfo->pTextureName); // generate textures names need to support tiling
+            {
+                long x, y, k = 0, offsetY, offsetX = 0, currWidth, currHeight; // texture iterators, texture name iterator, image offsets for tiling, current texture width and height
+                for (x = 0; x < pWindowInfo->textureX; x++) // for all horizontal textures
+                {
+                    currWidth = GetNextTextureSize (pWindowInfo->textureWidth - offsetX, pWindowInfo->maxTextureSize, pWindowInfo->fNPOTTextures); // use remaining to determine next texture size 
+                                                                                                                    // (basically greatest power of 2 which fits into remaining space)
+                    offsetY = 0; // reset vertical offest for every column
+                    for (y = 0; y < pWindowInfo->textureY; y++) // for all vertical textures
+                    {
+                        // buffer pointer is at base + rows * row size + columns
+                        unsigned char * pBuffer = pWindowInfo->pImageBuffer + 
+                                                   offsetY * pWindowInfo->textureWidth * (pWindowInfo->imageDepth >> 3) + 
+                                                   offsetX * (pWindowInfo->imageDepth >> 3);
+                        currHeight = GetNextTextureSize (pWindowInfo->textureHeight - offsetY, pWindowInfo->maxTextureSize, pWindowInfo->fNPOTTextures); // use remaining to determine next texture size
+                        glBindTexture (textureTarget, pWindowInfo->pTextureName[k++]);
+                        if (pWindowInfo->fAGPTexturing) {
+                            glTexParameterf (textureTarget, GL_TEXTURE_PRIORITY, 0.0f); // AGP texturing
+                            glTexParameteri (textureTarget, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_SHARED_APPLE);
+                        }
+                        else
+                            glTexParameterf (textureTarget, GL_TEXTURE_PRIORITY, 1.0f);
+                            
+                    #ifdef GL_UNPACK_CLIENT_STORAGE_APPLE
+                        if (pWindowInfo->fClientTextures)
+                            glPixelStorei (GL_UNPACK_CLIENT_STORAGE_APPLE, 1);
+                        else
+                            glPixelStorei (GL_UNPACK_CLIENT_STORAGE_APPLE, 0);
+                    #endif
+
+                        glTexParameteri (textureTarget, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+                        glTexParameteri (textureTarget, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+                        glTexParameteri (textureTarget, GL_TEXTURE_WRAP_S, gpOpenGLCaps->edgeClampParam);
+                        glTexParameteri (textureTarget, GL_TEXTURE_WRAP_T, gpOpenGLCaps->edgeClampParam);
+                        glReportError (); // report any errors so far
+                        glTexImage2D (textureTarget, 0, GL_RGBA, currWidth, currHeight, 0, 
+                                      GL_BGRA_EXT, pWindowInfo->imageDepth == 32 ? GL_UNSIGNED_INT_8_8_8_8_REV : GL_UNSIGNED_SHORT_1_5_5_5_REV, 
+                                      pBuffer); // texture with current width and height at pBuffer location in image buffer with image size as GL_UNPACK_ROW_LENGTH
+                        glReportError (); // report any errors
+                        offsetY += currHeight - 2 * pWindowInfo->fOverlapTextures; // offset in for the amount of texture used, 
+                                                                                       //  since we are overlapping the effective texture used is 2 texels less than texture width
+                    }
+                    offsetX += currWidth - 2 * pWindowInfo->fOverlapTextures; // offset in for the amount of texture used, 
+                                                                              //  since we are overlapping the effective texture used is 2 texels less than texture width
+                }
+            }
+            if (false == pWindowInfo->fClientTextures) // MUST preserve the buffer if texturing from client memory
+            {
+                DisposePtr ((Ptr) pWindowInfo->pImageBuffer); // or image buffer
+                pWindowInfo->pImageBuffer = NULL;
+            }
+        }
+        SetPort (portSave); //reset port
+    }
+    return noErr; // we done
+}
+
+// ---------------------------------
+
+// Handle updating context for window moves and resizing
+
+OSStatus ResizeMoveGLWindow (WindowRef window)
+{
+    OSStatus err = noErr; // no errors to start
+    Rect rectPort; // new port rect
+    pRecImage pWindowInfo = (pRecImage) GetWRefCon (window); // get GL info;
+    if (window && pWindowInfo) // if we have a window
+    {
+        GetWindowPortBounds (window, &rectPort);
+        pWindowInfo->zoomX = (float) (rectPort.right - rectPort.left) / (float) pWindowInfo->imageWidth;
+        pWindowInfo->zoomY = (float) (rectPort.bottom - rectPort.top) / (float) pWindowInfo->imageHeight;
+
+        if (!aglUpdateContext (pWindowInfo->aglContext)) // update the context to ensure gl knows about the move or resize
+               aglReportError (); // report any error with update context
+        if (noErr != err)
+            ReportErrorNum ("ResizeMoveGLWindow error with InvalWindowRect on window: ", err);  // should not get erro here, but who knows
+        err = InvalWindowRect (window, &rectPort);
+    }
+    else
+        err = paramErr; // bad window
+    return err; // return any error 
+}
+
+// ---------------------------------
+
+// main GL drawing routine, should be valid window passed in (will setupGL if require).  Draw image
+
+void DrawGL (WindowRef window)
+{
+    Rect rectPort; // rectangle for port
+    pRecImage pWindowInfo; // the gl info for the target window 
+    long width, height; // width and height or the port and the row of the raster position
+    long effectiveTextureMod = 0; // texture size modification (inset) to account for borders
+    long x, y, k = 0, offsetY, offsetX = 0, currTextureWidth, currTextureHeight;
+    GLenum textureTarget = GL_TEXTURE_2D;
+    
+    if (NULL == window) // if we do not have a window
+        return; // drop out
+    pWindowInfo = (pRecImage) GetWRefCon (window); // get the gl info for the window
+    if (NULL == pWindowInfo) // if this is non-existant
+        return; // then drop out
+    if (NULL == pWindowInfo->aglContext) // try to buld the context if we don't have one (safety check)
+        BuildGLForWindow (window);
+    if (NULL == pWindowInfo->aglContext) // if we still don't have one then drop out
+        return;
+        
+    if (pWindowInfo->fOverlapTextures)
+        effectiveTextureMod = 2; // if we overlap then we need to inset the textures passed to the drawing code
+    // set texture target
+#ifdef GL_TEXTURE_RECTANGLE_EXT
+    if (pWindowInfo->fNPOTTextures)
+        textureTarget = GL_TEXTURE_RECTANGLE_EXT;
+#endif
+
+    aglSetCurrentContext (pWindowInfo->aglContext); // ensaure the context we are working with is set to current
+    aglUpdateContext (pWindowInfo->aglContext); // ensaure the context we are working with is set to current
+
+    GetWindowPortBounds (window, &rectPort); // get the current port (window) bounds
+    width = rectPort.right - rectPort.left; // find width
+    height = rectPort.bottom - rectPort.top; // and height
+    glViewport (0, 0, width, height); // set the viewport to cover entire window
+    
+    glMatrixMode (GL_PROJECTION); // set projection matrix
+    glLoadIdentity (); // to indetity
+    glMatrixMode (GL_MODELVIEW); // set modelview matrix
+    glLoadIdentity (); // to identity
+    glReportError (); // report any GL errors so far
+    
+    // set the model view matrix for an orthographic view scaled to one screen pixel equal image pixel (independent of image zoom)
+    glScalef (2.0f / width, -2.0f /  height, 1.0f); // scale to port per pixel scale
+    //glTranslatef (pWindowInfo->centerX, pWindowInfo->centerY, 0.0f); // translate for image movement
+    //glRotatef (0.0f, 0.0f, 0.0f, 1.0f); // ratate matrix for image rotation
+    glReportError (); // report any GL errors
+    
+    glClear (GL_COLOR_BUFFER_BIT); // clear the color buffer before drawing
+
+    // draw image
+    glEnable (textureTarget); // enable texturing
+    glColor3f (1.0f, 1.0f, 1.0f); // white polygons
+    // offset x and y are used to draw the polygon and need to represent the texture effective edges (without borders)
+    // so walk the texture size images adjusting for each border
+    for (x = 0; x < pWindowInfo->textureX; x++) // for all horizontal textures
+    {
+        // use remaining to determine next texture size
+        currTextureWidth = GetNextTextureSize (pWindowInfo->textureWidth - offsetX, pWindowInfo->maxTextureSize, pWindowInfo->fNPOTTextures) - effectiveTextureMod; // current effective texture width for drawing
+        offsetY = 0; // start at top
+        for (y = 0; y < pWindowInfo->textureY; y++) // for a complete column
+        {
+            // use remaining to determine next texture size
+            currTextureHeight = GetNextTextureSize (pWindowInfo->textureHeight - offsetY, pWindowInfo->maxTextureSize, pWindowInfo->fNPOTTextures) - effectiveTextureMod; // effective texture height for drawing
+            glBindTexture(textureTarget, pWindowInfo->pTextureName[k++]); // work through textures in same order as stored, setting each texture name as current in turn
+            if (!pWindowInfo->fAGPTexturing)
+                glTexSubImage2D(textureTarget, 0, 0, 0, currTextureWidth, currTextureHeight, GL_BGRA, pWindowInfo->imageDepth == 32 ? GL_UNSIGNED_INT_8_8_8_8_REV : GL_UNSIGNED_SHORT_1_5_5_5_REV, pWindowInfo->pImageBuffer);
+            glReportError (); // report any errors
+            {
+                float endX = pWindowInfo->fTileTextures ? currTextureWidth + offsetX : pWindowInfo->imageWidth;
+                float endY = pWindowInfo->fTileTextures ? currTextureHeight + offsetY : pWindowInfo->imageHeight;
+                float startXDraw = (offsetX - pWindowInfo->imageWidth * 0.5f) * pWindowInfo->zoomX; // left edge of poly: offset is in image local coordinates convert to world coordinates
+                float endXDraw = (endX - pWindowInfo->imageWidth * 0.5f) * pWindowInfo->zoomX; // right edge of poly: offset is in image local coordinates convert to world coordinates
+                float startYDraw = (offsetY - pWindowInfo->imageHeight * 0.5f) * pWindowInfo->zoomY; // top edge of poly: offset is in image local coordinates convert to world coordinates
+                float endYDraw = (endY - pWindowInfo->imageHeight * 0.5f) * pWindowInfo->zoomY; // bottom edge of poly: offset is in image local coordinates convert to world coordinates
+                float texOverlap =  pWindowInfo->fOverlapTextures ? 1.0f : 0.0f; // size of texture overlap, switch based on whether we are using overlap or not
+                float startXTexCoord = texOverlap / (currTextureWidth + 2.0f * texOverlap); // texture right edge coordinate (stepped in one pixel for border if required)
+                float endXTexCoord = 1.0f - startXTexCoord; // texture left edge coordinate (stepped in one pixel for border if required)
+                float startYTexCoord = texOverlap / (currTextureHeight + 2.0f * texOverlap); // texture top edge coordinate (stepped in one pixel for border if required)
+                float endYTexCoord = 1.0f - startYTexCoord; // texture bottom edge coordinate (stepped in one pixel for border if required)
+                if (pWindowInfo->fNPOTTextures)
+                {
+                    startXTexCoord = texOverlap; // texture right edge coordinate (stepped in one pixel for border if required)
+                    endXTexCoord = currTextureWidth + texOverlap; // texture left edge coordinate (stepped in one pixel for border if required)
+                    startYTexCoord = texOverlap; // texture top edge coordinate (stepped in one pixel for border if required)
+                    endYTexCoord = currTextureHeight + texOverlap; // texture bottom edge coordinate (stepped in one pixel for border if required)
+                }
+                if (endX > (pWindowInfo->imageWidth + 0.5)) // handle odd image sizes, (+0.5 is to ensure there is no fp resolution problem in comparing two fp numbers)
+                {
+                    endXDraw = (pWindowInfo->imageWidth * 0.5f) * pWindowInfo->zoomX; // end should never be past end of image, so set it there
+                    if (pWindowInfo->fNPOTTextures)
+                        endXTexCoord -= 1.0f;
+                    else
+                        endXTexCoord = 1.0f -  2.0f * startXTexCoord; // for the last texture in odd size images there are two texels of padding so step in 2
+                }
+                if (endY > (pWindowInfo->imageHeight + 0.5f)) // handle odd image sizes, (+0.5 is to ensure there is no fp resolution problem in comparing two fp numbers)
+                {
+                    endYDraw = (pWindowInfo->imageHeight * 0.5f) * pWindowInfo->zoomY; // end should never be past end of image, so set it there
+                    if (pWindowInfo->fNPOTTextures)
+                        endYTexCoord -= 1.0f;
+                    else
+                        endYTexCoord = 1.0f -  2.0f * startYTexCoord; // for the last texture in odd size images there are two texels of padding so step in 2
+                }
+                
+                glBegin (GL_TRIANGLE_STRIP); // draw either tri strips of line strips
+                    glTexCoord2f (startXTexCoord, startYTexCoord); // draw upper left in world coordinates
+                    glVertex3d (startXDraw, startYDraw, 0.0);
+
+                    glTexCoord2f (endXTexCoord, startYTexCoord); // draw lower left in world coordinates
+                    glVertex3d (endXDraw, startYDraw, 0.0);
+
+                    glTexCoord2f (startXTexCoord, endYTexCoord); // draw upper right in world coordinates
+                    glVertex3d (startXDraw, endYDraw, 0.0);
+
+                    glTexCoord2f (endXTexCoord, endYTexCoord); // draw lower right in world coordinates
+                    glVertex3d (endXDraw, endYDraw, 0.0);
+                glEnd();
+                
+            }
+
+            //////////////////////
+
+            glReportError (); // report any errors
+            offsetY += currTextureHeight; // offset drawing position for next texture vertically
+        }
+        offsetX += currTextureWidth; // offset drawing position for next texture horizontally
+    }
+    glReportError (); // report any errors
+
+    glDisable (textureTarget); // done with texturing
+        
+    aglSwapBuffers (pWindowInfo->aglContext);
+}
+
+// finds the minimum OpenGL capabilites across all displays and GPUs attached to machine.
+
+static void FindMinimumOpenGLCapabilities (pRecGLCap pOpenGLCaps)
+{
+    WindowPtr pWin = NULL; 
+    Rect rectWin = {0, 0, 10, 10};
+    GLint attrib[] = { AGL_RGBA, AGL_NONE };
+    AGLPixelFormat fmt = NULL;
+    AGLContext ctx = NULL;
+    GLint deviceMaxTextureSize = 0, NPOTDMaxTextureSize = 0;
+    
+    if (NULL != gpOpenGLCaps)
+    {
+        // init desired caps to max values
+        pOpenGLCaps->f_ext_texture_rectangle = true;
+        pOpenGLCaps->f_ext_client_storage = true;
+        pOpenGLCaps->f_ext_packed_pixel = true;
+        pOpenGLCaps->f_ext_texture_edge_clamp = true;
+        pOpenGLCaps->f_gl_texture_edge_clamp = true;
+        pOpenGLCaps->maxTextureSize = 0x7FFFFFFF;
+        pOpenGLCaps->maxNOPTDTextureSize = 0x7FFFFFFF;
+
+        // build window
+        pWin = NewCWindow (0L, &rectWin, NULL, false,
+                plainDBox, (WindowPtr) -1L, true, 0L);
+                
+        // build context
+        fmt = aglChoosePixelFormat(NULL, 0, attrib);
+        if (fmt)
+            ctx = aglCreateContext(fmt, NULL);
+        if (ctx)
+        {
+            GDHandle hgdNthDevice;
+            
+            aglSetDrawable(ctx, GetWindowPort (pWin));
+            aglSetCurrentContext(ctx);
+            
+            // for each display
+            hgdNthDevice = GetDeviceList ();
+            while (hgdNthDevice)
+            {
+                if (TestDeviceAttribute (hgdNthDevice, screenDevice))
+                    if (TestDeviceAttribute (hgdNthDevice, screenActive))
+                    {
+                        // move window to display
+                        MoveWindow (pWin, (**hgdNthDevice).gdRect.left + 5, (**hgdNthDevice).gdRect.top + 5, false);
+                        aglUpdateContext(ctx);
+                        
+                        // for each cap (this can obviously be expanded)
+                        // if this driver/GPU/display is less capable
+                            // save this minimum capability
+                        {
+                            // get strings
+                            enum { kShortVersionLength = 32 };
+                            const GLubyte * strVersion = glGetString (GL_VERSION); // get version string
+                            const GLubyte * strExtension = glGetString (GL_EXTENSIONS);    // get extension string
+                            
+                            // get just the non-vendor specific part of version string
+                            GLubyte strShortVersion [kShortVersionLength];
+                            short i = 0;
+                            while ((((strVersion[i] <= '9') && (strVersion[i] >= '0')) || (strVersion[i] == '.')) && (i < kShortVersionLength)) // get only basic version info (until first space)
+                                strShortVersion [i] = strVersion[i++];
+                            strShortVersion [i] = 0; //truncate string
+                            
+                            // compare capabilities based on extension string and GL version
+                            pOpenGLCaps->f_ext_texture_rectangle = 
+                                pOpenGLCaps->f_ext_texture_rectangle && (NULL != strstr ((const char *) strExtension, "GL_EXT_texture_rectangle"));
+                            pOpenGLCaps->f_ext_client_storage = 
+                                pOpenGLCaps->f_ext_client_storage && (NULL != strstr ((const char *) strExtension, "GL_APPLE_client_storage"));
+                            pOpenGLCaps->f_ext_packed_pixel = 
+                                pOpenGLCaps->f_ext_packed_pixel && (NULL != strstr ((const char *) strExtension, "GL_APPLE_packed_pixel"));
+                            pOpenGLCaps->f_ext_texture_edge_clamp = 
+                                pOpenGLCaps->f_ext_texture_edge_clamp && (NULL != strstr ((const char *) strExtension, "GL_SGIS_texture_edge_clamp"));
+                            pOpenGLCaps->f_gl_texture_edge_clamp = 
+                                pOpenGLCaps->f_gl_texture_edge_clamp && (!strstr ((const char *) strShortVersion, "1.0") && !strstr ((const char *) strShortVersion, "1.1")); // if not 1.0 and not 1.1 must be 1.2 or greater
+                            
+                            // get device max texture size
+                            glGetIntegerv (GL_MAX_TEXTURE_SIZE, &deviceMaxTextureSize);
+                            if (deviceMaxTextureSize < pOpenGLCaps->maxTextureSize)
+                                pOpenGLCaps->maxTextureSize = deviceMaxTextureSize;
+                            // get max size of non-power of two texture on devices which support
+                            if (NULL != strstr ((const char *) strExtension, "GL_EXT_texture_rectangle"))
+                            {
+                            #ifdef GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT
+                                glGetIntegerv (GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT, &NPOTDMaxTextureSize);
+                                if (NPOTDMaxTextureSize < pOpenGLCaps->maxNOPTDTextureSize)
+                                    pOpenGLCaps->maxNOPTDTextureSize = NPOTDMaxTextureSize;
+                            #endif
+                            }
+                        }
+                        // next display
+                        hgdNthDevice = GetNextDevice(hgdNthDevice);
+                    }
+            }
+            aglDestroyContext( ctx );
+        }
+        else
+        { // could not build context set caps to min
+            pOpenGLCaps->f_ext_texture_rectangle = false;
+            pOpenGLCaps->f_ext_client_storage = false;
+            pOpenGLCaps->f_ext_packed_pixel = false;
+            pOpenGLCaps->f_ext_texture_edge_clamp = false;
+            pOpenGLCaps->f_gl_texture_edge_clamp = false;
+            pOpenGLCaps->maxTextureSize = 0;
+        }
+        
+        // set clamp param based on retrieved capabilities
+        if (pOpenGLCaps->f_gl_texture_edge_clamp) // if OpenGL 1.2 or later and texture edge clamp is supported natively
+                    pOpenGLCaps->edgeClampParam = GL_CLAMP_TO_EDGE;  // use 1.2+ constant to clamp texture coords so as to not sample the border color
+        else if (pOpenGLCaps->f_ext_texture_edge_clamp) // if GL_SGIS_texture_edge_clamp extension supported
+            pOpenGLCaps->edgeClampParam = GL_CLAMP_TO_EDGE_SGIS; // use extension to clamp texture coords so as to not sample the border color
+        else
+            pOpenGLCaps->edgeClampParam = GL_CLAMP; // clamp texture coords to [0, 1]
+
+        aglDestroyPixelFormat( fmt );
+        DisposeWindow( pWin );
+    }
+}
+
+//--------------------------------------------------------------------------------------------
+
+static OSStatus
+WindowEventHandler( EventHandlerCallRef inCaller, EventRef inEvent, void* inRefcon )
+{
+    OSStatus    err = eventNotHandledErr;
+    WindowRef    window = (WindowRef) inRefcon;
+
+    if( GetEventClass(inEvent) == kEventClassMouse )
+    {
+        Point mousePoint; // UInt32 modifiers;
+        verify_noerr( GetEventParameter(inEvent, kEventParamMouseLocation, typeQDPoint, NULL, sizeof(Point), NULL, &mousePoint) );
+        pRecImage pWindowInfo = (pRecImage) GetWRefCon (window); // get the gl info for the window
+        if(pWindowInfo) {
+            SetPortWindowPort(window);
+            GlobalToLocal (&mousePoint); //convert mouse coordinates to local coordintes prior to recording
+            mousePoint.h /= pWindowInfo->zoomX; mousePoint.v /= pWindowInfo->zoomY;
+            if(mousePoint.h >= 0 && mousePoint.h < pWindowInfo->imageWidth && mousePoint.v >= 0 && mousePoint.v < pWindowInfo->imageHeight)
+                g_video->on_mouse(mousePoint.h, mousePoint.v, GetEventKind(inEvent) == kEventMouseUp?-1:1), err = noErr;
+        }
+    }
+    else if( GetEventClass(inEvent) == kEventClassKeyboard )
+    {
+        char ch;
+        verify_noerr( GetEventParameter( inEvent, kEventParamKeyMacCharCodes, typeChar, NULL, sizeof( ch ), NULL, &ch ) );
+        if(g_video)
+            g_video->on_key(ch);
+    }
+    else //if( GetEventClass(inEvent) == kEventClassWindow )
+    {
+        if (GetEventKind(inEvent) == kEventWindowDrawContent)
+        {
+            //DrawGL(window);
+            err = noErr;
+        }
+        else if (GetEventKind(inEvent) == kEventWindowClose)
+        {
+            if (window)
+            {
+                g_video->running = false;
+            }
+            err = noErr;
+        }
+        else if (GetEventKind(inEvent) == kEventWindowShowing)
+        {
+            err = BuildGLForWindow (window);
+        }
+        else if ((GetEventKind(inEvent) == kEventWindowResizeCompleted) || (GetEventKind(inEvent) == kEventWindowDragCompleted))
+        {
+            err = ResizeMoveGLWindow (window);
+        }
+        else if (GetEventKind(inEvent) == kEventWindowZoomed)
+        {
+            err = ResizeMoveGLWindow (window);
+        }
+    }
+    
+    return err;
+}
+//--------------------------------------------------------------------------------------------
+DEFINE_ONE_SHOT_HANDLER_GETTER( WindowEventHandler )
+
+//--------------------------------------------------------------------------------------------
+WindowRef HandleNew()
+{
+    OSStatus  err;
+    WindowRef window;
+    pRecImage pWindowInfo = NULL;
+    static const EventTypeSpec    kWindowEvents[] =
+    {
+       { kEventClassMouse, kEventMouseUp },
+       { kEventClassMouse, kEventMouseDown },
+       { kEventClassKeyboard, kEventRawKeyDown },
+//       { kEventClassCommand, kEventCommandProcess },
+       { kEventClassWindow, kEventWindowShowing },
+       { kEventClassWindow, kEventWindowClose },
+       { kEventClassWindow, kEventWindowDrawContent },
+       { kEventClassWindow, kEventWindowResizeCompleted },
+       { kEventClassWindow, kEventWindowDragCompleted },
+       { kEventClassWindow, kEventWindowZoomed}
+    };
+    if (!gpOpenGLCaps)
+    {
+        gpOpenGLCaps = (pRecGLCap) NewPtrClear (sizeof (recGLCap));
+        FindMinimumOpenGLCapabilities (gpOpenGLCaps);
+    }
+
+    // Create a window. "MainWindow" is the name of the window object. This name is set in 
+    // InterfaceBuilder when the nib is created.
+    err = CreateWindowFromNib( sNibRef, CFSTR("MainWindow"), &window );
+    require_noerr( err, CantCreateWindow );
+    // We don't need the nib reference anymore.
+    DisposeNibReference(sNibRef);
+    
+    pWindowInfo = (recImage *) NewPtrClear (sizeof (recImage));
+    pWindowInfo->textureWidth = pWindowInfo->imageWidth = g_sizex;
+    pWindowInfo->textureHeight = pWindowInfo->imageHeight = g_sizey;
+    pWindowInfo->imageDepth = 32;
+    pWindowInfo->fTileTextures = true;
+    pWindowInfo->fOverlapTextures = false; // TODO: ???
+    pWindowInfo->maxTextureSize = gpOpenGLCaps->maxTextureSize;
+    pWindowInfo->fNPOTTextures = gpOpenGLCaps->f_ext_texture_rectangle;
+    pWindowInfo->fClientTextures = gpOpenGLCaps->f_ext_client_storage; // texture from client memory if available
+    pWindowInfo->fAGPTexturing = true; // if AGP texturing selected
+    pWindowInfo->pImageBuffer = (unsigned char*) g_pImg;
+    // set default parameters for this image
+    pWindowInfo->zoomX = 1.0f; // pixel 1 to 1 size
+    pWindowInfo->zoomY = 1.0f; // pixel 1 to 1 size
+    SetWRefCon (window, (long) pWindowInfo);
+    char buffer[256]; buffer[0] = snprintf(buffer+1, 255, "%s", g_video->title);
+    SetWTitle (window, (ConstStr255Param)buffer);
+    // Install a command handler on the window. We don't use this handler yet, but nearly all
+    // Carbon apps will need to handle commands, so this saves everyone a little typing.
+    InstallStandardEventHandler(GetWindowEventTarget(window));
+    InstallWindowEventHandler( window, GetWindowEventHandlerUPP(),
+                               GetEventTypeCount( kWindowEvents ), kWindowEvents, window, NULL );
+    if (noErr != BuildGLForWindow (window))
+    {
+        DisposeGLForWindow (window);
+        DisposeWindow (window);
+        return 0;
+    }
+
+    // Position new windows in a staggered arrangement on the main screen
+    RepositionWindow( window, NULL, kWindowCascadeOnMainScreen );
+    
+    // The window was created hidden, so show it
+    ShowWindow( window );
+    return window;
+  
+CantCreateWindow:
+    return 0;
+}
+
+
+//--------------------------------------------------------------------------------------------
+static OSStatus
+AppEventHandler( EventHandlerCallRef inCaller, EventRef inEvent, void* inRefcon )
+{
+    OSStatus    result = eventNotHandledErr;
+
+    return result;
+}
+
+//=======================================================================================================
+
+video::video()
+    : red_mask(0xff0000), red_shift(16), green_mask(0xff00),
+      green_shift(8), blue_mask(0xff), blue_shift(0), depth(24)
+{
+    assert(g_video == 0);
+    g_video = this; title = "Video"; updating = true; calc_fps = false;
+}
+
+bool video::init_window(int x, int y)
+{
+    g_sizex = x; g_sizey = y; g_window = 0;
+    g_pImg = new unsigned int[x*y];
+
+    // Check for graphics availability
+    if( CGGetOnlineDisplayList(0, NULL, NULL) ) {
+        running = true; // console mode
+        return false;
+    }
+
+    OSStatus                    err;
+    static const EventTypeSpec    kAppEvents[] =
+    {
+        { kEventClassCommand, kEventCommandProcess }
+    };
+
+    // Create a Nib reference, passing the name of the nib file (without the .nib extension).
+    // CreateNibReference only searches into the application bundle.
+    err = CreateNibReference( CFSTR("main"), &sNibRef );
+    require_noerr( err, ReturnLabel );
+
+    // Install our handler for common commands on the application target
+    // Register for standard event handlers
+    InstallStandardEventHandler(GetApplicationEventTarget()); // Doesn't work?
+    verify_noerr( InstallApplicationEventHandler( NewEventHandlerUPP( AppEventHandler ),
+                                    GetEventTypeCount( kAppEvents ), kAppEvents, 0, NULL ) );
+    
+    // Once the nib reference is created, set the menu bar. "MainMenu" is the name of the menu bar
+    // object. This name is set in InterfaceBuilder when the nib is created.
+    //err = SetMenuBarFromNib( sNibRef, CFSTR("MenuBar") );
+    //require_noerr( err, ReturnLabel );
+    InstallStandardEventHandler(GetMenuEventTarget(AcquireRootMenu()));
+
+    // Create a new window. A full-fledged application would do this from an AppleEvent handler for kAEOpenApplication.
+    g_window = HandleNew();
+
+ReturnLabel:
+    return running = g_window != 0;
+}
+
+bool video::init_console()
+{
+    running = true;
+    return true;
+}
+
+void video::terminate()
+{
+    g_video = 0; running = false;
+    if(g_pImg) { delete[] g_pImg; g_pImg = 0; }
+    if(g_window) {
+        DisposeGLForWindow (g_window);
+        DisposeWindow (g_window);
+        g_window = 0;
+    }
+}
+
+video::~video()
+{
+    if(g_video) terminate();
+}
+
+//! Count and display FPS count in titlebar
+bool video::next_frame()
+{
+	if(!running) return false;
+	if(!g_window) return running;
+    //! try acquire mutex if threaded code, returns on failure
+    if(threaded && pthread_mutex_trylock(&g_mutex))
+        return running;
+    g_fps++;
+    struct timezone tz; struct timeval now_time; gettimeofday(&now_time, &tz);
+    double sec = (now_time.tv_sec+1.0*now_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0);
+    if(sec > 1) {
+        memcpy(&g_time, &now_time, sizeof(g_time));
+        if(calc_fps) {
+            double fps = g_fps; g_fps = 0;
+            char buffer[256]; buffer[0] = snprintf(buffer+1, 255, "%s%s: %d fps", title, updating?"":" (no updating)", int(fps/sec));
+            SetWTitle (g_window, (ConstStr255Param) buffer );
+        }
+      }
+
+    EventRef theEvent;
+    EventTargetRef theTarget;
+    OSStatus                    err;
+    // Run the event loop
+
+    theTarget = GetEventDispatcherTarget();
+    while( (err = ReceiveNextEvent(0, NULL, kEventDurationNoWait, true, &theEvent)) == noErr)
+    {
+        SendEventToEventTarget(theEvent, theTarget);
+        ReleaseEvent(theEvent);
+    }
+    if(err != eventLoopTimedOutErr) running = false;
+    if(updating) {
+        pRecImage pWindowInfo = (pRecImage) GetWRefCon (g_window); // get the gl info for the window
+        if(pWindowInfo) DrawGL(g_window);
+    }
+  	if(threaded) pthread_mutex_unlock(&g_mutex);
+    return true;
+}
+
+//! Do standart loop
+void video::main_loop()
+{
+    struct timezone tz; gettimeofday(&g_time, &tz);
+    //RunApplicationEventLoop(); -- using another application loop model
+    on_process();
+}
+
+//! Change window title
+void video::show_title()
+{
+    char buffer[256]; buffer[0] = snprintf(buffer+1, 255, "%s", title);
+    SetWTitle (g_window, (ConstStr255Param) buffer );
+}
+
+///////////////////////////////////////////// public methods of video class ///////////////////////
+
+drawing_area::drawing_area(int x, int y, int sizex, int sizey)
+    : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24),
+    base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg)
+{
+    assert(x < g_sizex); assert(y < g_sizey);
+    assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey);
+
+    index = base_index; // current index
+}
+
+drawing_area::~drawing_area() {}
diff --git a/examples/common/gui/video.h b/examples/common/gui/video.h
new file mode 100644
index 0000000..d562768
--- /dev/null
+++ b/examples/common/gui/video.h
@@ -0,0 +1,177 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __VIDEO_H__
+#define __VIDEO_H__
+
+#include <cassert>
+#if _WIN32 || _WIN64
+#include <windows.h>
+#else
+#include <unistd.h>
+#endif
+
+typedef unsigned int color_t;
+typedef unsigned char colorcomp_t;
+
+//! Sipmle proxy class for managing of different video systems
+class video
+{
+    //! colorspace information
+    char depth, red_shift, green_shift, blue_shift;
+    color_t red_mask, green_mask, blue_mask;
+    friend class drawing_area;
+
+public:
+    //! Constructor
+    video();
+    //! Destructor
+    ~video();
+    //! member to set window name
+    const char *title;
+    //! true is enable to show fps
+    bool calc_fps;
+    //! if true: on windows fork processing thread for on_process(), on non-windows note that next_frame() is called concurrently.
+    bool threaded;
+    //! true while running within main_loop()
+    bool running;
+    //! if true, do gui updating
+    bool updating;
+    //! initialize graphical video system
+    bool init_window(int sizex, int sizey);
+    //! initialize console. returns true if console is available
+    bool init_console();
+    //! terminate video system
+    void terminate();
+    //! Do standard event & processing loop. Use threaded = true to separate event/updating loop from frame processing
+    void main_loop();
+    //! Process next frame
+    bool next_frame();
+    //! Change window title
+    void show_title();
+    //! translate RGB components into packed type
+    inline color_t get_color(colorcomp_t red, colorcomp_t green, colorcomp_t blue) const;
+
+    //! Mouse events handler.
+    virtual void on_mouse(int x, int y, int key) { }
+    //! Mouse events handler.
+    virtual void on_key(int key) { }
+    //! Main processing loop. Redefine with your own
+    virtual void on_process() { while(next_frame()); }
+
+#ifdef _WINDOWS
+    //! Windows specific members
+    //! if VIDEO_WINMAIN isn't defined then set this just before init() by arguments of WinMain
+    static HINSTANCE win_hInstance; static int win_iCmdShow;
+    //! optionally call it just before init() to set own. Use ascii strings convention
+    void win_set_class(WNDCLASSEX &);
+    //! load and set accelerator table from resources
+    void win_load_accelerators(int idc);
+#endif
+};
+
+//! Drawing class
+class drawing_area
+{
+    const size_t base_index, max_index, index_stride;
+    const char pixel_depth;
+    unsigned int * const ptr32;
+    size_t index;
+public:
+    const int start_x, start_y, size_x, size_y;
+    //! constructor
+    drawing_area(int x, int y, int sizex, int sizey);
+    //! destructor
+    ~drawing_area();
+    //! set current position. local_x could be bigger then size_x
+    inline void set_pos(int local_x, int local_y);
+    //! put pixel in current position with incremental address calculating to next right pixel
+    inline void put_pixel(color_t color);
+    //! draw pixel at position by packed color
+    void set_pixel(int localx, int localy, color_t color)
+        { set_pos(localx, localy); put_pixel(color); }
+};
+
+inline color_t video::get_color(colorcomp_t red, colorcomp_t green, colorcomp_t blue) const
+{
+    if(red_shift == 16) // only for depth == 24 && red_shift > blue_shift
+        return (red<<16) | (green<<8) | blue;
+    else if(depth >= 24)
+        return (red<<red_shift) | (green<<green_shift) | (blue<<blue_shift);
+    else if(depth > 0) {
+        register char bs = blue_shift, rs = red_shift;
+        if(blue_shift < 0) blue >>= -bs, bs = 0;
+        else /*red_shift < 0*/ red >>= -rs, rs = 0;
+        return (red<<rs)&red_mask | (green<<green_shift)&green_mask | (blue<<bs)&blue_mask;
+    } else { // UYVY colorspace
+        register unsigned y, u, v;
+        y = red * 77 + green * 150 + blue * 29; // sum(77+150+29=256) * max(=255):  limit->2^16
+        u = (2048 + (blue << 3) - (y >> 5)) >> 4; // (limit->2^12)>>4
+        v = (2048 + (red << 3) - (y >> 5)) >> 4;
+        y = y >> 8;
+        return u | (y << 8) | (v << 16) | (y << 24);
+    }
+}
+
+inline void drawing_area::set_pos(int local_x, int local_y)
+{
+    index = base_index + local_x + local_y*index_stride;
+}
+
+inline void drawing_area::put_pixel(color_t color)
+{
+    assert(index < max_index);
+    if(pixel_depth > 16) ptr32[index++] = color;
+    else if(pixel_depth > 0)
+        ((unsigned short*)ptr32)[index++] = (unsigned short)color;
+    else { // UYVY colorspace
+        if(index&1) color >>= 16;
+        ((unsigned short*)ptr32)[index++] = (unsigned short)color;
+    }
+}
+
+#if defined(_WINDOWS) && (defined(VIDEO_WINMAIN) || defined(VIDEO_WINMAIN_ARGS) )
+#include <cstdlib>
+//! define WinMain for subsystem:windows.
+#ifdef VIDEO_WINMAIN_ARGS
+int main(int, char *[]);
+#else
+int main();
+#endif
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR szCmdLine, int iCmdShow)
+{
+    video::win_hInstance = hInstance;  video::win_iCmdShow = iCmdShow;
+#ifdef VIDEO_WINMAIN_ARGS
+    return main(__argc, __argv);
+#else
+    return main();
+#endif
+}
+#endif
+
+#endif// __VIDEO_H__
diff --git a/examples/common/gui/winvideo.h b/examples/common/gui/winvideo.h
new file mode 100644
index 0000000..18e6420
--- /dev/null
+++ b/examples/common/gui/winvideo.h
@@ -0,0 +1,271 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/////// Common internal implementation of Windows-specific stuff //////////////
+
+#ifndef _CRT_SECURE_NO_DEPRECATE
+#define _CRT_SECURE_NO_DEPRECATE
+#endif
+#include "video.h"
+#include <fcntl.h>
+#include <io.h>
+#include <iostream>
+#include <fstream>
+
+#pragma comment(lib, "gdi32.lib")
+#pragma comment(lib, "user32.lib")
+
+// maximum mumber of lines the output console should have
+static const WORD MAX_CONSOLE_LINES = 500;
+const COLORREF              RGBKEY = RGB(8, 8, 16); // at least 8 for 16-bit palette
+HWND                        g_hAppWnd;           // The program's window handle
+HANDLE                      g_handles[2] = {0,0};// thread and wake up event
+unsigned int *              g_pImg = 0;          // drawing memory
+int                         g_sizex, g_sizey;
+static video *              g_video = 0;
+WNDPROC                     g_pUserProc = 0;
+HINSTANCE                   video::win_hInstance = 0;
+int                         video::win_iCmdShow = 0;
+static WNDCLASSEX *         gWndClass = 0;
+static HACCEL               hAccelTable = 0;
+static DWORD                g_msec = 0;
+static int g_fps = 0, g_updates = 0, g_skips = 0;
+
+bool DisplayError(LPSTR lpstrErr, HRESULT hres = 0); // always returns false
+LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
+
+//! Create window
+bool WinInit(HINSTANCE hInstance, int nCmdShow, WNDCLASSEX *uwc, const char *title, bool fixedsize)
+{
+    WNDCLASSEX wndclass;  // Our app's windows class
+    if(uwc) {
+        memcpy(&wndclass, uwc, sizeof(wndclass));
+        g_pUserProc = uwc->lpfnWndProc;
+    } else {
+        memset(&wndclass, 0, sizeof(wndclass));
+        wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
+        wndclass.lpszClassName = title;
+    }
+    wndclass.cbSize = sizeof(wndclass);
+    wndclass.hInstance = hInstance;
+    wndclass.lpfnWndProc = InternalWndProc;
+    wndclass.style |= CS_HREDRAW | CS_VREDRAW;
+    wndclass.hbrBackground = CreateSolidBrush(RGBKEY);
+
+    if( !RegisterClassExA(&wndclass) ) return false;
+    int xaddend = GetSystemMetrics(fixedsize?SM_CXFIXEDFRAME:SM_CXFRAME)*2;
+    int yaddend = GetSystemMetrics(fixedsize?SM_CYFIXEDFRAME:SM_CYFRAME)*2 + GetSystemMetrics(SM_CYCAPTION);
+    if(wndclass.lpszMenuName) yaddend += GetSystemMetrics(SM_CYMENU);
+
+    // Setup the new window's physical parameters - and tell Windows to create it
+    g_hAppWnd = CreateWindowA(wndclass.lpszClassName,  // Window class name
+                             title,  // Window caption
+                             !fixedsize ? WS_OVERLAPPEDWINDOW :  // Window style
+                             WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX,
+                             CW_USEDEFAULT,  // Initial x pos: use default placement
+                             0,              // Initial y pos: not used here
+                             g_sizex+xaddend,// Initial x size
+                             g_sizey+yaddend,// Initial y size
+                             NULL,      // parent window handle
+                             NULL,      // window menu handle
+                             hInstance, // program instance handle
+                             NULL);     // Creation parameters
+    return g_hAppWnd != NULL;
+}
+
+//! create console window with redirection
+static bool RedirectIOToConsole(void)
+{
+    int hConHandle; size_t lStdHandle;
+    CONSOLE_SCREEN_BUFFER_INFO coninfo;
+    FILE *fp;
+    // allocate a console for this app
+    AllocConsole();
+
+    // set the screen buffer to be big enough to let us scroll text
+    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
+    coninfo.dwSize.Y = MAX_CONSOLE_LINES;
+    SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
+
+    // redirect unbuffered STDOUT to the console
+    lStdHandle = (size_t)GetStdHandle(STD_OUTPUT_HANDLE);
+    hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
+    if(hConHandle <= 0) return false;
+    fp = _fdopen( hConHandle, "w" );
+    *stdout = *fp;
+    setvbuf( stdout, NULL, _IONBF, 0 );
+
+    // redirect unbuffered STDERR to the console
+    lStdHandle = (size_t)GetStdHandle(STD_ERROR_HANDLE);
+    hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
+    if(hConHandle > 0) {
+        fp = _fdopen( hConHandle, "w" );
+        *stderr = *fp;
+        setvbuf( stderr, NULL, _IONBF, 0 );
+    }
+
+    // redirect unbuffered STDIN to the console
+    lStdHandle = (size_t)GetStdHandle(STD_INPUT_HANDLE);
+    hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
+    if(hConHandle > 0) {
+        fp = _fdopen( hConHandle, "r" );
+        *stdin = *fp;
+        setvbuf( stdin, NULL, _IONBF, 0 );
+    }
+
+    // make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog
+    // point to console as well
+    std::ios::sync_with_stdio();
+    return true;
+}
+
+
+video::video()
+    : red_mask(0xff0000), red_shift(16), green_mask(0xff00),
+      green_shift(8), blue_mask(0xff), blue_shift(0), depth(24)
+{
+    assert(g_video == 0);
+    g_video = this; title = "Video"; running = threaded = calc_fps = false; updating = true;
+}
+
+//! optionally call it just before init() to set own 
+void video::win_set_class(WNDCLASSEX &wcex)
+{
+    gWndClass = &wcex;
+}
+
+void video::win_load_accelerators(int idc)
+{
+    hAccelTable = LoadAccelerators(win_hInstance, MAKEINTRESOURCE(idc));
+}
+
+bool video::init_console()
+{
+    if(RedirectIOToConsole()) {
+        if(!g_pImg && g_sizex && g_sizey)
+            g_pImg = new unsigned int[g_sizex * g_sizey];
+        if(g_pImg) running = true;
+        return true;
+    }
+    return false;
+}
+
+video::~video()
+{
+    if(g_video) terminate();
+}
+
+DWORD WINAPI thread_video(LPVOID lpParameter)
+{
+    video *v = (video*)lpParameter;
+    v->on_process();
+    return 0;
+}
+
+static bool loop_once(video *v)
+{
+    // screen update notify
+    if(g_updates) {
+        if(g_video->updating) { g_skips += g_updates-1; g_fps++; }
+        else g_skips += g_updates;
+        g_updates = 0; UpdateWindow(g_hAppWnd);
+    }
+    // update fps
+    DWORD msec = GetTickCount();
+    if(v->calc_fps && msec >= g_msec+1000) {
+        double sec = (msec - g_msec)/1000.0;
+        char buffer[256], n = _snprintf(buffer, 128, "%s: %d fps", v->title, int(double(g_fps + g_skips)/sec));
+        if(g_skips) _snprintf(buffer+n, 128, " - %d skipped = %d updates", int(g_skips/sec), int(g_fps/sec));
+	    SetWindowTextA(g_hAppWnd, buffer);
+	    g_msec = msec; g_skips = g_fps = 0;
+    }
+    // event processing, including painting
+    MSG msg;
+    if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+    {
+        if( msg.message == WM_QUIT ) { v->running = false; return false; }
+        if( !hAccelTable || !TranslateAccelerator(msg.hwnd, hAccelTable, &msg) )
+        {
+            TranslateMessage(&msg);
+            DispatchMessage(&msg);
+        }
+        return true; // try again
+    }
+    return false;
+}
+
+//! Do standart event loop
+void video::main_loop()
+{
+    // let Windows draw and unroll the window
+    InvalidateRect(g_hAppWnd, 0, false);
+    g_msec = GetTickCount(); // let's stay for 0,5 sec
+    while(g_msec + 500 > GetTickCount()) { loop_once(this); Sleep(1); }
+    g_msec = GetTickCount();
+    // now, start main process
+    if(threaded) {
+	    g_handles[0] = CreateThread (
+		    NULL,				// LPSECURITY_ATTRIBUTES security_attrs
+		    0,					// SIZE_T stacksize
+		    (LPTHREAD_START_ROUTINE) thread_video,
+		    this,               // argument
+		    0, 0);
+        if(!g_handles[0]) { DisplayError("Can't create thread"); return; }
+        else g_handles[1] = CreateEvent(NULL, false, false, NULL);
+        while(running) {
+            while(loop_once(this));
+            Sleep(0); // give time for processing when running on single CPU
+            DWORD r = MsgWaitForMultipleObjects(2, g_handles, false, INFINITE, QS_ALLINPUT^QS_MOUSEMOVE);
+            if(r == WAIT_OBJECT_0) break; // thread terminated
+        }
+        running = false;
+        if(WaitForSingleObject(g_handles[0], 300) == WAIT_TIMEOUT)
+            TerminateThread(g_handles[0], 0);
+        if(g_handles[0]) CloseHandle(g_handles[0]);
+        if(g_handles[1]) CloseHandle(g_handles[1]);
+        g_handles[0] = g_handles[1] = 0;
+    }
+    else on_process();
+}
+
+//! Refresh screen picture
+bool video::next_frame()
+{
+	if(!running) return false;
+    g_updates++;
+    if(!threaded) while(loop_once(this));
+    else if(g_handles[1]) { SetEvent(g_handles[1]); Sleep(0); }
+    return true;
+}
+
+//! Change window title
+void video::show_title()
+{
+    if(g_hAppWnd)
+        SetWindowTextA(g_hAppWnd, title);
+}
diff --git a/examples/common/gui/xvideo.cpp b/examples/common/gui/xvideo.cpp
new file mode 100644
index 0000000..464506c
--- /dev/null
+++ b/examples/common/gui/xvideo.cpp
@@ -0,0 +1,350 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Uncomment next line to disable shared memory features if you have not libXext
+// (http://www.xfree86.org/current/mit-shm.html)
+//#define X_NOSHMEM
+
+#include "video.h"
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+#include <sys/time.h>
+#include <signal.h>
+#include <pthread.h>
+
+#ifndef X_NOSHMEM
+#include <errno.h>
+#include <X11/extensions/XShm.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+
+static XShmSegmentInfo shmseginfo;
+static Pixmap pixmap = 0;
+#endif
+static char *display_name = NULL;
+static Display *dpy = NULL;
+static Screen *scrn;
+static Visual *vis;
+static Colormap cmap;
+static GC gc;
+static Window win, rootW;
+static int dispdepth = 0;
+static XGCValues xgcv;
+static XImage *ximage;
+static int x_error = 0;
+static int vidtype = 3;
+static int g_sizex, g_sizey;
+static video *g_video = 0;
+static unsigned int *g_pImg = 0;
+static int g_fps = 0;
+struct timeval g_time;
+static pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+Atom _XA_WM_DELETE_WINDOW = 0;// like in Xatom.h
+
+///////////////////////////////////////////// public methods of video class ///////////////////////
+
+video::video()
+{
+    assert(g_video == 0);
+    g_video = this; title = "Video"; calc_fps = running = false; updating = true;
+}
+
+inline void mask2bits(unsigned int mask, unsigned int &save, char &shift)
+{
+    save  = mask; if(!mask) { shift = dispdepth/3; return; }
+    shift = 0; while(!(mask&1)) ++shift, mask >>= 1;
+    int bits = 0; while(mask&1) ++bits,  mask >>= 1;
+    shift += bits - 8;
+}
+
+int xerr_handler(Display*, XErrorEvent *error)
+{
+    x_error = error->error_code;
+    if(g_video) g_video->running = false;
+    return 0;
+}
+
+bool video::init_window(int xsize, int ysize)
+{
+    { //enclose local variables before fail label
+    g_sizex = xsize; g_sizey = ysize;
+
+    // Open the display
+    if (!dpy) {
+        dpy = XOpenDisplay(display_name);
+        if (!dpy) {
+            fprintf(stderr, "Can't open X11 display %s\n", XDisplayName(display_name));
+            goto fail;
+        }
+    }
+    int theScreen = DefaultScreen(dpy);
+    scrn = ScreenOfDisplay(dpy, theScreen);
+    dispdepth = DefaultDepth(dpy, theScreen);
+    XVisualInfo vinfo;
+    if (!( (dispdepth >= 15 && dispdepth <= 32 && XMatchVisualInfo(dpy, theScreen, dispdepth, TrueColor, &vinfo) )
+        || XMatchVisualInfo(dpy, theScreen, 24, TrueColor, &vinfo)
+        || XMatchVisualInfo(dpy, theScreen, 32, TrueColor, &vinfo)
+        || XMatchVisualInfo(dpy, theScreen, 16, TrueColor, &vinfo)
+        || XMatchVisualInfo(dpy, theScreen, 15, TrueColor, &vinfo)
+        )) {
+        fprintf(stderr, "Display has no appropriate True Color visual\n");
+        goto fail;
+    }
+    vis = vinfo.visual;
+    depth = dispdepth = vinfo.depth;
+    mask2bits(vinfo.red_mask, red_mask, red_shift);
+    mask2bits(vinfo.green_mask, green_mask, green_shift);
+    mask2bits(vinfo.blue_mask, blue_mask, blue_shift);
+    rootW = RootWindow(dpy, theScreen);
+    cmap = XCreateColormap(dpy, rootW, vis, AllocNone);
+    XSetWindowAttributes attrs;
+    attrs.backing_store = Always;
+    attrs.colormap = cmap;
+    attrs.event_mask = StructureNotifyMask|KeyPressMask|ButtonPressMask|ButtonReleaseMask;
+    attrs.background_pixel = BlackPixelOfScreen(scrn);
+    attrs.border_pixel = WhitePixelOfScreen(scrn);
+    win = XCreateWindow(dpy, rootW,
+        0, 0, xsize, ysize, 2,
+        dispdepth, InputOutput, vis,
+        CWBackingStore | CWColormap | CWEventMask |
+        CWBackPixel | CWBorderPixel,
+        &attrs);
+    if(!win) {
+        fprintf(stderr, "Can't create the window\n");
+        goto fail;
+    }
+    XSizeHints sh;
+    sh.flags = PSize | PMinSize | PMaxSize;
+    sh.width = sh.min_width = sh.max_width = xsize;
+    sh.height = sh.min_height = sh.max_height = ysize;
+    XSetStandardProperties( dpy, win, g_video->title, g_video->title, None, NULL, 0, &sh );
+    _XA_WM_DELETE_WINDOW = XInternAtom(dpy, "WM_DELETE_WINDOW", false);
+    XSetWMProtocols(dpy, win, &_XA_WM_DELETE_WINDOW, 1);
+    gc = XCreateGC(dpy, win, 0L, &xgcv);
+    XMapRaised(dpy, win);
+    XFlush(dpy);
+#ifdef X_FULLSYNC
+	XSynchronize(dpy, true);
+#endif
+    XSetErrorHandler(xerr_handler);
+
+    int imgbytes = xsize*ysize*(dispdepth<=16?2:4);
+    const char *vidstr;
+#ifndef X_NOSHMEM
+    int major, minor, pixmaps;
+    if(XShmQueryExtension(dpy) &&
+       XShmQueryVersion(dpy, &major, &minor, &pixmaps))
+    { // Shared memory
+        shmseginfo.shmid = shmget(IPC_PRIVATE, imgbytes, IPC_CREAT|0777);
+        if(shmseginfo.shmid < 0) {
+            fprintf(stderr, "Warning: Can't get shared memory: %s\n", strerror(errno));
+            goto generic;
+        }
+        g_pImg = (unsigned int*)(shmseginfo.shmaddr = (char*)shmat(shmseginfo.shmid, 0, 0));
+        if(g_pImg == (unsigned int*)-1) {
+            fprintf(stderr, "Warning: Can't attach to shared memory: %s\n", strerror(errno));
+            shmctl(shmseginfo.shmid, IPC_RMID, NULL);
+            goto generic;
+        }
+        shmseginfo.readOnly = false;
+        if(!XShmAttach(dpy, &shmseginfo) || x_error) {
+            char err[256]; XGetErrorText(dpy, x_error, err, 255);
+            fprintf(stderr, "Warning: Can't attach shared memory to display: %s (%d)\n", err, x_error);
+            shmdt(shmseginfo.shmaddr); shmctl(shmseginfo.shmid, IPC_RMID, NULL);
+            goto generic;
+        }
+
+#ifndef X_NOSHMPIX
+        if(pixmaps && XShmPixmapFormat(dpy) == ZPixmap)
+        { // Pixmaps
+            vidtype = 2; vidstr = "X11 shared memory pixmap";
+            pixmap = XShmCreatePixmap(dpy, win, (char*)g_pImg, &shmseginfo, xsize, ysize, dispdepth);
+            XSetWindowBackgroundPixmap(dpy, win, pixmap);
+        } else
+#endif//!X_NOSHMPIX
+        { // Standart
+            vidtype = 1; vidstr = "X11 shared memory";
+            ximage = XShmCreateImage(dpy, vis, dispdepth,
+                ZPixmap, 0, &shmseginfo, xsize, ysize);
+            if(!ximage) {
+                fprintf(stderr, "Can't create the shared image\n");
+                goto fail;
+            }
+            assert(ximage->bytes_per_line == xsize*(dispdepth<=16?2:4));
+            ximage->data = shmseginfo.shmaddr;
+        }
+    } else
+#endif
+    {
+generic:
+        vidtype = 0; vidstr = "generic X11";
+        g_pImg = new unsigned int[imgbytes/sizeof(int)];
+        ximage = XCreateImage(dpy, vis, dispdepth, ZPixmap, 0, (char*)g_pImg, xsize, ysize, 32, imgbytes/ysize);
+        if(!ximage) {
+            fprintf(stderr, "Can't create the image\n");
+            goto fail;
+        }
+    }
+    printf("Note: using %s with %s visual for %d-bit color depth\n", vidstr, vis==DefaultVisual(dpy, theScreen)?"default":"non-default", dispdepth);
+    running = true;
+    return true;
+    } // end of enclosing local varables
+fail:
+    terminate(); init_console();
+    return false;
+}
+
+bool video::init_console()
+{
+    if(!g_pImg && g_sizex && g_sizey) {
+        dispdepth = 24; red_shift = 16; vidtype = 3; // fake video
+        g_pImg = new unsigned int[g_sizex*g_sizey];
+        running = true;
+    }
+    return true;
+}
+
+void video::terminate()
+{
+    running = false;
+    if(dpy) {
+        vidtype = 3; // stop video
+        if(threaded) { pthread_mutex_lock(&g_mutex); pthread_mutex_unlock(&g_mutex); }
+        if(ximage) { XDestroyImage(ximage); ximage = 0; g_pImg = 0; } // it frees g_pImg for vidtype == 0
+#ifndef X_NOSHMEM
+        if(pixmap) XFreePixmap(dpy, pixmap);
+        if(shmseginfo.shmaddr) { XShmDetach(dpy, &shmseginfo); shmdt(shmseginfo.shmaddr); g_pImg = 0; }
+        if(shmseginfo.shmid >= 0) shmctl(shmseginfo.shmid, IPC_RMID, NULL);
+#endif
+        if(gc) XFreeGC(dpy, gc);
+        if(win) XDestroyWindow(dpy, win);
+        XCloseDisplay(dpy); dpy = 0;
+    }
+    if(g_pImg) { delete[] g_pImg; g_pImg = 0; } // if was allocated for console mode
+}
+
+video::~video()
+{
+    if(g_video) terminate();
+    g_video = 0;
+}
+
+//! Do standart event loop
+void video::main_loop()
+{
+    struct timezone tz; gettimeofday(&g_time, &tz);
+    on_process();
+}
+
+//! Check for pending events once
+bool video::next_frame()
+{
+	if(!running) return false;
+    //! try acquire mutex if threaded code, returns on failure
+    if(vidtype == 3 || threaded && pthread_mutex_trylock(&g_mutex))
+        return running;
+    //! Refresh screen picture
+    g_fps++;
+#ifndef X_NOSHMPIX
+    if(vidtype == 2 && updating) XClearWindow(dpy, win);
+#endif
+    while( XPending(dpy) ) {
+        XEvent report; XNextEvent(dpy, &report);
+        switch( report.type ) {
+            case ClientMessage:
+                if(report.xclient.format != 32 || report.xclient.data.l[0] != _XA_WM_DELETE_WINDOW) break;
+            case DestroyNotify:
+                running = false;
+            case KeyPress:
+                on_key( XLookupKeysym(&report.xkey, 0) ); break;
+            case ButtonPress:
+                on_mouse( report.xbutton.x, report.xbutton.y, report.xbutton.button ); break;
+            case ButtonRelease:
+                on_mouse( report.xbutton.x, report.xbutton.y, -report.xbutton.button ); break;
+        }
+    }
+    struct timezone tz; struct timeval now_time; gettimeofday(&now_time, &tz);
+    double sec = (now_time.tv_sec+1.0*now_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0);
+    if(sec > 1) {
+        memcpy(&g_time, &now_time, sizeof(g_time));
+        if(calc_fps) {
+            double fps = g_fps; g_fps = 0;
+            char buffer[256]; snprintf(buffer, 256, "%s%s: %d fps", title, updating?"":" (no updating)", int(fps/sec));
+            XStoreName(dpy, win, buffer);
+        }
+#ifndef X_FULLSYNC
+        XSync(dpy, false); // It is often better then using XSynchronize(dpy, true)
+#endif//X_FULLSYNC
+  	}
+  	if(threaded) pthread_mutex_unlock(&g_mutex);
+    return true;
+}
+
+//! Change window title
+void video::show_title()
+{
+    if(vidtype < 3)
+        XStoreName(dpy, win, title);
+}
+
+drawing_area::drawing_area(int x, int y, int sizex, int sizey)
+    : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(dispdepth),
+    base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg)
+{
+    assert(x < g_sizex); assert(y < g_sizey);
+    assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey);
+
+    index = base_index; // current index
+}
+
+drawing_area::~drawing_area()
+{
+    if(!g_video->updating) return;
+#ifndef X_NOSHMEM
+    switch(vidtype) {
+    case 0:
+#endif
+        pthread_mutex_lock(&g_mutex);
+        if(vidtype == 0) XPutImage(dpy, win, gc, ximage, start_x, start_y, start_x, start_y, size_x, size_y);
+        pthread_mutex_unlock(&g_mutex);
+#ifndef X_NOSHMEM
+        break;
+    case 1:
+        pthread_mutex_lock(&g_mutex);
+        if(vidtype == 1) XShmPutImage(dpy, win, gc, ximage, start_x, start_y, start_x, start_y, size_x, size_y, false);
+        pthread_mutex_unlock(&g_mutex);
+        break;
+    /*case 2: make it in next_frame(); break;*/
+    }
+#endif
+}
diff --git a/examples/common/index.html b/examples/common/index.html
new file mode 100644
index 0000000..855338a
--- /dev/null
+++ b/examples/common/index.html
@@ -0,0 +1,36 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains common code that is used in the Threading Building Blocks examples.
+
+<P>
+This code is not intended to be used directly.  It is incorporated automatically by the examples that need it.
+</P>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="gui">gui</A>
+<DD>GUI code for examples that have graphical user interfaces.  Currently supports:
+    <UL>
+    <LI>GDI+*, Direct Draw (Windows* systems)
+    <LI>OpenGL* (Mac OS* X systems)
+    <LI>X-windows (Linux* or Mac OS* X systems)
+    </UL>
+    See the examples that use the GUI
+    (<A HREF=../parallel_for/tacheon/index.html>tacheon</A> and <A HREF=../parallel_for/seismic/index.html>seismic</A>)
+    for more details.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/examples/concurrent_hash_map/count_strings/Makefile b/examples/concurrent_hash_map/count_strings/Makefile
new file mode 100644
index 0000000..2e9494b
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/Makefile
@@ -0,0 +1,47 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+PROG=count_strings
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug
+
+clean:
+	rm -f $(PROG) *.o *.d
+
+test:
+	./$(PROG) 1
+	./$(PROG) 2
+	./$(PROG) 4
diff --git a/examples/concurrent_hash_map/count_strings/Makefile.windows b/examples/concurrent_hash_map/count_strings/Makefile.windows
new file mode 100644
index 0000000..f478790
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/Makefile.windows
@@ -0,0 +1,47 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Count_Strings
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS)
+debug:
+	$(CXX) *.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS)
+clean:
+	@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest
+test:
+	$(PROG)  1
+	$(PROG)  2
+	$(PROG)  4
diff --git a/examples/concurrent_hash_map/count_strings/count_strings.cpp b/examples/concurrent_hash_map/count_strings/count_strings.cpp
new file mode 100644
index 0000000..adea8a5
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/count_strings.cpp
@@ -0,0 +1,172 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_hash_map.h"
+#include "tbb/blocked_range.h"
+#include "tbb/parallel_for.h"
+#include "tbb/tick_count.h"
+#include "tbb/task_scheduler_init.h"
+#include <string>
+#include <cctype>
+
+using namespace tbb;
+using namespace std;
+
+//! Set to true to counts.
+static bool Verbose = false;
+//! Working threads count
+static int NThread = 1;
+//! Problem size
+const size_t N = 1000000;
+//! Indicates if the number of threads wasn't set explicitly
+static bool is_number_of_threads_set = false;
+
+//! Structure that defines hashing and comparison operations for user's type.
+struct MyHashCompare {
+    static size_t hash( const string& x ) {
+        size_t h = 0;
+        for( const char* s = x.c_str(); *s; s++ )
+            h = (h*17)^*s;
+        return h;
+    }
+    //! True if strings are equal
+    static bool equal( const string& x, const string& y ) {
+        return x==y;
+    }
+};
+
+//! A concurrent hash table that maps strings to ints.
+typedef concurrent_hash_map<string,int,MyHashCompare> StringTable;
+
+//! Function object for counting occurrences of strings.
+struct Tally {
+    StringTable& table;
+    Tally( StringTable& table_ ) : table(table_) {}
+    void operator()( const blocked_range<string*> range ) const {
+        for( string* p=range.begin(); p!=range.end(); ++p ) {
+            StringTable::accessor a;
+            table.insert( a, *p );
+            a->second += 1;
+        }
+    }
+};
+
+static string Data[N];
+
+static void CountOccurrences(int nthreads) {
+    StringTable table;
+
+    tick_count t0 = tick_count::now();
+    parallel_for( blocked_range<string*>( Data, Data+N, 1000 ), Tally(table) );
+    tick_count t1 = tick_count::now();
+
+    int n = 0;
+    for( StringTable::iterator i=table.begin(); i!=table.end(); ++i ) {
+        if( Verbose )
+            printf("%s %d\n",i->first.c_str(),i->second);
+        n+=i->second;
+    }
+    if (is_number_of_threads_set) {
+        printf("threads = %d  total = %d  time = %g\n", nthreads, n, (t1-t0).seconds());
+    }else{
+        if ( nthreads == 1 ){
+            printf("serial run   total = %d  time = %g\n", n, (t1-t0).seconds());
+        }else{
+            printf("parallel run total = %d  time = %g\n", n, (t1-t0).seconds());
+        }
+    }
+}
+
+static const string Adjective[] = {
+    "sour",
+    "sweet",
+    "bitter",
+    "salty",
+    "big",
+    "small"
+};
+
+static const string Noun[] = {
+    "apple",
+    "banana",
+    "cherry",
+    "date",
+    "eggplant",
+    "fig",
+    "grape",
+    "honeydew",
+    "icao",
+    "jujube"
+};
+
+static void CreateData() {
+    size_t n_adjective = sizeof(Adjective)/sizeof(Adjective[0]);
+    size_t n_noun = sizeof(Noun)/sizeof(Noun[0]);
+    for( int i=0; i<N; ++i ) {
+        Data[i] = Adjective[rand()%n_adjective];
+        Data[i] += " ";
+        Data[i] += Noun[rand()%n_noun];
+    }
+}
+
+static void ParseCommandLine( int argc, char* argv[] ) {
+    int i = 1;
+    if( i<argc && strcmp( argv[i], "verbose" )==0 ) {
+        Verbose = true;
+        ++i;
+    }
+    if( i<argc && !isdigit(argv[i][0]) ) {
+        fprintf(stderr,"Usage: %s [verbose] [number-of-threads]\n",argv[0]);
+        exit(1);
+    }
+    if( i<argc ) {
+        NThread = strtol(argv[i++],0,0);
+        is_number_of_threads_set = true;
+    }
+}
+
+int main( int argc, char* argv[] ) {
+    srand(2);
+    ParseCommandLine( argc, argv );
+    if (is_number_of_threads_set) {
+        task_scheduler_init init(NThread);
+        CreateData();
+        CountOccurrences(NThread);
+    } else { // Number of threads wasn't set explicitly. Run serial and parallel version
+        { // serial run
+            task_scheduler_init init_serial(1);
+            CreateData();
+            CountOccurrences(1);
+        }
+        { // parallel run (number of threads is selected automatically)
+            task_scheduler_init init_parallel;
+            CreateData();
+            CountOccurrences(0);
+        }
+    }
+}
diff --git a/examples/concurrent_hash_map/count_strings/index.html b/examples/concurrent_hash_map/count_strings/index.html
new file mode 100644
index 0000000..46c7cbf
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/index.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Example program that demonstrates template class concurrent_hash_map.
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="count_strings.cpp">count_strings.cpp</A>
+<DD>Source code for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>count_strings [verbose] [<I>N</I>]</TT>
+<DD><I>N</I> is the number of threads to be used.  The "verbose" option enables printing of extra
+    debug information during execution.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with the desired number of threads, e.g., <TT>count_strings 4</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.sln b/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.sln
new file mode 100644
index 0000000..2424739
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "count_strings", "count_strings.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411C}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{C931C7A2-074E-4150-9E7A-39A03250411C}.Debug.ActiveCfg = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411C}.Debug.Build.0 = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411C}.Release.ActiveCfg = Release|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411C}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.suo b/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.suo
new file mode 100644
index 0000000..ac4c9d5
Binary files /dev/null and b/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.suo differ
diff --git a/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.vcproj b/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.vcproj
new file mode 100644
index 0000000..f34b173
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/vc7.1/count_strings.vcproj
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="count_strings"
+	ProjectGUID="{C931C7A2-074E-4150-9E7A-39A03250411C}"
+	RootNamespace="count_strings"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\count_strings.cpp">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/concurrent_hash_map/count_strings/vc8/count_strings.sln b/examples/concurrent_hash_map/count_strings/vc8/count_strings.sln
new file mode 100644
index 0000000..73768d9
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/vc8/count_strings.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "count_strings", "count_strings.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252C}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/concurrent_hash_map/count_strings/vc8/count_strings.suo b/examples/concurrent_hash_map/count_strings/vc8/count_strings.suo
new file mode 100644
index 0000000..83be2c2
Binary files /dev/null and b/examples/concurrent_hash_map/count_strings/vc8/count_strings.suo differ
diff --git a/examples/concurrent_hash_map/count_strings/vc8/count_strings.vcproj b/examples/concurrent_hash_map/count_strings/vc8/count_strings.vcproj
new file mode 100644
index 0000000..d804fcc
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/vc8/count_strings.vcproj
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="count_strings"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A252C}"
+	RootNamespace="count_strings"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\count_strings.cpp"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj b/examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..69385b8
--- /dev/null
+++ b/examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj
@@ -0,0 +1,296 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A1F593A60B8F042A00073279 /* count_strings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* count_strings.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8DD76F6C0486A84900D96B5E /* count_strings */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = count_strings; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F593A50B8F042A00073279 /* count_strings.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = count_strings.cpp; path = ../count_strings.cpp; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* count_strings */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = count_strings;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593A50B8F042A00073279 /* count_strings.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* count_strings */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* count_strings */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "count_strings" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = count_strings;
+			productInstallPath = "$(HOME)/bin";
+			productName = count_strings;
+			productReference = 8DD76F6C0486A84900D96B5E /* count_strings */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "count_strings" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* count_strings */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* count_strings */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593A60B8F042A00073279 /* count_strings.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = count_strings;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = count_strings;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = count_strings;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = count_strings;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "count_strings" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "count_strings" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/concurrent_hash_map/index.html b/examples/concurrent_hash_map/index.html
new file mode 100644
index 0000000..efa546c
--- /dev/null
+++ b/examples/concurrent_hash_map/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has examples of the template <code>concurrent_hash_map</code>.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="count_strings/index.html">count_strings</A>
+<DD>Concurrently inserts strings into a concurrent_hash_map.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/index.html b/examples/index.html
new file mode 100644
index 0000000..309ef51
--- /dev/null
+++ b/examples/index.html
@@ -0,0 +1,172 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has example usages of Threading Building Blocks.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="GettingStarted/index.html">GettingStarted</A>
+<DD>Examples from the <A HREF="../doc/Getting_Started.pdf">Getting Started Guide</A>.
+<DT><A HREF="concurrent_hash_map/index.html">concurrent_hash_map</A>
+<DD>Examples using <CODE>concurrent_hash_map</CODE>.
+<DT><A HREF="parallel_for/index.html">parallel_for</A>
+<DD>Examples using <CODE>parallel_for</CODE>.
+<DT><A HREF="parallel_reduce/index.html">parallel_reduce</A>
+<DD>Examples using <CODE>parallel_reduce</CODE>.
+<DT><A HREF="parallel_while/index.html">parallel_while</A>
+<DD>Examples using <CODE>parallel_while</CODE>.
+<DT><A HREF="pipeline/index.html">pipeline</A>
+<DD>Examples using <CODE>pipeline</CODE>.
+<DT><A HREF="task/index.html">task</A>
+<DD>Examples using raw <CODE>task</CODE> interface.
+<DT><A HREF="test_all/index.html">test_all</A>
+<DD>Examples that test all the parts of the package.
+<DT><A HREF="common/index.html">common</A>
+<DD>Common files for building various examples.  Not used directly.
+</DL>
+
+<A NAME=build><H2>To Build</H2></A>
+Build each example by using one of the following methods.  The specific directions for each
+method can be found below.
+<UL>
+<LI>Build by using a <A HREF=#build_1>Microsoft* Visual Studio* project (Windows* systems only)</A>.
+<LI>Build by using a <A HREF=#build_2>Xcode* IDE project (Mac OS* X systems only)</A>.
+<LI>Build by using a <A HREF=#build_3>Makefile (Windows*, Linux* or Mac OS* X systems)</A>.
+</UL>
+
+<P>
+Some of the following directions refer to a shell window; this refers
+to the command prompt environment/window normally used on your system.
+A shell might be a cmd.exe command prompt window (Windows* systems), or a
+sh, bash, csh, ksh, etc. (or compatible) shell window (Windows*, Linux* or Mac OS* X systems).
+</P>
+
+<A NAME=build_1><H4>To build by using a Microsoft* Visual Studio* project (Windows* systems):</H4></A>
+Perform the following steps:
+<OL>
+<LI>Identify the solution (*.sln) file for the example you wish to build and run.
+    <UL>
+    <LI>For Microsoft* Visual Studio* .NET 2003, the *.sln file is in the example's vc7.1 sub-directory.
+    <LI>For Microsoft* Visual Studio* 2005, the *.sln file is in the example's vc8 sub-directory.
+    </UL>
+<LI>Open the project by using one of the following methods:
+    <UL>
+    <LI>Navigate to the *.sln file from My Computer, by using Windows Explorer, or by using another file browser.
+	Double-click the *.sln file to invoke Microsoft* Visual Studio* and open the project.
+    <LI>Invoke Microsoft* Visual Studio* from the Start menu and use the "Open Project" dialog to navigate to
+	and open the project.
+    </UL>
+<LI>Press <ctrl-F5> to build and run the example.
+</OL>
+
+<A NAME=build_2><H4>To build by using a Xcode* IDE project (Mac OS* X systems):</H4></A>
+Perform the following steps:
+<OL>
+<LI>Identify the project (*.xcodeproj) file for the example you wish to build and run.
+    <UL>
+    <LI>The *.xcodeproj file is in the example's xcode sub-directory.
+    </UL>
+<LI>Open the project by using one of the following methods:
+    <UL>
+    <LI>Navigate to the *.xcodeproj file by using the Finder.
+	Double-click the *.xcodeproj file to invoke the Xcode* IDE and open the project.
+    <LI>Invoke the Xcode* IDE and use the "File ⇒ Open…" dialog to navigate to
+	and open the project.
+    </UL>
+<LI>Press <Apple-R>, or press the "Build and Go" button in the toolbox, to build and run the example.
+</OL>
+
+<A NAME=build_3><H4>To build by using a Makefile (Windows*, Linux* or Mac OS* X systems):</H4></A>
+Perform the following steps:
+<OL>
+<LI>Open a shell window.  For Windows* systems, make sure this shell window has the proper environment
+    defined for use with Microsoft* Visual Studio* (.NET 2003 or 2005); such a shell can be invoked
+    from the Start menu, under Visual Studio, Visual Studio Tools, Visual Studio Command Prompt.
+<LI>Set up the environment in this shell window for use with Threading Building Blocks.
+    <BR>See below for how to set up the environment for
+	<A HREF=#env_1>Windows*</A>, <A HREF=#env_23>Linux*</A> or <A HREF=#env_23>Mac OS* X</A> systems.
+<LI>Unless you installed Threading Building Blocks yourself, you may not have write permissions
+    to the directory containing the example.  In this case, make a copy of the example, and use the copy
+    for the following steps.
+<LI>In the shell window, navigate to the directory for the example
+    (or to the directory for the copy of the example if you made one in the previous step).
+<LI>Use one or more of the following commands to build and run the example.
+    Here, make refers to the make command normally used on your system: this could be
+    nmake, gmake, or make on Windows* systems, or make or gmake on Linux* or Mac OS* X systems.
+    <DL>
+    <DT><TT>make</TT>
+    <DD>Default build and run.  Equivalent to 'make release test'.
+    <DT><TT>make release</TT>
+    <DD>Compile and link against the release version of the Threading Building Blocks library.
+	The resulting executable is left in the directory for the example.
+    <DT><TT>make debug</TT>
+    <DD>Compile and link against the debug version of the Threading Building Blocks library.
+	The resulting executable is left in the directory for the example.
+    <DT><TT>make test</TT>
+    <DD>Run an executable previously produced by one of the above commands.
+    <DT><TT>make <B>[</B>(above options or targets)<B>]</B> CXX=<B>{</B>icl, icc<B>}</B></TT>
+    <DD>Build and run as above, but use Intel® compilers instead of default, native compilers
+	(e.g., icl instead of cl.exe on Windows* systems, or icc instead of g++ on Linux* or Mac OS* X systems).
+    <DT><TT>make clean</TT>
+    <DD>Remove any executables or intermediate files produced by the above commands.
+    </DL>
+</OL>
+
+<A NAME=env_1><H4>To set up the environment (Windows* systems):</H4></A>
+It is <B>strongly</B> recommended that the environment be set up when installing Threading Building Blocks.
+Do this by selecting the appropriate check-box during the install.  However, if the environment is not set up
+during installation, or you wish to build for an alternate architecture or Microsoft* Visual Studio* version,
+it may be set up, for a given type of shell window, by using one of the following commands:
+<DL>
+<DT>For cmd.exe (command prompt):
+<DD><TT><<I>installdir</I>>\{ia32,em64t}\{vc7.1,vc8}\bin\tbbvars.bat</TT>
+<DT>For sh, bash, ksh (or compatibles):
+<DD><TT>. <<I>installdir</I>>\{ia32,em64t}\{vc7.1,vc8}\bin\tbbvars.sh</TT>
+<DT>For csh (or compatibles):
+<DD><TT>source <<I>installdir</I>>\{ia32,em64t}\{vc7.1,vc8}\bin\tbbvars.csh</TT>
+<DT><I>Notes:</I>
+<DD><I><SL>
+    <LI>Choose one of {ia32,em64t} depending on the architecture to be used.
+    <LI>Choose one of {vc7.1,vc8} depending on whether Microsoft* Visual Studio* .NET 2003 or
+	Microsoft* Visual Studio* 2005 is to be used.
+    <LI>Environment setup need only be performed once per shell window to be used.
+    <LI>Always source tbbvars.sh or tbbvars.csh rather than executing them directly.
+    </SL></I>
+</DL>
+
+<A NAME=env_23><H4>To set up the environment (Linux* or Mac OS* X systems):</H4></A>
+The environment may be set up, for a given type of shell window, by using one of the following commands:
+<DL>
+<DT>For sh, bash, ksh (or compatibles):
+<DD>. <<I>installdir</I>>/bin/tbbvars.sh
+<DT>For csh (or compatibles):
+<DD>source <<I>installdir</I>>/tbbvars.csh
+<DT>For sh, bash, ksh (or compatibles), when using an alternate architecture or platform:
+<DD>. <<I>installdir</I>>/{ia32,em64t,itanium}/cc<<I>gccversion</I>>_libc<<I>libcversion</I>>_kernel<<I>kernelversion</I>>/bin/tbbvars.sh
+<DT>For csh (or compatibles), when using an alternate architecture or platform:
+<DD>source <<I>installdir</I>>/{ia32,em64t,itanium}/cc<<I>gccversion</I>>_libc<<I>libcversion</I>>_kernel<<I>kernelversion</I>>/bin/tbbvars.csh
+<DT><I>Notes:</I>
+<DD><I><SL>
+    <LI>Choose one of {ia32,em64t,itanium} depending on the architecture to be used.
+    <LI>Choose a cc<<I>gccversion</I>>_libc<<I>libcversion</I>>_kernel<<I>kernelversion</I>>
+	value, from among the available platforms installed with Threading Building Blocks
+	(for <A HREF=../ia32>ia32</A>, <A HREF=../em64t>em64t</A> or <A HREF=../itanium>itanium</A>),
+	depending on the platform to be used.
+    <LI>Environment setup need only be performed once per shell window to be used.
+    <LI>Always source tbbvars.sh or tbbvars.csh rather than executing them directly.
+    </SL></I>
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/examples/parallel_for/index.html b/examples/parallel_for/index.html
new file mode 100644
index 0000000..7c00ae0
--- /dev/null
+++ b/examples/parallel_for/index.html
@@ -0,0 +1,27 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has examples of the template <code>parallel_for</code>.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="seismic/index.html">seismic</A>
+<DD>Parallel seismic wave simulation.
+<DT><A HREF="tacheon/index.html">tacheon</A>
+<DD>Parallel 2-D raytracer/renderer.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/parallel_for/seismic/Makefile b/examples/parallel_for/seismic/Makefile
new file mode 100644
index 0000000..4421f55
--- /dev/null
+++ b/examples/parallel_for/seismic/Makefile
@@ -0,0 +1,96 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+NAME=seismic
+
+# The C++ compiler
+#CXX=g++
+
+# detecting x64
+ifeq ($(shell arch),x86_64)
+x64 ?= 64
+endif
+# detecting UI ("mac", "x" or "con")
+ifeq ($(shell uname),Darwin)
+UI ?= mac
+else
+UI ?= $(shell sh -c "[ -f /usr/X11R6/lib$(x64)/libX11.so -o -f /usr/lib$(x64)/libX11.so ] && echo x || echo con")
+endif
+
+
+ifeq ($(UI),x)
+EXE=./$(NAME)
+CXXFLAGS += -I/usr/X11R6/include
+LIBS += -lpthread -L/usr/X11R6/lib$(x64) -lX11
+# detect if libXext can be found
+ifeq ($(shell sh -c "[ -f /usr/X11R6/lib$(x64)/libXext.so -o -f /usr/lib$(x64)/libXext.so ] && echo 0"),0)
+LIBS += -lXext
+else  # no libXext
+CXXFLAGS += -DX_NOSHMEM
+endif # libXext
+else # ! X
+
+ifeq ($(UI),mac)
+TBBLIBS = /Library/Frameworks/TBB.framework/Libraries
+CXXFLAGS += -L$(TBBLIBS) -arch i386 -mmacosx-version-min=10.4 -fno-rtti -msse3 -ftree-vectorize
+LIBS += -framework OpenGL -framework AGL -framework Carbon
+APPRES = $(NAME).app/Contents/Resources
+EXE = ./$(NAME).app/Contents/MacOS/$(NAME)
+PBXCP = /System/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -resolve-src-symlinks -exclude .DS_Store -exclude CVS
+else # ! Mac
+UI=con
+EXE=./$(NAME)
+endif # Mac
+endif # X
+
+all:	release test
+
+resources:
+ifeq ($(UI),mac)
+	mkdir -p $(APPRES)/English.lproj $(NAME).app/Contents/MacOS
+	$(PBXCP) xcode/English.lproj/InfoPlist.strings xcode/English.lproj/main.nib $(APPRES)/English.lproj
+	$(PBXCP) xcode/Info.plist $(APPRES)
+endif
+
+release: ../../common/gui/$(UI)video.cpp SeismicSimulation.cpp resources
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(EXE) $< *.cpp -ltbb $(LIBS)
+
+debug: ../../common/gui/$(UI)video.cpp SeismicSimulation.cpp resources
+	$(CXX) -g -O0 -DTBB_DO_ASSERT $(CXXFLAGS) -o $(EXE) $< *.cpp -ltbb_debug $(LIBS)
+
+clean:
+	rm -f $(EXE) *.o *.d
+ifeq ($(UI),mac)
+	rm -rf $(NAME).app
+endif
+
+test:
+ifeq ($(UI),mac)
+	export DYLD_LIBRARY_PATH="$(DYLD_LIBRARY_PATH):$(TBBLIBS)"; $(EXE) - 300
+else
+	$(EXE) - 300
+endif
diff --git a/examples/parallel_for/seismic/Makefile.windows b/examples/parallel_for/seismic/Makefile.windows
new file mode 100644
index 0000000..c4449d5
--- /dev/null
+++ b/examples/parallel_for/seismic/Makefile.windows
@@ -0,0 +1,59 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Seismic
+
+# The C++ compiler options
+CXX = cl.exe
+
+# Uncomment one of next lines to choose user interface type (console, gdiplus, direct draw)
+#UI = con
+UI = gdi
+#UI = dd
+
+# Machine architecture, auto-detected from TBB_ARCH_PLATFORM by default
+# Use XARCH variable to change it. See index.html for more information
+ARCH0 = $(TBB_ARCH_PLATFORM)-
+ARCH1 = $(ARCH0:\vc7.1-=)
+ARCH2 = $(ARCH1:\vc8-=)
+ARCH3 = $(ARCH2:ia32=x86)
+ARCH4 = $(ARCH3:em64t=AMD64)
+XARCH = $(ARCH4:-=x86)
+
+MAKEINC = ../../common/gui/Makefile.win
+
+all: release test
+release:
+	@$(MAKE) -f $(MAKEINC) UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LFLAGS="$(LDFLAGS) tbb.lib" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE=SeismicSimulation.cpp EXE=$(PROG).exe build_one
+debug:
+	@$(MAKE) -f $(MAKEINC) UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS) /D TBB_DO_ASSERT" LFLAGS="$(LDFLAGS) tbb_debug.lib" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE=SeismicSimulation.cpp EXE=$(PROG).exe build_one
+clean:
+	@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest vc7.1\SeismicSimulation.res
+test:
+	$(PROG) - 300
diff --git a/examples/parallel_for/seismic/SeismicSimulation.cpp b/examples/parallel_for/seismic/SeismicSimulation.cpp
new file mode 100644
index 0000000..f5c2008
--- /dev/null
+++ b/examples/parallel_for/seismic/SeismicSimulation.cpp
@@ -0,0 +1,415 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+//#define _CRT_SECURE_NO_DEPRECATE
+#define VIDEO_WINMAIN_ARGS
+#include "../../common/gui/video.h"
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
+#include <cctype>
+#include <cassert>
+#include <math.h>
+#include "tbb/task_scheduler_init.h"
+#include "tbb/blocked_range.h"
+#include "tbb/parallel_for.h"
+#include "tbb/tick_count.h"
+
+#ifdef _MSC_VER
+// warning C4068: unknown pragma
+#pragma warning(disable: 4068)
+#endif
+
+#define DEFAULT_NUMBER_OF_FRAMES 100
+int number_of_frames = -1;
+const size_t MAX_WIDTH = 1024;
+const size_t MAX_HEIGHT = 512;
+
+int UniverseHeight=MAX_HEIGHT;
+int UniverseWidth=MAX_WIDTH;
+int GrainSize = 32;
+
+typedef float value;
+static value V[MAX_HEIGHT][MAX_WIDTH];
+static value S[MAX_HEIGHT][MAX_WIDTH];
+static value T[MAX_HEIGHT][MAX_WIDTH];
+static value M[MAX_HEIGHT];
+
+enum MaterialType {
+    WATER=0,
+    SANDSTONE=1,
+    SHALE=2
+};
+
+//! Values are MaterialType, cast to an unsigned char to save space.
+static unsigned char Material[MAX_HEIGHT];
+
+static const colorcomp_t MaterialColor[4][3] = { // BGR
+    {96,0,0},     // WATER
+    {0,48,48},    // SANDSTONE
+    {32,32,23}    // SHALE
+};
+
+static const int DamperSize = 32;
+static value Damper[DamperSize];
+
+static const int ColorMapSize = 1024;
+static color_t ColorMap[4][ColorMapSize];
+
+static int PulseTime = 100;
+static int PulseCounter;
+static int PulseX = UniverseWidth/3;
+static int PulseY = UniverseHeight/4;
+
+static bool InitIsParallel = true;
+const char *titles[2] = {"Seismic Simulation: Serial", "Seismic Simulation: Parallel"};
+//! It is used for console mode for test with different number of threads and also has
+//! meaning for gui: threads_low  - use sepatate event/updating loop thread (>0) or not (0).
+//!                  threads_high - initialization value for scheduler
+int threads_low = 0, threads_high = tbb::task_scheduler_init::automatic;
+
+static void UpdatePulse() {
+    if( PulseCounter>0 ) {
+        value t = (PulseCounter-PulseTime/2)*0.05f;
+        V[PulseY][PulseX] += 64*sqrt(M[PulseY])*exp(-t*t);
+        --PulseCounter;
+    }
+}
+
+static void SerialUpdateStress() {
+    drawing_area drawing(0, 0, UniverseWidth, UniverseHeight);
+    for( int i=1; i<UniverseHeight-1; ++i ) {
+        color_t* c = ColorMap[Material[i]];
+        drawing.set_pos(1, i);
+#pragma ivdep
+        for( int j=1; j<UniverseWidth-1; ++j ) {
+            S[i][j] += (V[i][j+1]-V[i][j]);
+            T[i][j] += (V[i+1][j]-V[i][j]);
+            int index = (int)(V[i][j]*(ColorMapSize/2)) + ColorMapSize/2;
+            if( index<0 ) index = 0;
+            if( index>=ColorMapSize ) index = ColorMapSize-1;
+            drawing.put_pixel(c[index]);
+        }
+    }
+}
+
+struct UpdateStressBody {
+    void operator()( const tbb::blocked_range<int>& range ) const {
+        drawing_area drawing(0, range.begin(), UniverseWidth, range.end()-range.begin());
+        int i_end = range.end();
+        for( int y = 0, i=range.begin(); i!=i_end; ++i,y++ ) {
+            color_t* c = ColorMap[Material[i]];
+            drawing.set_pos(1, y);
+#pragma ivdep
+            for( int j=1; j<UniverseWidth-1; ++j ) {
+                S[i][j] += (V[i][j+1]-V[i][j]);
+                T[i][j] += (V[i+1][j]-V[i][j]);
+                int index = (int)(V[i][j]*(ColorMapSize/2)) + ColorMapSize/2;
+                if( index<0 ) index = 0;
+                if( index>=ColorMapSize ) index = ColorMapSize-1;
+                drawing.put_pixel(c[index]);
+            }
+        }
+    }
+};
+
+static void ParallelUpdateStress() {
+    tbb::parallel_for( tbb::blocked_range<int>( 1, UniverseHeight-1, GrainSize ), UpdateStressBody() );
+}
+
+static void SerialUpdateVelocity() {
+    for( int i=1; i<UniverseHeight-1; ++i ) 
+#pragma ivdep
+        for( int j=1; j<UniverseWidth-1; ++j ) {
+            V[i][j] += (S[i][j] - S[i][j-1] + T[i][j] - T[i-1][j])*M[i];
+        }
+}
+
+struct UpdateVelocityBody {
+    void operator()( const tbb::blocked_range<int>& range ) const {
+        int i_end = range.end();
+        for( int i=range.begin(); i!=i_end; ++i ) {
+#pragma ivdep
+            for( int j=1; j<UniverseWidth-1; ++j ) {
+                V[i][j] += (S[i][j] - S[i][j-1] + T[i][j] - T[i-1][j])*M[i];
+            }
+        }
+    }
+};
+
+static void ParallelUpdateVelocity() {
+    tbb::parallel_for( tbb::blocked_range<int>( 1, UniverseHeight-1, GrainSize ), UpdateVelocityBody() );
+}
+
+static void DrainEnergyFromBorders() {
+#pragma ivdep
+    for( int k=1; k<=DamperSize-1; ++k ) {
+        value d = Damper[k];
+        for( int j=1; j<UniverseWidth-1; ++j ) {
+            V[k][j] *= d;
+            V[UniverseHeight-k][j] *= d;
+        }
+        for( int i=1; i<UniverseHeight-1; ++i ) {
+            V[i][k] *= d;
+            V[i][UniverseWidth-k] *= d;
+        }
+    }
+}
+
+void SerialUpdateUniverse() {
+    UpdatePulse();
+    SerialUpdateStress();
+    SerialUpdateVelocity();
+    DrainEnergyFromBorders();
+}
+
+void ParallelUpdateUniverse() {
+    UpdatePulse();
+    ParallelUpdateStress();
+    ParallelUpdateVelocity();
+    DrainEnergyFromBorders();
+}
+
+class seismic_video : public video
+{
+    void on_mouse(int x, int y, int key) {
+        if(key == 1 && PulseCounter == 0) {
+            PulseCounter = PulseTime;
+            PulseX = x; PulseY = y;
+        }
+    }
+    void on_key(int key) {
+        key &= 0xff;
+        if(char(key) == ' ') InitIsParallel = !InitIsParallel;
+        else if(char(key) == 'p') InitIsParallel = true;
+        else if(char(key) == 's') InitIsParallel = false;
+        else if(char(key) == 'e') updating = true;
+        else if(char(key) == 'd') updating = false;
+        else if(key == 27) running = false;
+        title = InitIsParallel?titles[1]:titles[0];
+    }
+    void on_process() {
+        tbb::task_scheduler_init Init(threads_high);
+        do {
+            if( InitIsParallel )
+                ParallelUpdateUniverse();
+            else
+                SerialUpdateUniverse();
+            if( number_of_frames > 0 ) --number_of_frames;
+        } while(next_frame() && number_of_frames);
+    }
+} video;
+
+void InitializeUniverse() {
+    PulseCounter = PulseTime;
+    // Initialize V, S, and T to slightly non-zero values, in order to avoid denormal waves.
+    for( int i=0; i<UniverseHeight; ++i ) 
+#pragma ivdep
+        for( int j=0; j<UniverseWidth; ++j ) {
+            T[i][j] = S[i][j] = V[i][j] = value(1.0E-6);
+        }
+    for( int i=1; i<UniverseHeight-1; ++i ) {
+        value t = (value)i/UniverseHeight;
+        MaterialType m = SANDSTONE;
+        M[i] = 1.0/8;
+        if( t<0.3f ) {
+            m = WATER;
+            M[i] = 1.0/32;
+        } else if( 0.5<=t && t<=0.7 ) {
+            m = SHALE; 
+            M[i] = 1.0/2;
+        }
+        Material[i] = m;
+    }
+    value scale = 2.0f/ColorMapSize;
+    for( int k=0; k<4; ++k ) {
+        for( int i=0; i<ColorMapSize; ++i ) {
+            colorcomp_t c[3];
+            value t = (i-ColorMapSize/2)*scale;
+            value r = t>0 ? t : 0;
+            value b = t<0 ? -t : 0;
+            value g = 0.5f*fabs(t);
+            memcpy(c, MaterialColor[k], sizeof(c));
+            c[2] = colorcomp_t(r*(255-c[2])+c[2]);
+            c[1] = colorcomp_t(g*(255-c[1])+c[1]);
+            c[0] = colorcomp_t(b*(255-c[0])+c[0]);
+            ColorMap[k][i] = video.get_color(c[2], c[1], c[0]);
+        }
+    }
+    value d = 1.0;
+    for( int k=0; k<DamperSize; ++k ) {
+        d *= 1-1.0f/(DamperSize*DamperSize);
+        Damper[DamperSize-1-k] = d;
+    }
+}
+
+//////////////////////////////// Interface ////////////////////////////////////
+#ifdef _WINDOWS
+#include "vc7.1/resource.h"
+#endif
+
+int main(int argc, char *argv[])
+{
+    // threads number init
+    if(argc > 1 && isdigit(argv[1][0])) {
+        char* end; threads_high = threads_low = (int)strtol(argv[1],&end,0);
+        switch( *end ) {
+            case ':': threads_high = (int)strtol(end+1,0,0); break;
+            case '\0': break;
+            default: printf("unexpected character = %c\n",*end);
+        }
+    }
+    if (argc > 2 && isdigit(argv[2][0])){
+        number_of_frames = (int)strtol(argv[2],0,0);
+    }
+    // video layer init
+    video.title = InitIsParallel?titles[1]:titles[0];
+#ifdef _WINDOWS
+    #define MAX_LOADSTRING 100
+    TCHAR szWindowClass[MAX_LOADSTRING];    // the main window class name
+    LoadStringA(video::win_hInstance, IDC_SEISMICSIMULATION, szWindowClass, MAX_LOADSTRING);
+    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+    WNDCLASSEX wcex; memset(&wcex, 0, sizeof(wcex));
+    wcex.lpfnWndProc    = (WNDPROC)WndProc;
+    wcex.hIcon          = LoadIcon(video::win_hInstance, MAKEINTRESOURCE(IDI_SEISMICSIMULATION));
+    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
+    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
+    wcex.lpszMenuName   = LPCTSTR(IDC_SEISMICSIMULATION);
+    wcex.lpszClassName  = szWindowClass;
+    wcex.hIconSm        = LoadIcon(video::win_hInstance, MAKEINTRESOURCE(IDI_SMALL));
+    video.win_set_class(wcex); // ascii convention here
+    video.win_load_accelerators(IDC_SEISMICSIMULATION);
+#endif
+    if(video.init_window(UniverseWidth, UniverseHeight)) {
+        video.calc_fps = true;
+        video.threaded = threads_low > 0;
+        // video is ok, init universe
+        InitializeUniverse();
+        // main loop
+        video.main_loop();
+    }
+    else if(video.init_console()) {
+        // do console mode
+        if(number_of_frames <= 0) number_of_frames = DEFAULT_NUMBER_OF_FRAMES;
+        if(threads_high == tbb::task_scheduler_init::automatic) threads_high = 4;
+        if(threads_high < threads_low) threads_high = threads_low;
+        for( int p = threads_low; p <= threads_high; ++p ) {
+            InitializeUniverse();
+            tbb::task_scheduler_init init(tbb::task_scheduler_init::deferred);
+            if( p > 0 )
+                init.initialize( p );
+            tbb::tick_count t0 = tbb::tick_count::now();
+            if( p > 0 )
+                for( int i=0; i<number_of_frames; ++i )
+                    ParallelUpdateUniverse();
+            else
+                for( int i=0; i<number_of_frames; ++i )
+                    SerialUpdateUniverse();
+            tbb::tick_count t1 = tbb::tick_count::now();
+            printf("%.1f frame per sec", number_of_frames/(t1-t0).seconds());
+            if( p > 0 ) 
+                printf(" with %d way parallelism\n",p);
+            else
+                printf(" with serial version\n"); 
+        }
+    }
+    video.terminate();
+    return 0;
+}
+
+#ifdef _WINDOWS
+//
+//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
+//
+//  PURPOSE:  Processes messages for the main window.
+//
+//  WM_COMMAND  - process the application menu
+//  WM_PAINT    - Paint the main window
+//  WM_DESTROY  - post a quit message and return
+//
+//
+LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    switch (message)
+    {
+    case WM_INITDIALOG: return TRUE;
+    case WM_COMMAND:
+        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
+            EndDialog(hDlg, LOWORD(wParam));
+            return TRUE;
+        }
+        break;
+    }
+    return FALSE;
+}
+
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    int wmId, wmEvent;
+    switch (message) {
+    case WM_COMMAND:
+        wmId    = LOWORD(wParam); 
+        wmEvent = HIWORD(wParam); 
+        // Parse the menu selections:
+        switch (wmId)
+        {
+        case IDM_ABOUT:
+            DialogBox(video::win_hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, (DLGPROC)About);
+            break;
+        case IDM_EXIT:
+            PostQuitMessage(0);
+            break;
+        case ID_FILE_PARALLEL:
+            if( !InitIsParallel ) {
+                InitIsParallel = true;
+                video.title = titles[1];
+            }
+            break;
+        case ID_FILE_SERIAL:
+            if( InitIsParallel ) {
+                InitIsParallel = false;
+                video.title = titles[0];
+            }
+            break;
+        case ID_FILE_ENABLEGUI:
+            video.updating = true;
+            break;
+        case ID_FILE_DISABLEGUI:
+            video.updating = false;
+            break;
+        default:
+            return DefWindowProc(hWnd, message, wParam, lParam);
+        }
+        break;
+    default:
+        return DefWindowProc(hWnd, message, wParam, lParam);
+    }
+    return 0;
+}
+
+#endif
diff --git a/examples/parallel_for/seismic/index.html b/examples/parallel_for/seismic/index.html
new file mode 100644
index 0000000..4385b1d
--- /dev/null
+++ b/examples/parallel_for/seismic/index.html
@@ -0,0 +1,105 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Parallel seismic simulation that demonstrates use of parallel_for.
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="SeismicSimulation.cpp">SeismicSimulation.cpp</A>
+<DD>Source code that does wave propagation.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+The following additional options are supported:
+<DL>
+<DT><TT>make [(general targets: {release, debug} [test])] UI={con, gdi, dd, x, mac}</TT>
+<DD>Build and run as usual, but build with the specified GUI driver: console, GDI+*, Direct Draw*, X11, or OpenGL*
+	(see the description of the <A HREF=../../common/index.html>common GUI code</A>
+	for more information on available graphics support).
+    For Linux* and Mac OS* X systems, the best available driver is detected automatically by the Makefile.
+    For Windows* systems, UI=gdi is the default GUI driver; compiling with UI=dd may offer superior
+	performance, but can only be used if the Microsoft* Direct Draw* SDK is installed on your system 
+	and if overlay is supported by your graphics card.
+    Use UI=con to build without the GUI for use in making performance measurements
+	<I>(strongly recommended when measuring performance or scalability; see note below)</I>.
+<DT><TT>make [(above options or targets)] XARCH=x64</TT>
+<DD>Build and run as above, but also specify XARCH=x64
+    (or XARCH=AMD64 for older compilers) when building the example on Windows* as a 64-bit binary.
+<DT><TT>make [(above options or targets)] DDLIB_DIR=<<I>specify path to library directory of Direct Draw* SDK here</I>></TT>
+<DD>If you experience ddraw.lib linking problems, specify the correct library directory via this option.
+<DT><TT>make [(above options or targets)] CXXFLAGS=-DX_FULLSYNC</TT>
+<DD>Build and run as above, but enable full X11 synchronization if you experience "tearing" of motion on slower video systems.
+</DL>
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>seismic [<I>M</I>[:<I>N</I>] [<I>F</I>]]</TT>
+<DD>For non-interactive mode, <I>M</I> and <I>N</I> are a range of numbers of threads to be used.
+    For interactive mode,  <I>N</I> is the number of threads to use while <I>M</I> indicates if
+    a separate thread will be used for the GUI (>0) or not (0).  For example,
+    <TT>seismic 1:3</TT> will use 3 threads for computation and a separate thread for
+    processing GUI events; this option may give better visible performance on a 4-processor
+    system when using GDI+ graphics.
+<DD><I>F</I> is the number of frames the example processes internally. Default value is 100;
+    reduce it to shorten example run time.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with the desired number of threads and smaller number of frames, e.g., <TT>seismic 4 5</TT>.
+</DL>
+
+<H2>Hot keys</H2>
+The following hot keys can be used in interactive execution mode when the example is compiled with the graphical
+user interface:
+<DL>
+<dt><left mouse button>
+<dd>Starts new seismic wave in place specified by mouse cursor.
+<dt><space>
+<dd>Toggles between parallel and serial execution modes.
+<dt><p>
+<dd>Enables parallel execution mode.
+<dt><s>
+<dd>Enables serial execution mode.
+<dt><e>
+<dd>Enables screen updates.
+<dt><d>
+<dd>Disables screen updates <I>(strongly recommended when measuring performance or scalability; see note below)</I>.
+<dt><esc>
+<dd>Stops execution.
+</DL>
+
+<H2>Notes</H2>
+<UL>
+<LI>While running with the GUI display turned on should yield reasonable performance in most cases, <I>running with the GUI
+    display turned off is strongly recommended</I> in order to demonstrate the full performance and scalability of the example.
+<LI>If using the X-windows (X11) GUI on Mac OS* X systems, X11 might not be installed on the system by default.
+    To install X11 on Mac OS* X systems, use the operating system install disk, choose "Optional installs" and select X11 from
+    the "Applications" list.  Alternatively, if X11 is not available, build without the GUI (see build targets above).
+</UL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/examples/parallel_for/seismic/vc7.1/SeismicSimulation.ico b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.ico
new file mode 100644
index 0000000..d551aa3
Binary files /dev/null and b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.ico differ
diff --git a/examples/parallel_for/seismic/vc7.1/SeismicSimulation.rc b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.rc
new file mode 100644
index 0000000..2be8fab
--- /dev/null
+++ b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.rc
@@ -0,0 +1,146 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_SEISMICSIMULATION   ICON                    "SeismicSimulation.ico"
+IDI_SMALL               ICON                    "small.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDC_SEISMICSIMULATION MENU 
+BEGIN
+    POPUP "&File"
+    BEGIN
+        MENUITEM "&Parallel",                   ID_FILE_PARALLEL
+        MENUITEM "&Serial",                     ID_FILE_SERIAL
+        MENUITEM SEPARATOR
+        MENUITEM "&Enable GUI",                 ID_FILE_ENABLEGUI
+        MENUITEM "&Disable GUI",                ID_FILE_DISABLEGUI
+        MENUITEM SEPARATOR
+        MENUITEM "E&xit",                       IDM_EXIT
+    END
+    POPUP "&Help"
+    BEGIN
+        MENUITEM "&About ...",                  IDM_ABOUT
+    END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDC_SEISMICSIMULATION ACCELERATORS 
+BEGIN
+    VK_OEM_2,       IDM_ABOUT,              VIRTKEY, ALT, NOINVERT
+    "P",            ID_FILE_PARALLEL,       VIRTKEY, ALT, NOINVERT
+    "S",            ID_FILE_SERIAL,         VIRTKEY, ALT, NOINVERT
+    "D",            ID_FILE_DISABLEGUI,     VIRTKEY, ALT, NOINVERT
+    "E",            ID_FILE_ENABLEGUI,      VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG  22, 17, 230, 75
+STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "System"
+BEGIN
+    ICON            IDI_SEISMICSIMULATION,IDC_MYICON,14,9,16,16
+    LTEXT           "SeismicSimulation Version 1.0",IDC_STATIC,49,10,119,8,
+                    SS_NOPREFIX
+    LTEXT           "Copyright (C) 2005",IDC_STATIC,49,20,119,8
+    DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "#include ""windows.h""\r\n"
+    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_APP_TITLE           "SeismicSimulation"
+    IDC_SEISMICSIMULATION   "SEISMICSIMULATION"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/examples/parallel_for/seismic/vc7.1/SeismicSimulation.sln b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.sln
new file mode 100644
index 0000000..e386444
--- /dev/null
+++ b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.sln
@@ -0,0 +1,27 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SeismicSimulation", "SeismicSimulation.vcproj", "{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		DD Debug = DD Debug
+		DD Release = DD Release
+		GDI Debug = GDI Debug
+		GDI Release = GDI Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.DD Debug.ActiveCfg = DD Debug|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.DD Debug.Build.0 = DD Debug|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.DD Release.ActiveCfg = DD Release|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.DD Release.Build.0 = DD Release|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.GDI Debug.ActiveCfg = Debug|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.GDI Debug.Build.0 = Debug|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.GDI Release.ActiveCfg = Release|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}.GDI Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_for/seismic/vc7.1/SeismicSimulation.suo b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.suo
new file mode 100644
index 0000000..c08d453
Binary files /dev/null and b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.suo differ
diff --git a/examples/parallel_for/seismic/vc7.1/SeismicSimulation.vcproj b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.vcproj
new file mode 100644
index 0000000..c6dcb8d
--- /dev/null
+++ b/examples/parallel_for/seismic/vc7.1/SeismicSimulation.vcproj
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="SeismicSimulation"
+	ProjectGUID="{4A021AFA-E254-4BCE-918D-377DF1C0CBEC}"
+	RootNamespace="SeismicSimulation"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include""
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib""
+				GenerateDebugInformation="TRUE"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include""
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include";"$(DXSDK_DIR)\include""
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib";"$(DXSDK_DIR)\lib\x86""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include";"$(DXSDK_DIR)\include""
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib";"$(DXSDK_DIR)\lib\x86""
+				GenerateDebugInformation="TRUE"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\SeismicSimulation.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+			<File
+				RelativePath=".\Resource.h">
+			</File>
+			<File
+				RelativePath=".\SeismicSimulation.ico">
+			</File>
+			<File
+				RelativePath=".\SeismicSimulation.rc">
+			</File>
+			<File
+				RelativePath=".\small.ico">
+			</File>
+		</Filter>
+		<Filter
+			Name="Video Layer"
+			Filter="">
+			<File
+				RelativePath="..\..\..\common\gui\ddvideo.cpp">
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\gdivideo.cpp">
+				<FileConfiguration
+					Name="DD Release|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\video.h">
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\winvideo.h">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/seismic/vc7.1/resource.h b/examples/parallel_for/seismic/vc7.1/resource.h
new file mode 100644
index 0000000..44453d7
--- /dev/null
+++ b/examples/parallel_for/seismic/vc7.1/resource.h
@@ -0,0 +1,32 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by SeismicSimulation.rc
+//
+#define IDC_MYICON                      2
+#define IDD_SEISMICSIMULATION_DIALOG    102
+#define IDS_APP_TITLE                   103
+#define IDD_ABOUTBOX                    103
+#define IDM_ABOUT                       104
+#define IDM_EXIT                        105
+#define IDI_SEISMICSIMULATION           107
+#define IDI_SMALL                       108
+#define IDC_SEISMICSIMULATION           109
+#define IDR_MAINFRAME                   128
+#define ID_FILE_PARALLEL                32771
+#define ID_FILE_SERIAL                  32772
+#define IDM_PARALLEL                    32773
+#define ID_FILE_ENABLEGUI               32774
+#define ID_FILE_DISABLEGUI              32775
+#define IDC_STATIC                      -1
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_NEXT_RESOURCE_VALUE        129
+#define _APS_NEXT_COMMAND_VALUE         32782
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           110
+#endif
+#endif
diff --git a/examples/parallel_for/seismic/vc7.1/small.ico b/examples/parallel_for/seismic/vc7.1/small.ico
new file mode 100644
index 0000000..d551aa3
Binary files /dev/null and b/examples/parallel_for/seismic/vc7.1/small.ico differ
diff --git a/examples/parallel_for/seismic/vc8/SeismicSimulation.ico b/examples/parallel_for/seismic/vc8/SeismicSimulation.ico
new file mode 100644
index 0000000..d551aa3
Binary files /dev/null and b/examples/parallel_for/seismic/vc8/SeismicSimulation.ico differ
diff --git a/examples/parallel_for/seismic/vc8/SeismicSimulation.rc b/examples/parallel_for/seismic/vc8/SeismicSimulation.rc
new file mode 100644
index 0000000..acef197
--- /dev/null
+++ b/examples/parallel_for/seismic/vc8/SeismicSimulation.rc
@@ -0,0 +1,145 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_SEISMICSIMULATION   ICON                    "SeismicSimulation.ico"
+IDI_SMALL               ICON                    "small.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDC_SEISMICSIMULATION MENU 
+BEGIN
+    POPUP "&File"
+    BEGIN
+        MENUITEM "&Parallel",                   ID_FILE_PARALLEL
+        MENUITEM "&Serial",                     ID_FILE_SERIAL
+        MENUITEM SEPARATOR
+        MENUITEM "&Enable GUI",                 ID_FILE_ENABLEGUI
+        MENUITEM "&Disable GUI",                ID_FILE_DISABLEGUI
+        MENUITEM SEPARATOR
+        MENUITEM "E&xit",                       IDM_EXIT
+    END
+    POPUP "&Help"
+    BEGIN
+        MENUITEM "&About ...",                  IDM_ABOUT
+    END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDC_SEISMICSIMULATION ACCELERATORS 
+BEGIN
+    VK_OEM_2,       IDM_ABOUT,              VIRTKEY, ALT, NOINVERT
+    "P",            ID_FILE_PARALLEL,       VIRTKEY, ALT, NOINVERT
+    "S",            ID_FILE_SERIAL,         VIRTKEY, ALT, NOINVERT
+    "D",            ID_FILE_DISABLEGUI,     VIRTKEY, ALT, NOINVERT
+    "E",            ID_FILE_ENABLEGUI,      VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG  22, 17, 230, 75
+STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "System"
+BEGIN
+    ICON            IDI_SEISMICSIMULATION,IDC_MYICON,14,9,16,16
+    LTEXT           "SeismicSimulation Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX
+    LTEXT           "Copyright (C) 2005",IDC_STATIC,49,20,119,8
+    DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "#include ""windows.h""\r\n"
+    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_APP_TITLE           "SeismicSimulation"
+    IDC_SEISMICSIMULATION   "SEISMICSIMULATION"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/examples/parallel_for/seismic/vc8/SeismicSimulation.sln b/examples/parallel_for/seismic/vc8/SeismicSimulation.sln
new file mode 100644
index 0000000..b000587
--- /dev/null
+++ b/examples/parallel_for/seismic/vc8/SeismicSimulation.sln
@@ -0,0 +1,37 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SeismicSimulation", "SeismicSimulation.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2527}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		DD Debug|Win32 = DD Debug|Win32
+		DD Debug|x64 = DD Debug|x64
+		DD Release|Win32 = DD Release|Win32
+		DD Release|x64 = DD Release|x64
+		GDI Debug|Win32 = GDI Debug|Win32
+		GDI Debug|x64 = GDI Debug|x64
+		GDI Release|Win32 = GDI Release|Win32
+		GDI Release|x64 = GDI Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.ActiveCfg = DD Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.Build.0 = DD Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.ActiveCfg = DD Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.Build.0 = DD Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.ActiveCfg = DD Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.Build.0 = DD Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.ActiveCfg = DD Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.Build.0 = DD Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_for/seismic/vc8/SeismicSimulation.suo b/examples/parallel_for/seismic/vc8/SeismicSimulation.suo
new file mode 100644
index 0000000..48336f3
Binary files /dev/null and b/examples/parallel_for/seismic/vc8/SeismicSimulation.suo differ
diff --git a/examples/parallel_for/seismic/vc8/SeismicSimulation.vcproj b/examples/parallel_for/seismic/vc8/SeismicSimulation.vcproj
new file mode 100644
index 0000000..9f6bbf2
--- /dev/null
+++ b/examples/parallel_for/seismic/vc8/SeismicSimulation.vcproj
@@ -0,0 +1,812 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="SeismicSimulation"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A2527}"
+	RootNamespace="SeismicSimulation"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include""
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include""
+				PreprocessorDefinitions="WIN64;_DEBUG;_WINDOWS;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include""
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include""
+				PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include";"$(DXSDK_DIR)\include""
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib";"$(DXSDK_DIR)\lib\x86""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include";"$(DXSDK_DIR)\include""
+				PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib";"$(DXSDK_DIR)\lib\x64""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include";"$(DXSDK_DIR)\include""
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib";"$(DXSDK_DIR)\lib\x86""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories=""$(TBB20_INSTALL_DIR)\include";"$(DXSDK_DIR)\include""
+				PreprocessorDefinitions="WIN64;_DEBUG;_WINDOWS;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib";"$(DXSDK_DIR)\lib\x64""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;h;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\SeismicSimulation.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+			<File
+				RelativePath=".\resource.h"
+				>
+			</File>
+			<File
+				RelativePath=".\SeismicSimulation.ico"
+				>
+			</File>
+			<File
+				RelativePath=".\SeismicSimulation.rc"
+				>
+			</File>
+			<File
+				RelativePath=".\small.ico"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Video Layer"
+			>
+			<File
+				RelativePath="..\..\..\common\gui\ddvideo.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\gdivideo.cpp"
+				>
+				<FileConfiguration
+					Name="DD Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Release|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\video.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\winvideo.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/seismic/vc8/resource.h b/examples/parallel_for/seismic/vc8/resource.h
new file mode 100644
index 0000000..44453d7
--- /dev/null
+++ b/examples/parallel_for/seismic/vc8/resource.h
@@ -0,0 +1,32 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by SeismicSimulation.rc
+//
+#define IDC_MYICON                      2
+#define IDD_SEISMICSIMULATION_DIALOG    102
+#define IDS_APP_TITLE                   103
+#define IDD_ABOUTBOX                    103
+#define IDM_ABOUT                       104
+#define IDM_EXIT                        105
+#define IDI_SEISMICSIMULATION           107
+#define IDI_SMALL                       108
+#define IDC_SEISMICSIMULATION           109
+#define IDR_MAINFRAME                   128
+#define ID_FILE_PARALLEL                32771
+#define ID_FILE_SERIAL                  32772
+#define IDM_PARALLEL                    32773
+#define ID_FILE_ENABLEGUI               32774
+#define ID_FILE_DISABLEGUI              32775
+#define IDC_STATIC                      -1
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_NEXT_RESOURCE_VALUE        129
+#define _APS_NEXT_COMMAND_VALUE         32782
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           110
+#endif
+#endif
diff --git a/examples/parallel_for/seismic/vc8/small.ico b/examples/parallel_for/seismic/vc8/small.ico
new file mode 100644
index 0000000..d551aa3
Binary files /dev/null and b/examples/parallel_for/seismic/vc8/small.ico differ
diff --git a/examples/parallel_for/seismic/xcode/English.lproj/InfoPlist.strings b/examples/parallel_for/seismic/xcode/English.lproj/InfoPlist.strings
new file mode 100644
index 0000000..c0fdfdc
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/English.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Localized versions of Info.plist keys */
+
+NSHumanReadableCopyright = "(C) Intel, 2007";
diff --git a/examples/parallel_for/seismic/xcode/English.lproj/main.nib/classes.nib b/examples/parallel_for/seismic/xcode/English.lproj/main.nib/classes.nib
new file mode 100644
index 0000000..ea58db1
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/English.lproj/main.nib/classes.nib
@@ -0,0 +1,4 @@
+{
+IBClasses = ();
+IBVersion = 1;
+}
diff --git a/examples/parallel_for/seismic/xcode/English.lproj/main.nib/info.nib b/examples/parallel_for/seismic/xcode/English.lproj/main.nib/info.nib
new file mode 100644
index 0000000..642ec2d
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/English.lproj/main.nib/info.nib
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBDocumentLocation</key>
+	<string>662 774 356 240 0 0 1680 1028 </string>
+	<key>IBEditorPositions</key>
+	<dict>
+		<key>29</key>
+		<string>863 618 271 44 0 0 1680 1028 </string>
+	</dict>
+	<key>IBFramework Version</key>
+	<string>443.0</string>
+	<key>IBOldestOS</key>
+	<integer>3</integer>
+	<key>IBOpenObjects</key>
+	<array>
+		<integer>29</integer>
+		<integer>166</integer>
+	</array>
+	<key>IBSystem Version</key>
+	<string>8I1119</string>
+	<key>targetFramework</key>
+	<string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/examples/parallel_for/seismic/xcode/English.lproj/main.nib/objects.xib b/examples/parallel_for/seismic/xcode/English.lproj/main.nib/objects.xib
new file mode 100644
index 0000000..1d06d6c
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/English.lproj/main.nib/objects.xib
@@ -0,0 +1,183 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+  <string name="targetFramework">IBCarbonFramework</string>
+  <object name="rootObject" class="NSCustomObject" id="1">
+    <string name="customClass">NSApplication</string>
+  </object>
+  <array count="22" name="allObjects">
+    <object class="IBCarbonMenu" id="29">
+      <string name="title">main</string>
+      <array count="3" name="items">
+        <object class="IBCarbonMenuItem" id="210">
+          <boolean name="updateSingleItem">TRUE</boolean>
+          <string name="title">Seismic Simulation</string>
+          <object name="submenu" class="IBCarbonMenu" id="211">
+            <string name="title">Seismic Simulation</string>
+            <array count="7" name="items">
+              <object class="IBCarbonMenuItem" id="215">
+                <boolean name="checked">TRUE</boolean>
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Parallel</string>
+                <ostype name="command">para</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="214">
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Serial</string>
+                <ostype name="command">seri</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="216">
+                <boolean name="separator">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="217">
+                <boolean name="checked">TRUE</boolean>
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Enable GUI</string>
+                <ostype name="command">egui</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="218">
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Disable GUI</string>
+                <ostype name="command">dgui</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="213">
+                <boolean name="separator">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="212">
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">About Seismic</string>
+                <int name="keyEquivalentModifier">0</int>
+                <ostype name="command">abou</ostype>
+              </object>
+            </array>
+            <string name="name">_NSAppleMenu</string>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="127">
+          <string name="title">File</string>
+          <object name="submenu" class="IBCarbonMenu" id="131">
+            <string name="title">File</string>
+            <array count="1" name="items">
+              <object class="IBCarbonMenuItem" id="200">
+                <string name="title">Close</string>
+                <string name="keyEquivalent">w</string>
+                <ostype name="command">clos</ostype>
+              </object>
+            </array>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="192">
+          <string name="title">Window</string>
+          <object name="submenu" class="IBCarbonMenu" id="195">
+            <string name="title">Window</string>
+            <array count="5" name="items">
+              <object class="IBCarbonMenuItem" id="190">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Minimize</string>
+                <string name="keyEquivalent">m</string>
+                <ostype name="command">mini</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="197">
+                <string name="title">Zoom</string>
+                <ostype name="command">zoom</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="194">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="196">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Bring All to Front</string>
+                <ostype name="command">bfrt</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="193">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Arrange in Front</string>
+                <int name="keyEquivalentModifier">1572864</int>
+                <ostype name="command">frnt</ostype>
+              </object>
+            </array>
+            <string name="name">_NSWindowsMenu</string>
+          </object>
+        </object>
+      </array>
+      <string name="name">_NSMainMenu</string>
+    </object>
+    <reference idRef="127"/>
+    <reference idRef="131"/>
+    <object class="IBCarbonWindow" id="166">
+      <string name="windowRect">338 353 698 833 </string>
+      <string name="title">Seismic Simulation</string>
+      <object name="rootControl" class="IBCarbonRootControl" id="167">
+        <string name="bounds">0 0 360 480 </string>
+        <string name="viewFrame">0 0 480 360 </string>
+      </object>
+      <boolean name="receiveUpdates">FALSE</boolean>
+      <boolean name="compositing">TRUE</boolean>
+      <int name="themeBrush">-1</int>
+      <boolean name="asyncDrag">TRUE</boolean>
+      <boolean name="doesNotCycle">TRUE</boolean>
+      <int name="WindowMinWidth">320</int>
+      <int name="WindowMinHeight">200</int>
+    </object>
+    <reference idRef="167"/>
+    <reference idRef="190"/>
+    <reference idRef="192"/>
+    <reference idRef="193"/>
+    <reference idRef="194"/>
+    <reference idRef="195"/>
+    <reference idRef="196"/>
+    <reference idRef="197"/>
+    <reference idRef="200"/>
+    <reference idRef="210"/>
+    <reference idRef="211"/>
+    <reference idRef="212"/>
+    <reference idRef="213"/>
+    <reference idRef="214"/>
+    <reference idRef="215"/>
+    <reference idRef="216"/>
+    <reference idRef="217"/>
+    <reference idRef="218"/>
+  </array>
+  <array count="22" name="allParents">
+    <reference idRef="1"/>
+    <reference idRef="29"/>
+    <reference idRef="127"/>
+    <reference idRef="1"/>
+    <reference idRef="166"/>
+    <reference idRef="195"/>
+    <reference idRef="29"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="192"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="131"/>
+    <reference idRef="29"/>
+    <reference idRef="210"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+  </array>
+  <dictionary count="3" name="nameTable">
+    <string>Files Owner</string>
+    <reference idRef="1"/>
+    <string>MainWindow</string>
+    <reference idRef="166"/>
+    <string>MenuBar</string>
+    <reference idRef="29"/>
+  </dictionary>
+  <unsigned_int name="nextObjectID">219</unsigned_int>
+</object>
diff --git a/examples/parallel_for/seismic/xcode/Info.plist b/examples/parallel_for/seismic/xcode/Info.plist
new file mode 100644
index 0000000..d435fca
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>com.intel.tbb.SeismicSimulation</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+</dict>
+</plist>
diff --git a/examples/parallel_for/seismic/xcode/SeismicSimulation.pch b/examples/parallel_for/seismic/xcode/SeismicSimulation.pch
new file mode 100644
index 0000000..bacf499
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/SeismicSimulation.pch
@@ -0,0 +1,5 @@
+//
+// Prefix header for all source files of the 'SeismicSimulation' target in the 'SeismicSimulation' project.
+//
+
+#include <Carbon/Carbon.h>
diff --git a/examples/parallel_for/seismic/xcode/SeismicSimulation.xcodeproj/project.pbxproj b/examples/parallel_for/seismic/xcode/SeismicSimulation.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..b0515d3
--- /dev/null
+++ b/examples/parallel_for/seismic/xcode/SeismicSimulation.xcodeproj/project.pbxproj
@@ -0,0 +1,295 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+		8D0C4E8E0486CD37000505A6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+		A12649490B8392750091D5AD /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */; };
+		A126495E0B83936D0091D5AD /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D0C4E960486CD37000505A6 /* Info.plist */; };
+		A18D2A340B861B99007D8D2C /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A18D2A330B861B99007D8D2C /* libtbb.dylib */; };
+		A1A8F41E0B8B4DBE001C55B1 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1A8F41D0B8B4DBE001C55B1 /* AGL.framework */; };
+		A1A8F4310B8B4EA8001C55B1 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1A8F4300B8B4EA8001C55B1 /* Carbon.framework */; };
+		A1D44D9A0B861E8A0006E401 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A18D2A330B861B99007D8D2C /* libtbb.dylib */; };
+		A1E3E7BD0B3AD4EC007C3AB5 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */; };
+		A1F591A90B8DFC7100073279 /* SeismicSimulation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F591A80B8DFC7100073279 /* SeismicSimulation.cpp */; };
+		A1F591AC0B8DFC9600073279 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F591AA0B8DFC9600073279 /* macvideo.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		A18D2A370B861BB7007D8D2C /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1D44D9A0B861E8A0006E401 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = "<group>"; };
+		32DBCF6D0370B57F00C91783 /* SeismicSimulation.pch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SeismicSimulation.pch; sourceTree = "<group>"; };
+		8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+		8D0C4E970486CD37000505A6 /* SeismicSimulation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SeismicSimulation.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		A18D2A330B861B99007D8D2C /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+		A1A8F41D0B8B4DBE001C55B1 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
+		A1A8F4300B8B4EA8001C55B1 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+		A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
+		A1F591A80B8DFC7100073279 /* SeismicSimulation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SeismicSimulation.cpp; path = ../SeismicSimulation.cpp; sourceTree = SOURCE_ROOT; };
+		A1F591AA0B8DFC9600073279 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = SOURCE_ROOT; };
+		A1F591AB0B8DFC9600073279 /* video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = video.h; path = ../../../common/gui/video.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8D0C4E910486CD37000505A6 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1E3E7BD0B3AD4EC007C3AB5 /* OpenGL.framework in Frameworks */,
+				A12649490B8392750091D5AD /* OpenGL.framework in Frameworks */,
+				A18D2A340B861B99007D8D2C /* libtbb.dylib in Frameworks */,
+				A1A8F41E0B8B4DBE001C55B1 /* AGL.framework in Frameworks */,
+				A1A8F4310B8B4EA8001C55B1 /* Carbon.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		195DF8CFFE9D517E11CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E970486CD37000505A6 /* SeismicSimulation.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		20286C29FDCF999611CA2CEA /* SeismicSimulation */ = {
+			isa = PBXGroup;
+			children = (
+				20286C2AFDCF999611CA2CEA /* Sources */,
+				20286C2CFDCF999611CA2CEA /* Resources */,
+				20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
+				195DF8CFFE9D517E11CA2CBB /* Products */,
+			);
+			name = SeismicSimulation;
+			sourceTree = "<group>";
+		};
+		20286C2AFDCF999611CA2CEA /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				A1F591A80B8DFC7100073279 /* SeismicSimulation.cpp */,
+				A1F591AA0B8DFC9600073279 /* macvideo.cpp */,
+				A1F591AB0B8DFC9600073279 /* video.h */,
+				32DBCF6D0370B57F00C91783 /* SeismicSimulation.pch */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		20286C2CFDCF999611CA2CEA /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E960486CD37000505A6 /* Info.plist */,
+				0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */,
+				02345980000FD03B11CA0E72 /* main.nib */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A18D2A330B861B99007D8D2C /* libtbb.dylib */,
+				A1A8F4300B8B4EA8001C55B1 /* Carbon.framework */,
+				A1A8F41D0B8B4DBE001C55B1 /* AGL.framework */,
+				A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8D0C4E890486CD37000505A6 /* SeismicSimulation */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "SeismicSimulation" */;
+			buildPhases = (
+				8D0C4E8C0486CD37000505A6 /* Resources */,
+				8D0C4E8F0486CD37000505A6 /* Sources */,
+				8D0C4E910486CD37000505A6 /* Frameworks */,
+				A18D2A370B861BB7007D8D2C /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = SeismicSimulation;
+			productInstallPath = "$(HOME)/Applications";
+			productName = SeismicSimulation;
+			productReference = 8D0C4E970486CD37000505A6 /* SeismicSimulation.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		20286C28FDCF999611CA2CEA /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "SeismicSimulation" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 20286C29FDCF999611CA2CEA /* SeismicSimulation */;
+			projectDirPath = "";
+			targets = (
+				8D0C4E890486CD37000505A6 /* SeismicSimulation */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		8D0C4E8C0486CD37000505A6 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */,
+				8D0C4E8E0486CD37000505A6 /* main.nib in Resources */,
+				A126495E0B83936D0091D5AD /* Info.plist in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8D0C4E8F0486CD37000505A6 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F591A90B8DFC7100073279 /* SeismicSimulation.cpp in Sources */,
+				A1F591AC0B8DFC9600073279 /* macvideo.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		02345980000FD03B11CA0E72 /* main.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				1870340FFE93FCAF11CA0CD7 /* English */,
+			);
+			name = main.nib;
+			sourceTree = "<group>";
+		};
+		0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				0867D6ABFE840B52C02AAC07 /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		C0E91AC608A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/Applications";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = SeismicSimulation;
+			};
+			name = Debug;
+		};
+		C0E91AC708A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = "";
+				INSTALL_PATH = "$(HOME)/Applications";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = SeismicSimulation;
+			};
+			name = Release;
+		};
+		C0E91ACA08A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = i386;
+				GCC_AUTO_VECTORIZATION = YES;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+				MACH_O_TYPE = mh_execute;
+				MACOSX_DEPLOYMENT_TARGET = 10.4;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		C0E91ACB08A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = i386;
+				GCC_AUTO_VECTORIZATION = YES;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 3;
+				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+				MACH_O_TYPE = mh_execute;
+				MACOSX_DEPLOYMENT_TARGET = 10.4;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "SeismicSimulation" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91AC608A95435008D54AB /* Debug */,
+				C0E91AC708A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "SeismicSimulation" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91ACA08A95435008D54AB /* Debug */,
+				C0E91ACB08A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
+}
diff --git a/examples/parallel_for/tacheon/Makefile b/examples/parallel_for/tacheon/Makefile
new file mode 100644
index 0000000..5e1deb9
--- /dev/null
+++ b/examples/parallel_for/tacheon/Makefile
@@ -0,0 +1,199 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# The original source for this example is
+# Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#      This product includes software developed by John E. Stone
+# 4. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+# GNU Makefile that builds and runs example.
+NAME:=tacheon
+
+# The C++ compiler
+#CXX = g++
+
+# The default dataset
+export DATASET = balls
+# The default runtime arguments
+export ARGS =
+
+# detecting x64
+ifeq ($(shell arch),x86_64)
+x64 ?= 64
+endif
+# detecting UI ("mac", "x" or "con")
+ifeq ($(shell uname),Darwin)
+UI ?= mac
+else
+UI ?= $(shell sh -c "[ -f /usr/X11R6/lib$(x64)/libX11.so -o -f /usr/lib$(x64)/libX11.so ] && echo x || echo con")
+endif
+
+MYCXXFLAGS = -DX_FULLSYNC
+LIBS = -lm
+
+# Platform-specific settings
+ifeq ($(UI),x)
+EXE=$(NAME).$(VERSION)
+MYCXXFLAGS += -I/usr/X11R6/include
+ADD_THREADS=1
+LIBS += -L/usr/X11R6/lib$(x64) -lX11
+# detect if libXext can be found
+ifeq ($(shell sh -c "[ -f /usr/X11R6/lib$(x64)/libXext.so -o -f /usr/lib$(x64)/libXext.so ] && echo 0"),0)
+LIBS += -lXext
+MYCXXFLAGS += -DX_NOSHMPIX
+else
+MYCXXFLAGS += -DX_NOSHMEM
+endif
+else
+
+ifeq ($(UI),mac)
+TBBLIBS = /Library/Frameworks/TBB.framework/Libraries
+CXXFLAGS += -arch i386 -mmacosx-version-min=10.4 -fno-rtti -msse3 -ftree-vectorize
+LIBS += -framework OpenGL -framework AGL -framework Carbon -L$(TBBLIBS)
+RES = $(NAME).$(VERSION).app/Contents/Resources
+EXE = $(NAME).$(VERSION).app/Contents/MacOS/$(NAME).$(VERSION)
+PBXCP = /System/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -resolve-src-symlinks -exclude .DS_Store -exclude CVS
+else # ! Mac
+
+UI=con
+EXE=$(NAME).$(VERSION)
+endif # Mac
+endif # X
+
+MYCXXFLAGS += $(CXXFLAGS)
+
+all: build run
+release: build
+debug: build_debug
+test: run
+
+build: build_serial build_tbb1d build_tbb
+build_debug: build_serial_debug build_tbb1d_debug build_tbb_debug
+run: run_serial run_tbb1d run_tbb
+
+serial: build_serial run_serial
+serial_debug: build_serial_debug run_serial
+tbb: build_tbb run_tbb
+tbb_debug: build_tbb_debug run_tbb
+tbb1d: build_tbb1d run_tbb1d
+tbb1d_debug: build_tbb1d_debug run_tbb1d
+
+build_serial:
+	$(MAKE) VERSION=serial build_one
+build_serial_debug:
+	$(MAKE) VERSION=serial ADD_DEBUG=1 build_one
+run_serial:
+	$(MAKE) VERSION=serial run_one
+
+build_tbb:
+	$(MAKE) VERSION=tbb ADD_TBB=1 build_one
+build_tbb_debug:
+	$(MAKE) VERSION=tbb ADD_TBB=1 ADD_DEBUG=1 build_one
+run_tbb:
+	$(MAKE) VERSION=tbb run_one
+
+build_tbb1d:
+	$(MAKE) VERSION=tbb1d ADD_TBB=1 build_one
+build_tbb1d_debug:
+	$(MAKE) VERSION=tbb1d ADD_TBB=1 ADD_DEBUG=1 build_one
+run_tbb1d:
+	$(MAKE) VERSION=tbb1d run_one
+
+
+#
+# Per-build Makefile rules (for recursive $(MAKE) calls from above)
+#
+
+SVERSION = $(VERSION)
+
+ifeq ($(ADD_DEBUG),1)
+MYCXXFLAGS += -O0 -g -D_DEBUG
+else
+MYCXXFLAGS += -O2
+endif
+
+ifeq ($(ADD_THREADS),1)
+LIBS += -lpthread
+endif
+
+
+ifeq ($(ADD_TBB),1)
+MYCXXFLAGS +=
+ifeq ($(ADD_DEBUG),1)
+MYCXXFLAGS += -DTBB_DO_ASSERT
+LIBS += -ltbb_debug
+else
+LIBS += -ltbb
+endif
+endif
+
+SOURCE = ../../common/gui/$(UI)video.cpp src/trace.$(SVERSION).cpp src/pthread.cpp src/video.cpp src/api.cpp src/apigeom.cpp src/apitrigeom.cpp src/bndbox.cpp src/box.cpp src/camera.cpp src/coordsys.cpp src/cylinder.cpp src/extvol.cpp src/getargs.cpp src/global.cpp src/grid.cpp src/imageio.cpp src/imap.cpp src/intersect.cpp src/jpeg.cpp src/light.cpp src/objbound.cpp src/parse.cpp src/plane.cpp src/ppm.cpp src/quadric.cpp src/render.cpp src/ring.cpp src/shade.cpp src/sphere.cpp src/textu [...]
+
+build_one:	$(EXE)
+
+run_one:
+ifeq ($(UI),mac)
+	export DYLD_LIBRARY_PATH="$(DYLD_LIBRARY_PATH):$(TBBLIBS)"; ./$(EXE) $(ARGS) dat/$(DATASET).dat
+else
+	./$(EXE) $(ARGS) dat/$(DATASET).dat
+endif
+
+$(EXE): $(SOURCE)
+ifeq ($(UI),mac)
+	mkdir -p $(RES)/English.lproj $(NAME).$(VERSION).app/Contents/MacOS
+	$(PBXCP) xcode/English.lproj/InfoPlist.strings xcode/English.lproj/main.nib $(RES)/English.lproj
+	$(PBXCP) xcode/Info.plist $(RES)
+endif
+	$(CXX) $(MYCXXFLAGS) -o $@ $(SOURCE) $(LIBS)
+	rm -f *.o
+
+clean:
+	rm -rf $(NAME).* *.o *.d
diff --git a/examples/parallel_for/tacheon/Makefile.windows b/examples/parallel_for/tacheon/Makefile.windows
new file mode 100644
index 0000000..3242239
--- /dev/null
+++ b/examples/parallel_for/tacheon/Makefile.windows
@@ -0,0 +1,133 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# The original source for this example is
+# Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#      This product includes software developed by John E. Stone
+# 4. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+# Common Makefile that builds and runs example.
+
+# The C++ compiler
+CXX = cl.exe
+
+# Uncomment one of next lines to choose user interface type (console, gdiplus, direct draw)
+#UI = con
+UI = gdi
+#UI = dd
+
+# Machine architecture, auto-detected from TBB_ARCH_PLATFORM by default
+# Use XARCH variable to change it. See index.html for more information
+ARCH0 = $(TBB_ARCH_PLATFORM)-
+ARCH1 = $(ARCH0:\vc7.1-=)
+ARCH2 = $(ARCH1:\vc8-=)
+ARCH3 = $(ARCH2:ia32=x86)
+ARCH4 = $(ARCH3:em64t=AMD64)
+XARCH = $(ARCH4:-=x86)
+
+# The default dataset
+DATASET = balls
+# The default runtime arguments
+ARGS =
+
+# Add these for tbb/tbb1d release builds
+CXXFLAGS_TBB_NDEBUG = $(CXXFLAGS)
+LIBS_TBB_NDEBUG = tbb.lib
+
+# Add these for tbb/tbb1d debug builds
+CXXFLAGS_TBB_DEBUG = $(CXXFLAGS) /D TBB_DO_ASSERT
+LIBS_TBB_DEBUG = tbb_debug.lib
+
+
+MAKEINC = ../../common/gui/Makefile.win
+SOURCE = src/pthread.cpp src/video.cpp src/api.cpp src/apigeom.cpp src/apitrigeom.cpp src/bndbox.cpp src/box.cpp src/camera.cpp src/coordsys.cpp src/cylinder.cpp src/extvol.cpp src/getargs.cpp src/global.cpp src/grid.cpp src/imageio.cpp src/imap.cpp src/intersect.cpp src/jpeg.cpp src/light.cpp src/objbound.cpp src/parse.cpp src/plane.cpp src/ppm.cpp src/quadric.cpp src/render.cpp src/ring.cpp src/shade.cpp src/sphere.cpp src/texture.cpp src/tgafile.cpp src/trace_rest.cpp src/triangle.cpp [...]
+
+# Targets
+all: build run
+release: build
+debug: build_debug
+test: run
+
+build: build_serial build_tbb1d build_tbb
+build_debug: build_serial_debug build_tbb1d_debug build_tbb_debug
+run: run_serial run_tbb1d run_tbb
+
+serial: build_serial run_serial
+serial_debug: build_serial_debug run_serial
+tbb: build_tbb run_tbb
+tbb_debug: build_tbb_debug run_tbb
+tbb1d: build_tbb1d run_tbb1d
+tbb1d_debug: build_tbb1d_debug run_tbb1d
+
+build_serial:
+	@$(MAKE) -f $(MAKEINC) SOURCE="src/trace.serial.cpp $(SOURCE)" EXE=tacheon.serial.exe RCNAME=gui UI=$(UI) CXX="$(CXX)" CXXFLAGS=$(CXXFLAGS) XARCH=$(XARCH) build_one
+build_serial_debug:
+	@$(MAKE) -f $(MAKEINC) SOURCE="src/trace.serial.cpp $(SOURCE)" EXE=tacheon.serial.exe RCNAME=gui UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS=$(CXXFLAGS) XARCH=$(XARCH) build_one
+run_serial:
+	-.\tacheon.serial.exe $(ARGS) dat\$(DATASET).dat
+
+build_tbb:
+	@$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb.cpp $(SOURCE)" EXE=tacheon.tbb.exe RCNAME=gui UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_NDEBUG)" LFLAGS="$(LIBS_TBB_NDEBUG)" XARCH=$(XARCH) build_one
+build_tbb_debug:
+	@$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb.cpp $(SOURCE)" EXE=tacheon.tbb.exe RCNAME=gui UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_DEBUG)" LFLAGS="$(LIBS_TBB_DEBUG)" XARCH=$(XARCH) build_one
+run_tbb:
+	-.\tacheon.tbb.exe $(ARGS) dat\$(DATASET).dat
+
+build_tbb1d:
+	@$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb1d.cpp $(SOURCE)" EXE=tacheon.tbb1d.exe RCNAME=gui UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_NDEBUG)" LFLAGS="$(LIBS_TBB_NDEBUG)" XARCH=$(XARCH) build_one
+build_tbb1d_debug:
+	@$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb1d.cpp $(SOURCE)" EXE=tacheon.tbb1d.exe RCNAME=gui UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_DEBUG)" LFLAGS="$(LIBS_TBB_DEBUG)" XARCH=$(XARCH) build_one
+run_tbb1d:
+	-.\tacheon.tbb1d.exe $(ARGS) dat\$(DATASET).dat
+
+
+clean:
+	@cmd.exe /C del tacheon.* *.manifest *.obj vc7.1\gui.res *.?db
diff --git a/examples/parallel_for/tacheon/dat/820spheres.dat b/examples/parallel_for/tacheon/dat/820spheres.dat
new file mode 100644
index 0000000..5d5a430
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/820spheres.dat
@@ -0,0 +1,1671 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 512 512
+  VERBOSE 0
+ 
+CAMERA
+  ZOOM 1.0
+  ASPECTRATIO 1.0
+  ANTIALIASING 0
+  RAYDEPTH 12
+  CENTER 0.0 0.0 2.0
+  VIEWDIR 0 0 -1 
+  UPDIR 0 1 0
+ 
+END_CAMERA 
+ 
+LIGHT CENTER 4 3 2 RAD 0.2 COLOR 0.5 0.5 0.5
+ 
+LIGHT CENTER 1 -4 4 RAD 0.2 COLOR 0.5 0.5 0.5
+ 
+LIGHT CENTER -3 1 5 RAD 0.2 COLOR 0.5 0.5 0.5
+
+TEXDEF txt001 AMBIENT 0.2  DIFFUSE 0.8  SPECULAR 0  OPACITY 1 
+ COLOR 1 0.75 0.33 
+ TEXFUNC 0 
+
+TEXDEF txt002 AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0
+  COLOR 1.0 1.0 1.0 TEXFUNC 0
+
+ SPHERE CENTER 0 0 0 RAD 0.5 
+   txt002 
+ SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.852418 0.0955788 2.30268e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0955788 0.852418 1.31582e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.508983 0.690426 1.25414e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.786005 -0.343435 1.25414e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.343435 -0.786005 1.25414e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.690426 -0.508983 2.241e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 
+   txt002 
+
+END_SCENE
diff --git a/examples/parallel_for/tacheon/dat/balls.dat b/examples/parallel_for/tacheon/dat/balls.dat
new file mode 100644
index 0000000..0d4bbb1
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/balls.dat
@@ -0,0 +1,14804 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 512 512 
+  VERBOSE 0
+
+CAMERA
+  ZOOM 1.20711
+ASPECTRATIO 1.0
+  ANTIALIASING 0
+  RAYDEPTH 5
+  CENTER 2.1 1.3 1.7
+  VIEWDIR -0.700389 -0.433574 -0.566982
+  UPDIR -0.482085 -0.298433 0.82373
+
+END_CAMERA 
+
+BACKGROUND 0.078 0.361 0.753 
+
+LIGHT CENTER 4 3 2 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 1 -4 4 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER -3 1 5 RAD 0.002 COLOR 0.5 0.5 0.5
+
+TEXDEF txt001 AMBIENT 0.2  DIFFUSE 0.8  SPECULAR 0  OPACITY 1 
+PHONG PLASTIC 0 PHONG_SIZE 100000
+ COLOR 1 0.75 0.33 
+ TEXFUNC 0 
+
+TRI 
+  V0 12 12 -0.5   V1 -12 -12 -0.5   V2 12 -12 -0.5 
+   txt001 
+TRI 
+  V0 12 12 -0.5   V1 -12 12 -0.5   V2 -12 -12 -0.5 
+   txt001 
+TEXDEF txt002 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+PHONG PLASTIC 0.5 PHONG_SIZE 45.2776
+ COLOR 1 0.9 0.7 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0 RAD 0.5 
+   txt002 
+ SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.481689 0.481689 0.57904 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475329 0.45787 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45787 0.475329 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.477074 0.494534 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.453255 0.488174 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4661 0.48356 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.494534 0.477074 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48356 0.4661 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488174 0.453255 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.47044 0.419664 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447954 0.425689 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.468014 0.433095 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484109 0.40322 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481683 0.416651 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475292 0.392801 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.464049 0.395814 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455233 0.385395 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.441563 0.401839 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.419664 0.47044 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433095 0.468014 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.425689 0.447954 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.395814 0.464049 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401839 0.441563 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385395 0.455233 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40322 0.484109 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.392801 0.475292 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416651 0.481683 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.441197 0.503434 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452601 0.483752 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434161 0.494577 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418001 0.501466 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410965 0.492609 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.406209 0.479816 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436441 0.490641 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42465 0.46899 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447846 0.470958 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.36376 0.497028 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383056 0.487812 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383056 0.487812 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34864 0.481907 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352815 0.457572 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34864 0.481907 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352815 0.457572 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.376578 0.444814 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399064 0.438789 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385395 0.455233 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356518 0.437408 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.365335 0.447826 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.358944 0.423976 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.370187 0.420964 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372614 0.407532 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.392673 0.414939 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.503434 0.441197 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.494577 0.434161 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.483752 0.452601 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490641 0.436441 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.470958 0.447846 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46899 0.42465 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501466 0.418001 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.479816 0.406209 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.492609 0.410965 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.444814 0.376578 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455233 0.385395 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.438789 0.399064 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420964 0.370187 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.414939 0.392673 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407532 0.372614 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.437408 0.356518 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423976 0.358944 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447826 0.365335 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.497028 0.36376 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.487812 0.383056 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.487812 0.383056 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481907 0.34864 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457572 0.352815 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481907 0.34864 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457572 0.352815 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.492085 0.33495 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488469 0.313874 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471009 0.331334 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495701 0.356025 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.474625 0.352409 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495701 0.356025 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51316 0.338566 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51316 0.338566 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.509544 0.31749 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.40568 0.315605 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403931 0.312107 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419383 0.329161 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426095 0.30867 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.439797 0.322225 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.444759 0.298235 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410643 0.291616 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429307 0.281181 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408893 0.288117 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.440864 0.389015 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457301 0.37895 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.451857 0.367697 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418755 0.378463 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429748 0.357145 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.413085 0.357845 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4242 0.389715 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418529 0.369098 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440637 0.37965 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.546497 0.347572 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532117 0.331508 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522481 0.352406 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.543964 0.350552 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519948 0.355387 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.52705 0.337468 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5536 0.329654 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536686 0.31657 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.53922 0.313589 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.48474 0.389488 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495668 0.369235 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.477004 0.379669 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.461764 0.388188 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.454027 0.37837 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449715 0.366636 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480429 0.377754 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46838 0.356202 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.491357 0.357501 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.518259 0.314219 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519922 0.310678 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504895 0.328108 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.49768 0.307788 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484316 0.321677 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478764 0.297816 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.512708 0.290358 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493791 0.280387 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51437 0.286818 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.539811 0.274878 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.520873 0.290418 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.533373 0.290264 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.537674 0.255722 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531235 0.271108 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.516598 0.252106 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.525174 0.255876 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504099 0.25226 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506236 0.271416 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.50716 0.230587 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51153 0.24936 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499694 0.253381 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484125 0.222248 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.476659 0.245042 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46546 0.232683 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495961 0.218227 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.477296 0.228661 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.500331 0.237 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.455172 0.217147 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472226 0.232599 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45115 0.228983 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433942 0.226031 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429921 0.237867 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429767 0.250367 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455018 0.229647 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.450842 0.253983 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472072 0.245099 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.33495 0.492085 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331334 0.471009 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313874 0.488469 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338566 0.51316 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31749 0.509544 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338566 0.51316 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356025 0.495701 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356025 0.495701 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352409 0.474625 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389015 0.440864 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367697 0.451857 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37895 0.457301 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389715 0.4242 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37965 0.440637 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369098 0.418529 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378463 0.418755 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357845 0.413085 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357145 0.429748 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.315605 0.40568 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329161 0.419383 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312107 0.403931 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291616 0.410643 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288117 0.408893 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281181 0.429307 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30867 0.426095 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298235 0.444759 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322225 0.439797 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.274878 0.539811 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290264 0.533373 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290418 0.520873 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.255876 0.525174 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271416 0.506236 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.25226 0.504099 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.255722 0.537674 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.252106 0.516598 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271108 0.531235 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.217147 0.455172 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228983 0.45115 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.232599 0.472226 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229647 0.455018 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245099 0.472072 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253983 0.450842 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.226031 0.433942 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250367 0.429767 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237867 0.429921 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.230587 0.50716 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253381 0.499694 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.24936 0.51153 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218227 0.495961 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237 0.500331 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228661 0.477296 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.222248 0.484125 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.232683 0.46546 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245042 0.476659 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.347572 0.546497 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352406 0.522481 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331508 0.532117 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329654 0.5536 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313589 0.53922 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31657 0.536686 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350552 0.543964 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337468 0.52705 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355387 0.519948 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.314219 0.518259 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328108 0.504895 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310678 0.519922 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290358 0.512708 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286818 0.51437 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280387 0.493791 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307788 0.49768 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297816 0.478764 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321677 0.484316 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389488 0.48474 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379669 0.477004 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369235 0.495668 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.377754 0.480429 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357501 0.491357 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356202 0.46838 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388188 0.461764 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366636 0.449715 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37837 0.454027 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.264242 0.467193 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.272442 0.447086 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253384 0.459832 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2424 0.46672 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.231541 0.459359 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228758 0.446141 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261459 0.453974 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247817 0.433396 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269659 0.433868 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.319874 0.420236 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.303021 0.407886 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.296625 0.428474 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318692 0.420256 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295442 0.428494 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.300656 0.407926 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325088 0.399668 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307053 0.387338 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308235 0.387318 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.263032 0.459076 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.270029 0.436804 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247378 0.440021 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.246239 0.472047 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230585 0.452992 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236443 0.462746 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26889 0.468829 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259094 0.459528 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275887 0.446557 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.174744 0.447688 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.197172 0.437457 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.1895 0.447523 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156968 0.436708 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171724 0.436544 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161621 0.415499 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164641 0.426642 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.169293 0.405432 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187069 0.416412 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.177682 0.45215 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.190087 0.449636 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200611 0.44299 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.169628 0.432153 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.192556 0.422992 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173978 0.409641 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159104 0.438799 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.163454 0.416288 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171508 0.436286 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.13761 0.368692 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.158434 0.366998 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153102 0.387887 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138607 0.369329 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.154099 0.388523 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160429 0.36827 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.14394 0.34844 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165761 0.347381 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164764 0.346745 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.237348 0.393812 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251829 0.390976 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234368 0.408432 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.213518 0.387445 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.210538 0.402066 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.204169 0.378242 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23098 0.369989 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221631 0.360786 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245461 0.367152 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.209548 0.312342 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229235 0.324887 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209827 0.337 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188347 0.31322 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188626 0.337878 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.186834 0.326643 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207755 0.301107 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206242 0.31453 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227442 0.313652 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.302145 0.344931 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297823 0.356827 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.289691 0.366251 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28356 0.334005 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271106 0.355325 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.260653 0.334975 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291692 0.324581 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268785 0.325551 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28737 0.336477 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.110567 0.524146 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.126738 0.506465 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.112687 0.504055 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0863343 0.519988 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0884544 0.499897 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0782715 0.49815 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100385 0.522399 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0923218 0.500561 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.116555 0.504718 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.177777 0.492047 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176681 0.473492 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159222 0.490951 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161488 0.493217 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.142932 0.492121 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144102 0.475831 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.178947 0.475757 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161561 0.458371 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177851 0.457202 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.167697 0.481967 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161561 0.458371 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144102 0.475831 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166528 0.498257 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.142932 0.492121 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159222 0.490951 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183987 0.480797 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176681 0.473492 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177851 0.457202 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0450372 0.477623 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.055591 0.475469 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696413 0.47788 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0465898 0.4591 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.071194 0.459357 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0586963 0.438424 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325396 0.45669 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0446461 0.436013 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0430934 0.454536 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.10495 0.439381 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0911807 0.435691 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10864 0.45315 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128801 0.43299 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13249 0.44676 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138881 0.42291 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111341 0.415531 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.121421 0.40545 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0975713 0.411841 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.052284 0.366554 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0708393 0.36765 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0533799 0.385109 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511144 0.382844 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0522103 0.401399 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0685002 0.400229 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0685739 0.365384 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0859596 0.38277 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0871292 0.36648 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0493251 0.475575 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0725262 0.467381 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.06557 0.479825 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0339426 0.465141 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0501875 0.46939 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0417612 0.446512 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0408988 0.452697 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0487174 0.434069 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0640999 0.444504 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0623642 0.376634 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0859596 0.38277 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0685002 0.400229 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0460743 0.377803 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0522103 0.401399 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0533799 0.385109 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0635337 0.360344 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0708393 0.36765 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0871292 0.36648 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.125111 0.439381 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138881 0.435691 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.121421 0.45315 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101261 0.43299 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0975713 0.44676 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0911807 0.42291 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11872 0.415531 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10864 0.40545 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13249 0.411841 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0426858 0.273525 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.064638 0.265928 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0510334 0.281546 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0219434 0.26565 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.030291 0.273671 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0231533 0.250178 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0355481 0.250032 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.036758 0.23456 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0575003 0.242434 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.135677 0.265544 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138361 0.25778 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12224 0.275732 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115003 0.26032 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101567 0.270508 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.097014 0.247334 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.131123 0.242369 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.113134 0.229382 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.133808 0.234605 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0971427 0.330622 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.109956 0.310023 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.091905 0.317013 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0735708 0.329151 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0683331 0.315541 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0628126 0.30708 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0916222 0.322161 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.080864 0.30009 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.104436 0.301561 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0110117 0.257416 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00823377 0.253319 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0102865 0.269325 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0105502 0.249215 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.010748 0.261124 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00915679 0.236916 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0126029 0.233209 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00710408 0.22091 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00664257 0.229111 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0555846 0.315856 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0705987 0.309941 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0705297 0.296292 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.03617 0.301531 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511152 0.281968 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0317696 0.281291 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.036239 0.31518 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0318385 0.29494 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.051253 0.309265 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.025169 0.224935 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0281502 0.217281 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0288111 0.241399 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0443054 0.234341 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0479475 0.250805 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.066423 0.236092 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0436445 0.210223 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0657621 0.211974 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0466257 0.202569 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0335228 0.179527 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0567332 0.187058 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0385291 0.203632 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0167878 0.181593 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.021794 0.205698 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0232631 0.191189 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0349919 0.165018 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0414672 0.174615 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0582023 0.172549 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0867911 0.147549 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101845 0.166573 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.083121 0.161663 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0635354 0.151669 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0598652 0.165782 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0553337 0.174812 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822597 0.156579 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.074058 0.179722 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0973138 0.175603 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.133336 0.176775 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136161 0.192663 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.124499 0.199753 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.110965 0.167739 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102127 0.190718 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0914184 0.174592 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.122627 0.160649 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.103081 0.167502 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.125452 0.176537 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.467193 0.264242 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459832 0.253384 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447086 0.272442 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.453974 0.261459 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433868 0.269659 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433396 0.247817 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46672 0.2424 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446141 0.228758 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459359 0.231541 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.459076 0.263032 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440021 0.247378 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436804 0.270029 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.468829 0.26889 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446557 0.275887 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459528 0.259094 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472047 0.246239 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.462746 0.236443 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452992 0.230585 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.420236 0.319874 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428474 0.296625 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407886 0.303021 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399668 0.325088 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387318 0.308235 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387338 0.307053 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420256 0.318692 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407926 0.300656 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428494 0.295442 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.393812 0.237348 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408432 0.234368 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.390976 0.251829 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369989 0.23098 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367152 0.245461 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.360786 0.221631 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387445 0.213518 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378242 0.204169 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402066 0.210538 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.344931 0.302145 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366251 0.289691 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356827 0.297823 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324581 0.291692 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336477 0.28737 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325551 0.268785 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334005 0.28356 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334975 0.260653 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355325 0.271106 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.312342 0.209548 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337 0.209827 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324887 0.229235 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301107 0.207755 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313652 0.227442 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31453 0.206242 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31322 0.188347 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.326643 0.186834 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337878 0.188626 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.447688 0.174744 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447523 0.1895 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.437457 0.197172 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426642 0.164641 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416412 0.187069 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405432 0.169293 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436708 0.156968 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.415499 0.161621 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436544 0.171724 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.368692 0.13761 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387887 0.153102 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366998 0.158434 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34844 0.14394 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.346745 0.164764 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347381 0.165761 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369329 0.138607 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36827 0.160429 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388523 0.154099 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.45215 0.177682 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44299 0.200611 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449636 0.190087 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.438799 0.159104 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436286 0.171508 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416288 0.163454 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.432153 0.169628 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409641 0.173978 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.422992 0.192556 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.273525 0.0426858 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281546 0.0510334 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.265928 0.064638 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250032 0.0355481 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242434 0.0575003 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23456 0.036758 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26565 0.0219434 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250178 0.0231533 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273671 0.030291 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.330622 0.0971427 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317013 0.091905 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310023 0.109956 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322161 0.0916222 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301561 0.104436 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30009 0.080864 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329151 0.0735708 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30708 0.0628126 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315541 0.0683331 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.265544 0.135677 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275732 0.12224 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.25778 0.138361 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242369 0.131123 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234605 0.133808 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229382 0.113134 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26032 0.115003 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247334 0.097014 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.270508 0.101567 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.179527 0.0335228 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203632 0.0385291 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187058 0.0567332 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165018 0.0349919 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172549 0.0582023 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174615 0.0414672 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181593 0.0167878 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191189 0.0232631 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205698 0.021794 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.176775 0.133336 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.199753 0.124499 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.192663 0.136161 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160649 0.122627 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176537 0.125452 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167502 0.103081 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167739 0.110965 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174592 0.0914184 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.190718 0.102127 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.147549 0.0867911 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161663 0.083121 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166573 0.101845 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156579 0.0822597 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.175603 0.0973138 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179722 0.074058 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.151669 0.0635354 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174812 0.0553337 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165782 0.0598652 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.257416 -0.0110117 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269325 0.0102865 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253319 0.00823377 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233209 -0.0126029 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229111 0.00664257 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22091 0.00710408 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249215 -0.0105502 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236916 0.00915679 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261124 0.010748 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.224935 0.025169 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241399 0.0288111 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217281 0.0281502 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.210223 0.0436445 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.202569 0.0466257 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211974 0.0657621 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234341 0.0443054 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236092 0.066423 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250805 0.0479475 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.315856 0.0555846 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.296292 0.0705297 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.309941 0.0705987 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31518 0.036239 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.309265 0.051253 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29494 0.0318385 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301531 0.03617 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281291 0.0317696 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281968 0.0511152 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.524146 0.110567 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504055 0.112687 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506465 0.126738 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522399 0.100385 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504718 0.116555 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.500561 0.0923218 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519988 0.0863343 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.49815 0.0782715 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499897 0.0884544 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.481967 0.167697 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475831 0.144102 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.458371 0.161561 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480797 0.183987 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457202 0.177851 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.473492 0.176681 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498257 0.166528 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490951 0.159222 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.492121 0.142932 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.492047 0.177777 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490951 0.159222 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.473492 0.176681 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475757 0.178947 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457202 0.177851 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.458371 0.161561 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493217 0.161488 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475831 0.144102 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.492121 0.142932 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.475575 0.0493251 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.479825 0.06557 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.467381 0.0725262 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452697 0.0408988 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.444504 0.0640999 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434069 0.0487174 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.465141 0.0339426 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446512 0.0417612 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46939 0.0501875 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.439381 0.125111 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45315 0.121421 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435691 0.138881 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.415531 0.11872 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.411841 0.13249 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40545 0.10864 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.43299 0.101261 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42291 0.0911807 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44676 0.0975713 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.376634 0.0623642 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400229 0.0685002 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38277 0.0859596 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.360344 0.0635337 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36648 0.0871292 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36765 0.0708393 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.377803 0.0460743 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385109 0.0533799 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401399 0.0522103 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.477623 0.0450372 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.47788 0.0696413 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475469 0.055591 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45669 0.0325396 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.454536 0.0430934 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436013 0.0446461 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4591 0.0465898 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.438424 0.0586963 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459357 0.071194 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.366554 0.052284 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385109 0.0533799 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36765 0.0708393 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.365384 0.0685739 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36648 0.0871292 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38277 0.0859596 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382844 0.0511144 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400229 0.0685002 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401399 0.0522103 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.41922 0.125111 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40545 0.121421 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42291 0.138881 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44307 0.11872 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44676 0.13249 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45315 0.10864 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.425611 0.101261 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435691 0.0911807 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.411841 0.0975713 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.822021 0.302088 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.821938 0.282758 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.802598 0.298094 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.824119 0.32499 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.804695 0.320997 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.826132 0.328563 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843459 0.309654 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845472 0.313227 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843375 0.290324 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.785699 0.218449 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.802677 0.22345 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.778718 0.223304 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770818 0.236351 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.763837 0.241205 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.772915 0.259253 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.794777 0.236497 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.796874 0.2594 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.811756 0.241498 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.741263 0.325175 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.747715 0.32493 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.765112 0.325981 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745704 0.305466 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.769553 0.306272 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.756597 0.285513 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.728307 0.304415 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7392 0.284462 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.734759 0.304171 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.851488 0.360404 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853509 0.335865 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.832518 0.347059 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.836826 0.370319 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817857 0.356973 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.824185 0.355695 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857816 0.359125 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845176 0.344501 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.859838 0.334587 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.768944 0.369945 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.788341 0.356172 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.780624 0.356171 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.747572 0.359113 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759252 0.34534 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745596 0.33451 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755289 0.359115 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.753313 0.334511 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774685 0.345342 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.83071 0.340361 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.840365 0.325527 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.822249 0.341208 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.807766 0.336425 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.799305 0.337272 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.794477 0.317654 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.825882 0.320744 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.812593 0.301973 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.835537 0.30591 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.891539 0.292033 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.868678 0.28812 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.872763 0.305711 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.897348 0.285824 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.878572 0.299501 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.880296 0.275701 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.893263 0.268233 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876212 0.25811 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.870402 0.264319 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.87538 0.26204 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.87108 0.266856 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.860805 0.280934 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857361 0.252905 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842785 0.271799 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.835041 0.248586 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.867636 0.238827 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845317 0.234508 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.863337 0.243643 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.860225 0.206363 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.858689 0.230102 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.854636 0.223536 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.839784 0.193863 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.834196 0.211035 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817808 0.205101 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843837 0.200429 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.821861 0.211667 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842301 0.224168 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.61556 0.221097 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621702 0.225035 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.635958 0.210779 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607567 0.198849 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627965 0.188531 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605717 0.180539 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593312 0.213105 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591462 0.194794 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.599454 0.217042 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.556122 0.208861 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575596 0.203643 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.578791 0.215568 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.552927 0.196936 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575596 0.203643 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569205 0.179793 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549732 0.185011 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.56601 0.167868 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569205 0.179793 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.631486 0.266765 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648629 0.250487 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.636704 0.247291 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607636 0.260374 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.612854 0.240901 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600929 0.237705 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.619561 0.26357 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.612854 0.240901 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.636704 0.247291 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684921 0.190903 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665787 0.178397 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669989 0.201661 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704395 0.196121 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.689462 0.206879 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704733 0.188833 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700193 0.172858 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700531 0.165569 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681058 0.160351 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.710584 0.23918 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705059 0.216195 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687599 0.233654 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701855 0.24791 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678869 0.242384 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687599 0.233654 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.719314 0.23045 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705059 0.216195 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.713788 0.207465 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.738169 0.160081 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718696 0.165299 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721891 0.177224 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.734974 0.148156 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718696 0.165299 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712305 0.141449 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.731779 0.136231 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.70911 0.129524 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712305 0.141449 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.634145 0.108412 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.650927 0.115965 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627664 0.111763 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616099 0.123683 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609618 0.127034 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.614836 0.146508 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639363 0.127886 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.6381 0.15071 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656145 0.135439 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.680265 0.0847178 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.686972 0.107387 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675047 0.104191 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656415 0.0783272 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651197 0.0978007 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639272 0.0946054 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.66834 0.0815225 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651197 0.0978007 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675047 0.104191 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.577317 0.105912 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600302 0.111438 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582843 0.128897 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.568587 0.114642 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.574113 0.137627 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582843 0.128897 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586046 0.0971825 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600302 0.111438 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609032 0.102708 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.625955 0.411883 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630791 0.390369 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607547 0.396287 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61429 0.429805 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.595882 0.414208 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607462 0.426212 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.637535 0.423887 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630706 0.420295 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642371 0.402373 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688854 0.369058 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.652948 0.344865 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.632683 0.357697 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651954 0.357326 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.658482 0.324211 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.657489 0.336672 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643752 0.316388 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639211 0.324581 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624481 0.316758 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.618946 0.337413 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.541008 0.410169 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548718 0.410472 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.564748 0.405866 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539866 0.388816 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563607 0.384513 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546435 0.367766 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523836 0.393422 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530405 0.372372 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531546 0.393725 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.555534 0.296626 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572202 0.297216 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.550163 0.307914 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549999 0.31728 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.544629 0.328569 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.561133 0.338525 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572037 0.306582 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.583171 0.327827 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588706 0.307172 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506807 0.320279 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.58161 0.452905 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5989 0.436077 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586467 0.434777 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.55776 0.446515 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562617 0.428387 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5512 0.423296 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570193 0.447815 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563633 0.424596 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587483 0.430987 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.547099 0.396248 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569716 0.388263 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.557504 0.403175 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527447 0.387819 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.537852 0.394747 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530412 0.371406 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539659 0.372907 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542624 0.356494 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562276 0.364922 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.637209 0.41723 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642848 0.401533 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624734 0.418027 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.615976 0.414703 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603501 0.4155 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600381 0.39648 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634089 0.39821 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.618494 0.379986 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639728 0.382513 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.872345 0.34259 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.86421 0.32016 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848329 0.338969 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.866833 0.351888 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842817 0.348268 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853186 0.338757 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882715 0.333079 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.869068 0.319948 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.87458 0.310649 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.849036 0.291048 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.826067 0.287867 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.840755 0.304882 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.868341 0.28406 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.86006 0.297894 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.864676 0.273891 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853652 0.267046 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.849987 0.256877 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.830683 0.263865 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.808673 0.346884 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.82298 0.335792 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.807762 0.322361 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.784265 0.34818 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.783355 0.323657 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774164 0.338384 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.799483 0.361611 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.789382 0.351815 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.81379 0.350519 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.828769 0.350165 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838905 0.333232 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.820583 0.347547 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.805799 0.346984 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.797614 0.344366 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.792966 0.32687 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.824121 0.332668 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.811288 0.312554 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.834258 0.315735 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.753851 0.362219 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774086 0.350765 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76987 0.352319 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.735575 0.349134 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751594 0.339233 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737534 0.324595 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.739791 0.347581 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.74175 0.323042 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760026 0.336127 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.756464 0.29233 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.779336 0.288514 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.765125 0.305929 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.736973 0.285879 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745634 0.299478 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.740355 0.275612 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751185 0.268464 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.754567 0.258198 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774058 0.264649 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.885497 0.282313 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876946 0.281455 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.867718 0.29787 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.871286 0.274699 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853506 0.290257 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848523 0.266228 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.880514 0.258284 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857752 0.249813 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.871963 0.257427 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.818054 0.21762 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.83061 0.230661 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.813612 0.241754 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.794089 0.212813 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.789647 0.236948 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.78268 0.221048 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.811087 0.20172 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.799677 0.209955 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.823642 0.214761 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.873186 0.21889 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.865588 0.240865 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.866351 0.236437 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857005 0.203288 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.850171 0.220835 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.833227 0.20966 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.856242 0.207715 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.832464 0.214088 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848644 0.22969 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.626191 0.448155 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634643 0.42519 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.614455 0.43276 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.60514 0.45191 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593404 0.436515 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.592541 0.4327 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625328 0.44434 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.612729 0.42513 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.63378 0.421375 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688854 0.369058 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.625435 0.399844 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627149 0.378352 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.60511 0.38905 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.619901 0.420499 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.599576 0.409705 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61608 0.419661 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.641939 0.409801 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638118 0.408963 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643653 0.388308 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.53788 0.433888 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.558395 0.423551 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.55574 0.426423 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.521526 0.42011 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539387 0.412646 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.525689 0.395996 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.524182 0.417238 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528344 0.393124 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.544697 0.406901 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.540802 0.399304 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.54453 0.400489 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563801 0.400119 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546337 0.37865 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569335 0.379464 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555599 0.35918 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527065 0.37902 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536327 0.359551 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530793 0.380205 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506807 0.320279 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.594185 0.405974 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609969 0.394768 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593017 0.410332 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570335 0.399584 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569167 0.403942 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562269 0.381987 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587286 0.384019 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57922 0.366422 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.60307 0.372813 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.567308 0.314012 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587901 0.320398 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569787 0.336891 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546074 0.311485 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548554 0.334364 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.545434 0.315344 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.564188 0.294991 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563547 0.29885 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.584781 0.301377 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.659244 0.341809 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65787 0.345471 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645657 0.360383 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639592 0.33338 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626005 0.351955 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.618565 0.328614 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651804 0.318468 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630777 0.313702 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65043 0.32213 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.690652 0.219248 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.695267 0.206403 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677807 0.223862 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669577 0.215632 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656732 0.220246 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.653116 0.199171 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687036 0.198172 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.670575 0.181711 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.691651 0.185327 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.733129 0.203821 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.709966 0.212373 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.733129 0.203821 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.709966 0.212373 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.738664 0.183166 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721035 0.171063 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721035 0.171063 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.675225 0.261725 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683777 0.238562 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65457 0.267259 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642468 0.249631 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642468 0.249631 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675225 0.261725 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683777 0.238562 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.600215 0.197046 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.622701 0.191021 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609032 0.207465 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.580155 0.18964 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588972 0.200059 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582581 0.176209 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593824 0.173196 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.596251 0.159765 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61631 0.167171 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.587397 0.24926 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606693 0.240045 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606693 0.240045 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572277 0.23414 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.576452 0.209804 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572277 0.23414 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.576452 0.209804 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.551082 0.155041 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566866 0.174029 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.551082 0.155041 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566866 0.174029 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.556617 0.134387 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.577935 0.13272 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.577935 0.13272 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.668451 0.12881 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678869 0.137627 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.662426 0.151296 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644601 0.12242 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638576 0.144906 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.631169 0.124846 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661044 0.108751 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647613 0.111177 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671463 0.117567 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.626446 0.0796777 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645433 0.0954616 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605791 0.0852121 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604124 0.10653 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604124 0.10653 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626446 0.0796777 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645433 0.0954616 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.720665 0.115992 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.711449 0.135288 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.711449 0.135288 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705544 0.100872 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681209 0.105047 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705544 0.100872 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681209 0.105047 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.852418 0.0955788 1.89979e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.937225 0.122151 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.916553 0.11086 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.915202 0.131874 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.943281 0.12236 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.921258 0.132084 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.928665 0.111279 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.944632 0.101346 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.930016 0.0902645 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.92396 0.090055 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.873196 0.134634 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882112 0.117797 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.858152 0.11765 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.858315 0.152536 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843271 0.135552 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.852349 0.1536 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882275 0.152682 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876309 0.153747 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.89119 0.135845 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.890926 0.182656 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.897331 0.159019 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876622 0.167676 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.871561 0.188412 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857256 0.173431 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.8586 0.17053 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.89227 0.179755 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.87931 0.161874 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.898675 0.156118 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.930963 0.0752104 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.924191 0.0806562 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.915684 0.0941344 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.914568 0.0655041 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.899289 0.0844281 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.891402 0.0612436 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.923076 0.0520258 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.89991 0.0477654 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.916304 0.0574717 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.875744 0.141535 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.88655 0.129819 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.868763 0.146389 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.852347 0.136371 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845366 0.141225 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.839756 0.119492 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.870135 0.119801 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857544 0.102922 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.880941 0.108085 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.842832 0.0523913 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.86055 0.0593957 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842434 0.0750766 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.819888 0.0484547 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.81949 0.07114 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.814662 0.0515226 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838004 0.0327739 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.832778 0.0358417 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.855722 0.0397783 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.920407 0.0359958 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.912106 0.0588574 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.915603 0.0511067 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.905363 0.0190117 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.900559 0.0341227 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882018 0.0248894 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.901866 0.0267625 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.878521 0.0326401 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.893565 0.0496241 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.825102 0.00436945 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.84533 0.018173 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.823964 0.025051 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.806642 0.0125791 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.805505 0.0332607 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.808411 0.0345923 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.828008 0.00570109 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.829777 0.0277143 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848237 0.0195047 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.840284 0.0454909 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.856111 0.0473735 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.831823 0.0463379 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.825856 0.0646197 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817395 0.0654667 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.827255 0.0856311 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.850144 0.0656554 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.851543 0.0866667 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.865971 0.0675379 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.762259 -0.0417568 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759495 -0.0345526 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.748937 -0.0216407 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743089 -0.051231 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.729767 -0.0311149 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721155 -0.053501 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.753646 -0.0641429 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.731712 -0.0664129 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.750882 -0.0569387 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.788473 -0.00272662 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.736829 0.0454452 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.742467 0.0297485 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.724354 0.046242 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715595 0.0429182 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.70312 0.043715 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7 0.0246945 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.733709 0.0264247 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718114 0.00820099 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.739347 0.010728 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.669983 -0.0708196 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.690113 -0.0618185 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671462 -0.0467378 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648644 -0.0721997 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.650123 -0.0481178 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647436 -0.0645786 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.667296 -0.0872804 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666087 -0.0796593 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687426 -0.0782793 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.646718 0.0244627 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669336 0.016478 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.657124 0.0313903 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627066 0.0160343 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.637471 0.022962 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630031 -0.000378614 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639278 0.00112207 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642244 -0.0152909 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661896 -0.00686255 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606426 -0.051506 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.730141 -0.101422 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.736701 -0.0782041 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.725284 -0.0832945 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.706291 -0.107813 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701434 -0.0896851 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.689001 -0.0909853 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.717709 -0.102723 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700418 -0.0858949 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.724268 -0.0795043 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.655153 -0.0751594 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671821 -0.0745692 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649783 -0.0638711 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649619 -0.0545047 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644249 -0.0432164 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660752 -0.0332597 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671657 -0.0652028 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682791 -0.0439578 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688325 -0.0646126 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.752567 -0.0269197 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.732303 -0.014088 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751574 -0.0144587 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.758102 -0.0475745 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.757108 -0.0351134 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743371 -0.0553974 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.73883 -0.0472037 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7241 -0.0550267 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718566 -0.0343719 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.770032 -0.0684873 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759394 -0.0481266 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.762305 -0.0507391 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.756497 -0.0850422 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.74877 -0.067294 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.732325 -0.0812364 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.753586 -0.0824297 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.729413 -0.0786239 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.742948 -0.062069 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.788473 -0.00272662 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.758864 -0.0299763 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.757489 -0.0263144 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745277 -0.0114021 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.739212 -0.0384047 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.725625 -0.0198304 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718185 -0.043171 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751424 -0.0533169 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.730397 -0.0580833 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.750049 -0.0496549 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.675276 -0.106805 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.694308 -0.091423 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.673094 -0.0875713 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.655278 -0.0992356 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.653095 -0.0800016 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65431 -0.0762835 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.676491 -0.103087 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675524 -0.0801352 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.695522 -0.0877049 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.666927 -0.0577732 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68752 -0.0513875 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669407 -0.034894 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645694 -0.0603001 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648173 -0.0374209 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645053 -0.0564414 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663807 -0.0767937 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663167 -0.072935 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.6844 -0.070408 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606426 -0.051506 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.717566 -0.0544915 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.725632 -0.0368947 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718734 -0.0588496 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.693716 -0.0608821 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.694884 -0.0652402 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677932 -0.0496759 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700615 -0.0389272 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.684831 -0.027721 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.708681 -0.0213304 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.640422 0.0275193 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644149 0.0287044 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.66342 0.0283337 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645956 0.00686453 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.668955 0.00767898 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.655218 -0.012605 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626685 0.00723527 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.635947 -0.0122343 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630413 0.00842045 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.725055 0.0280589 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.726768 0.00656677 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.70473 0.0172649 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.71952 0.0487136 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.699195 0.0379196 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715699 0.0478762 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.741558 0.0380155 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737738 0.0371781 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743272 0.0165234 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.302088 0.822021 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298094 0.802598 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282758 0.821938 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.309654 0.843459 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290324 0.843375 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313227 0.845472 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32499 0.824119 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328563 0.826132 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320997 0.804695 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.325175 0.741263 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325981 0.765112 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32493 0.747715 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304415 0.728307 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304171 0.734759 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.284462 0.7392 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305466 0.745704 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285513 0.756597 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306272 0.769553 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.218449 0.785699 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223304 0.778718 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22345 0.802677 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236497 0.794777 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241498 0.811756 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2594 0.796874 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236351 0.770818 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259253 0.772915 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241205 0.763837 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.292033 0.891539 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305711 0.872763 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28812 0.868678 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268233 0.893263 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.264319 0.870402 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.25811 0.876212 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285824 0.897348 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275701 0.880296 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299501 0.878572 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.206363 0.860225 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223536 0.854636 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230102 0.858689 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200429 0.843837 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224168 0.842301 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211667 0.821861 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193863 0.839784 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205101 0.817808 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211035 0.834196 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.26204 0.87538 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280934 0.860805 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266856 0.87108 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238827 0.867636 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.243643 0.863337 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234508 0.845317 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.252905 0.857361 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248586 0.835041 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271799 0.842785 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.360404 0.851488 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347059 0.832518 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335865 0.853509 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359125 0.857816 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334587 0.859838 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.344501 0.845176 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.370319 0.836826 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355695 0.824185 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356973 0.817857 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340361 0.83071 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.341208 0.822249 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325527 0.840365 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320744 0.825882 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30591 0.835537 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301973 0.812593 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336425 0.807766 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317654 0.794477 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337272 0.799305 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.369945 0.768944 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356171 0.780624 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356172 0.788341 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359115 0.755289 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345342 0.774685 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334511 0.753313 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359113 0.747572 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33451 0.745596 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34534 0.759252 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.411883 0.625955 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396287 0.607547 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.390369 0.630791 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423887 0.637535 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402373 0.642371 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420295 0.630706 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429805 0.61429 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426212 0.607462 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.414208 0.595882 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.344865 0.652948 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357326 0.651954 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357697 0.632683 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324581 0.639211 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337413 0.618946 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316758 0.624481 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324211 0.658482 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316388 0.643752 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336672 0.657489 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369058 0.688854 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.452905 0.58161 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434777 0.586467 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436077 0.5989 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447815 0.570193 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.430987 0.587483 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.424596 0.563633 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446515 0.55776 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423296 0.5512 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428387 0.562617 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.41723 0.637209 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418027 0.624734 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401533 0.642848 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39821 0.634089 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382513 0.639728 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379986 0.618494 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.414703 0.615976 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39648 0.600381 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4155 0.603501 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.396248 0.547099 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403175 0.557504 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388263 0.569716 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372907 0.539659 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.364922 0.562276 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356494 0.542624 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387819 0.527447 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.371406 0.530412 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.394747 0.537852 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.410169 0.541008 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405866 0.564748 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410472 0.548718 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393422 0.523836 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393725 0.531546 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372372 0.530405 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388816 0.539866 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367766 0.546435 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384513 0.563607 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320279 0.506807 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.296626 0.555534 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307914 0.550163 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297216 0.572202 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306582 0.572037 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307172 0.588706 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.327827 0.583171 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31728 0.549999 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338525 0.561133 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328569 0.544629 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.144155 0.692502 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.150298 0.696439 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164554 0.682184 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136163 0.670254 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156561 0.659936 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.134313 0.651943 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.121907 0.684509 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120057 0.666199 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12805 0.688447 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0847178 0.680265 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.104191 0.675047 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.107387 0.686972 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0815225 0.66834 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.104191 0.675047 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0978007 0.651197 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0783272 0.656415 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0946054 0.639272 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0978007 0.651197 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.160081 0.738169 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177224 0.721891 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165299 0.718696 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136231 0.731779 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141449 0.712305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.129524 0.70911 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.148156 0.734974 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141449 0.712305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165299 0.718696 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.213517 0.662308 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.194382 0.649801 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198584 0.673065 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23299 0.667526 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218058 0.678283 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233329 0.660237 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228788 0.644262 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229127 0.636974 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209653 0.631756 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.23918 0.710584 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233654 0.687599 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.216195 0.705059 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23045 0.719314 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207465 0.713788 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.216195 0.705059 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.24791 0.701855 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233654 0.687599 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242384 0.678869 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.266765 0.631486 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247291 0.636704 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250487 0.648629 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26357 0.619561 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247291 0.636704 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240901 0.612854 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.260374 0.607636 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237705 0.600929 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240901 0.612854 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.162741 0.579817 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179523 0.58737 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156259 0.583168 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144695 0.595088 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138214 0.598439 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.143431 0.617912 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167958 0.59929 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166695 0.622115 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.184741 0.606843 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.208861 0.556122 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215568 0.578791 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203643 0.575596 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.185011 0.549732 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179793 0.569205 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167868 0.56601 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.196936 0.552927 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179793 0.569205 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203643 0.575596 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.105912 0.577317 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128897 0.582843 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111438 0.600302 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0971825 0.586046 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102708 0.609032 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111438 0.600302 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.114642 0.568587 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128897 0.582843 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.137627 0.574113 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0955788 0.852418 9.1293e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.122151 0.937225 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.131874 0.915202 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11086 0.916553 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101346 0.944632 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.090055 0.92396 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0902645 0.930016 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12236 0.943281 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111279 0.928665 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.132084 0.921258 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.182656 0.890926 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167676 0.876622 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159019 0.897331 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179755 0.89227 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156118 0.898675 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161874 0.87931 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188412 0.871561 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.17053 0.8586 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173431 0.857256 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.134634 0.873196 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11765 0.858152 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.117797 0.882112 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152682 0.882275 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135845 0.89119 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153747 0.876309 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152536 0.858315 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.1536 0.852349 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135552 0.843271 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0359958 0.920407 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511067 0.915603 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0588574 0.912106 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0267625 0.901866 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0496241 0.893565 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0326401 0.878521 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0190117 0.905363 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0248894 0.882018 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0341227 0.900559 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0454909 0.840284 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0463379 0.831823 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0473735 0.856111 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0656554 0.850144 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0675379 0.865971 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0866667 0.851543 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0646197 0.825856 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0856311 0.827255 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0654667 0.817395 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.00436945 0.825102 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.025051 0.823964 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.018173 0.84533 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00570109 0.828008 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0195047 0.848237 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0277143 0.829777 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0125791 0.806642 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0345923 0.808411 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0332607 0.805505 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0752104 0.930963 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0941344 0.915684 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0806562 0.924191 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0520258 0.923076 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0574717 0.916304 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0477654 0.89991 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0655041 0.914568 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0612436 0.891402 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0844281 0.899289 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0523913 0.842832 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0750766 0.842434 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0593957 0.86055 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0327739 0.838004 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0397783 0.855722 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0358417 0.832778 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0484547 0.819888 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0515226 0.814662 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.07114 0.81949 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.141535 0.875744 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.146389 0.868763 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.129819 0.88655 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.119801 0.870135 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108085 0.880941 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102922 0.857544 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136371 0.852347 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.119492 0.839756 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141225 0.845366 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0684873 0.770032 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0507391 0.762305 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0481266 0.759394 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0824297 0.753586 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.062069 0.742948 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0786239 0.729413 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0850422 0.756497 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0812364 0.732325 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.067294 0.74877 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0299763 0.758864 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0114021 0.745277 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0263144 0.757489 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0533169 0.751424 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0496549 0.750049 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0580833 0.730397 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0384047 0.739212 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.043171 0.718185 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0198304 0.725625 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00272662 0.788473 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0544915 0.717566 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0588496 0.718734 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0368947 0.725632 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0389272 0.700615 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0213304 0.708681 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.027721 0.684831 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0608821 0.693716 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0496759 0.677932 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0652402 0.694884 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0280589 0.725055 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0172649 0.70473 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00656677 0.726768 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0380155 0.741558 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0165234 0.743272 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0371781 0.737738 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0487136 0.71952 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0478762 0.715699 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0379196 0.699195 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0275193 0.640422 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0283337 0.66342 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0287044 0.644149 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00723527 0.626685 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00842045 0.630413 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0122343 0.635947 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00686453 0.645956 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.012605 0.655218 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00767898 0.668955 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.106805 0.675276 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0875713 0.673094 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.091423 0.694308 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103087 0.676491 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0877049 0.695522 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0801352 0.675524 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0992356 0.655278 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0762835 0.65431 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0800016 0.653095 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.051506 0.606426 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0577732 0.666927 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.034894 0.669407 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0513875 0.68752 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0767937 0.663807 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.070408 0.6844 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.072935 0.663167 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0603001 0.645694 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0564414 0.645053 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0374209 0.648173 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0417568 0.762259 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0216407 0.748937 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0345526 0.759495 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0641429 0.753646 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0569387 0.750882 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0664129 0.731712 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.051231 0.743089 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053501 0.721155 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0311149 0.729767 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0454452 0.736829 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.046242 0.724354 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0297485 0.742467 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0264247 0.733709 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.010728 0.739347 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00820099 0.718114 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0429182 0.715595 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0246945 0.7 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.043715 0.70312 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00272662 0.788473 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.101422 0.730141 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0832945 0.725284 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0782041 0.736701 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.102723 0.717709 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0795043 0.724268 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0858949 0.700418 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107813 0.706291 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0909853 0.689001 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0896851 0.701434 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0269197 0.752567 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0144587 0.751574 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.014088 0.732303 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0472037 0.73883 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0343719 0.718566 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0550267 0.7241 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0475745 0.758102 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0553974 0.743371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0351134 0.757108 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0751594 0.655153 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0638711 0.649783 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0745692 0.671821 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0652028 0.671657 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0646126 0.688325 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0439578 0.682791 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0545047 0.649619 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0332597 0.660752 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0432164 0.644249 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0708196 0.669983 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0467378 0.671462 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0618185 0.690113 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0872804 0.667296 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0782793 0.687426 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0796593 0.666087 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0721997 0.648644 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0645786 0.647436 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0481178 0.650123 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.051506 0.606426 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0244627 0.646718 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0313903 0.657124 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.016478 0.669336 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00112207 0.639278 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00686255 0.661896 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0152909 0.642244 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0160343 0.627066 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.000378614 0.630031 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.022962 0.637471 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.34259 0.872345 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338969 0.848329 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32016 0.86421 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.333079 0.882715 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310649 0.87458 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.319948 0.869068 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351888 0.866833 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338757 0.853186 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.348268 0.842817 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.346884 0.808673 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322361 0.807762 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335792 0.82298 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.361611 0.799483 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350519 0.81379 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351815 0.789382 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34818 0.784265 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338384 0.774164 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.323657 0.783355 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.291048 0.849036 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304882 0.840755 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287867 0.826067 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267046 0.853652 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263865 0.830683 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.256877 0.849987 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28406 0.868341 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273891 0.864676 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297894 0.86006 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282313 0.885497 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29787 0.867718 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281455 0.876946 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258284 0.880514 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257427 0.871963 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249813 0.857752 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.274699 0.871286 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266228 0.848523 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290257 0.853506 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.21889 0.873186 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236437 0.866351 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240865 0.865588 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207715 0.856242 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22969 0.848644 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214088 0.832464 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203288 0.857005 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20966 0.833227 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.220835 0.850171 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.21762 0.818054 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241754 0.813612 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230661 0.83061 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20172 0.811087 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214761 0.823642 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209955 0.799677 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212813 0.794089 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221048 0.78268 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236948 0.789647 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.350165 0.828769 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347547 0.820583 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.333232 0.838905 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332668 0.824121 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315735 0.834258 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312554 0.811288 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.346984 0.805799 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32687 0.792966 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.344366 0.797614 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.29233 0.756464 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305929 0.765125 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288514 0.779336 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268464 0.751185 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.264649 0.774058 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258198 0.754567 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285879 0.736973 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275612 0.740355 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299478 0.745634 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.362219 0.753851 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352319 0.76987 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350765 0.774086 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347581 0.739791 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336127 0.760026 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.323042 0.74175 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.349134 0.735575 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324595 0.737534 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339233 0.751594 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.219248 0.690652 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223862 0.677807 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206403 0.695267 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198172 0.687036 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.185327 0.691651 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181711 0.670575 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215632 0.669577 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.199171 0.653116 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.220246 0.656732 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.261725 0.675225 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238562 0.683777 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261725 0.675225 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238562 0.683777 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267259 0.65457 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249631 0.642468 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249631 0.642468 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.203821 0.733129 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212373 0.709966 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183166 0.738664 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171063 0.721035 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171063 0.721035 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203821 0.733129 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212373 0.709966 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.12881 0.668451 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.151296 0.662426 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.137627 0.678869 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108751 0.661044 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.117567 0.671463 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111177 0.647613 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12242 0.644601 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.124846 0.631169 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144906 0.638576 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.115992 0.720665 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135288 0.711449 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135288 0.711449 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100872 0.705544 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.105047 0.681209 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100872 0.705544 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.105047 0.681209 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0796777 0.626446 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0954616 0.645433 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0796777 0.626446 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0954616 0.645433 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0852121 0.605791 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10653 0.604124 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10653 0.604124 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.197046 0.600215 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207465 0.609032 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191021 0.622701 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173196 0.593824 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167171 0.61631 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159765 0.596251 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.18964 0.580155 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176209 0.582581 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200059 0.588972 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.155041 0.551082 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174029 0.566866 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.134387 0.556617 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13272 0.577935 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13272 0.577935 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.155041 0.551082 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174029 0.566866 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.24926 0.587397 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240045 0.606693 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240045 0.606693 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23414 0.572277 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209804 0.576452 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23414 0.572277 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209804 0.576452 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.448155 0.626191 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.43276 0.614455 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42519 0.634643 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44434 0.625328 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.421375 0.63378 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42513 0.612729 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45191 0.60514 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4327 0.592541 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436515 0.593404 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399844 0.625435 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38905 0.60511 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378352 0.627149 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409801 0.641939 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388308 0.643653 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408963 0.638118 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420499 0.619901 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419661 0.61608 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409705 0.599576 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369058 0.688854 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.405974 0.594185 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410332 0.593017 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.394768 0.609969 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384019 0.587286 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372813 0.60307 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366422 0.57922 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399584 0.570335 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.381987 0.562269 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403942 0.569167 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.341809 0.659244 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.360383 0.645657 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345471 0.65787 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318468 0.651804 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32213 0.65043 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313702 0.630777 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33338 0.639592 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328614 0.618565 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351955 0.626005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.314012 0.567308 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336891 0.569787 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320398 0.587901 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294991 0.564188 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301377 0.584781 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29885 0.563547 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.311485 0.546074 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315344 0.545434 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334364 0.548554 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.433888 0.53788 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426423 0.55574 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423551 0.558395 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.417238 0.524182 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.406901 0.544697 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393124 0.528344 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42011 0.521526 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.395996 0.525689 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.412646 0.539387 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320279 0.506807 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399304 0.540802 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400119 0.563801 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400489 0.54453 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37902 0.527065 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.380205 0.530793 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359551 0.536327 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37865 0.546337 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.35918 0.555599 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379464 0.569335 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.354293 0.299716 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.347717 0.279022 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366989 0.292196 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375177 0.300337 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.387873 0.292817 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389485 0.280263 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355904 0.287162 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.370213 0.267088 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349329 0.266468 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.304702 0.250544 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32307 0.238717 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327715 0.259421 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.30352 0.250492 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.326533 0.259369 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320707 0.238612 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298875 0.229788 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316063 0.217908 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317244 0.21796 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.362978 0.289441 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.35549 0.267771 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378255 0.270044 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379952 0.302733 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.395229 0.283335 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389438 0.294353 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357187 0.30046 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366673 0.29208 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349699 0.278789 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.443285 0.282991 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.421181 0.271991 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4302 0.282046 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462437 0.27248 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.449353 0.271534 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459485 0.250967 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453417 0.262424 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.450466 0.240911 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431313 0.251423 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.449273 0.285685 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436139 0.282528 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.426189 0.27701 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45733 0.266055 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434246 0.257381 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452254 0.243269 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46728 0.271573 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462204 0.248787 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.454146 0.268416 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.486123 0.204606 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464339 0.202946 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470107 0.223366 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.487137 0.203998 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471122 0.222757 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466367 0.201729 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.481368 0.183578 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.460599 0.18131 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459584 0.181918 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.378635 0.228779 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.365937 0.225483 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383364 0.24293 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.402455 0.222377 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407185 0.236529 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.413578 0.21268 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385029 0.20493 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396152 0.195233 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.372331 0.201634 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.412573 0.147477 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39322 0.15977 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.412448 0.172167 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434131 0.147647 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434006 0.172338 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436336 0.16011 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414903 0.13525 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.417108 0.147713 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39555 0.147543 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.319723 0.177083 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.325124 0.189464 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.332294 0.198298 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337645 0.165722 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.350216 0.186938 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360967 0.166743 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330475 0.156889 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353797 0.157909 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335876 0.16927 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.115471 0.221102 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.126388 0.200597 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13987 0.220766 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119172 0.228435 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143571 0.228099 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13379 0.215264 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10569 0.208266 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120308 0.195095 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116607 0.187762 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.15554 0.180792 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.17557 0.171251 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166926 0.19323 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134265 0.182215 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.145651 0.194652 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.133019 0.174096 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.142909 0.160236 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141663 0.152117 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.162939 0.150694 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.18209 0.243049 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168159 0.227721 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.185251 0.218634 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.206066 0.245747 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209227 0.221332 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216111 0.233117 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188974 0.254834 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.199019 0.242204 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.175043 0.239506 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.151829 0.219088 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14514 0.205084 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163068 0.221861 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173729 0.215537 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.184969 0.218309 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188942 0.197981 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155801 0.19876 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171014 0.181204 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149113 0.184756 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.22829 0.248268 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207937 0.234532 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216949 0.2391 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.249439 0.237756 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238098 0.228589 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.250236 0.213509 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240428 0.233189 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241225 0.208942 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220075 0.219453 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.229756 0.167942 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207683 0.16569 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223214 0.183484 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.250271 0.162129 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.243729 0.177671 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248714 0.154064 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.234741 0.144336 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233184 0.13627 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212668 0.142084 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.105335 0.14887 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115741 0.153943 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121723 0.167242 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.118795 0.138714 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135183 0.157086 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.142661 0.13363 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.112813 0.125414 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.136679 0.120331 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.123219 0.130487 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.179968 0.0897843 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166467 0.105492 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.183804 0.114103 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.20386 0.0864233 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207696 0.110742 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.214251 0.0987702 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.186523 0.0778128 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196914 0.0901597 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173022 0.0935207 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.130858 0.0995811 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135326 0.123725 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134736 0.113639 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.148938 0.0843858 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.152816 0.0984435 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171487 0.0933338 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149528 0.0944715 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172078 0.10342 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153997 0.118615 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.269898 0.374298 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.270045 0.350338 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.291334 0.362218 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277815 0.391115 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299251 0.379036 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.285878 0.383973 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.256525 0.379235 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.264588 0.372093 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.256671 0.355276 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.235688 0.305995 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259438 0.312359 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245915 0.321516 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228556 0.291303 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238783 0.306824 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245173 0.282974 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.242079 0.282145 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.258696 0.273816 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265828 0.288509 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.32435 0.32435 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33812 0.32066 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32066 0.33812 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3005 0.317959 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29681 0.331729 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29042 0.307879 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317959 0.3005 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307879 0.29042 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331729 0.29681 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.334762 0.407156 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31686 0.392275 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.326552 0.388696 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357827 0.39864 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349618 0.380181 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362991 0.375243 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348135 0.402218 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353299 0.378821 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330233 0.387337 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.393346 0.348239 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383366 0.345565 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369843 0.354723 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386213 0.333547 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362711 0.340031 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369102 0.316181 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399736 0.324389 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382624 0.307023 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389757 0.321715 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.386461 0.346394 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362711 0.340031 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369843 0.354723 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399983 0.337237 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383366 0.345565 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389757 0.321715 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392851 0.322544 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382624 0.307023 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369102 0.316181 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.261966 0.385852 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259422 0.36581 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.278159 0.38141 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.280504 0.387198 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296698 0.382755 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.2965 0.368501 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.261768 0.371598 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277764 0.352901 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259225 0.351556 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.304189 0.32435 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29042 0.32066 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307879 0.33812 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328039 0.317959 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331729 0.331729 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33812 0.307879 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31058 0.3005 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32066 0.29042 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29681 0.29681 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.228803 0.30415 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238783 0.306824 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245915 0.321516 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.242326 0.294992 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259438 0.312359 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265828 0.288509 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.235194 0.2803 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.258696 0.273816 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245173 0.282974 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.612732 0.225282 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591695 0.212428 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60221 0.22113 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633805 0.215388 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623283 0.211236 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.63384 0.192641 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62329 0.206686 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623325 0.183939 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602253 0.193832 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.527458 0.200547 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522843 0.187702 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.540303 0.205161 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548533 0.196931 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561378 0.201546 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.564994 0.18047 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531074 0.179472 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.547535 0.163011 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.526459 0.166627 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.542885 0.243024 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534333 0.219861 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563539 0.248559 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575642 0.23093 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575642 0.23093 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542885 0.243024 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534333 0.219861 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.660425 0.189742 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645434 0.185725 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636618 0.196144 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657999 0.17631 0.57904 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634191 0.182712 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640582 0.158862 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666816 0.165892 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649399 0.148444 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651825 0.161875 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.574809 0.203972 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561378 0.201546 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.568784 0.181486 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598659 0.197581 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.592634 0.175095 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609078 0.188764 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591253 0.217641 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601672 0.208824 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577822 0.215215 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.620861 0.107144 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608016 0.102529 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625475 0.119989 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617245 0.128219 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621859 0.141064 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600784 0.14468 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599785 0.11076 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583324 0.127221 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58694 0.106145 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.643128 0.132649 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618482 0.133263 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631785 0.152367 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656585 0.130371 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645242 0.150088 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645397 0.128706 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643283 0.111266 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632094 0.109601 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618637 0.11188 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.591664 0.0609772 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572676 0.076761 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612319 0.0665116 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613986 0.0878298 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613986 0.0878298 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591664 0.0609772 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572676 0.076761 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549659 0.11011 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53924 0.118927 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555684 0.132596 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.573509 0.103719 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579534 0.126205 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58694 0.106145 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557065 0.09005 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570497 0.0924762 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.546646 0.0988668 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.484182 0.326876 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470513 0.310432 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.488171 0.302705 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507957 0.330051 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511946 0.305881 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.518062 0.316783 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490299 0.337778 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500404 0.324509 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476629 0.321334 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.436971 0.320401 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436675 0.29902 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.455413 0.3148 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453274 0.32392 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471717 0.318318 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469281 0.306057 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434535 0.30814 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.450543 0.290278 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434239 0.286759 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.426389 0.279233 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.445377 0.263449 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448298 0.286276 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415641 0.285616 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.43755 0.29266 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42388 0.276216 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41272 0.262789 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420959 0.253389 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431707 0.247006 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549787 0.275127 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549787 0.275127 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529727 0.282533 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536117 0.258683 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.516058 0.266089 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522448 0.242239 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556177 0.251277 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542508 0.234833 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556177 0.251277 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.457868 0.209819 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.458164 0.2312 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453963 0.210053 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476163 0.193527 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.472258 0.193761 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.494753 0.198616 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.480363 0.214674 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.498954 0.219763 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.480659 0.236055 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549603 0.17251 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528912 0.177908 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549105 0.191778 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557329 0.187292 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556831 0.20656 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544363 0.207471 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.537136 0.173421 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.524171 0.193601 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.516445 0.178819 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.562288 0.314604 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542501 0.306499 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541186 0.310183 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574255 0.299494 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.553152 0.295073 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566433 0.276279 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575569 0.29581 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567748 0.272595 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555781 0.287705 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.567359 0.227186 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54267 0.227528 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555283 0.246777 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579676 0.225054 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567601 0.244644 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567305 0.223263 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567063 0.205805 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554691 0.204014 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542374 0.206147 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.507811 0.298839 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.489718 0.287442 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505577 0.302049 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531251 0.291716 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529016 0.294927 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536597 0.273198 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515392 0.27711 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.520738 0.258591 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497299 0.265714 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.646362 0.0316054 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625173 0.0287309 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627981 0.0478 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647066 0.0277577 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628685 0.0439523 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62658 0.0210355 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644258 0.00868865 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623773 0.00196644 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623069 0.00581415 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.584898 0.0177119 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56353 0.0185345 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.580268 0.0364224 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.605935 0.0129918 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601305 0.0317022 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.605605 0.00909422 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.589197 -0.00489609 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.588867 -0.00879364 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567829 -0.00407348 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.593994 0.105299 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572783 0.0926585 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582384 0.100664 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.614541 0.0949359 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602932 0.090301 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613879 0.0719323 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604941 0.0869303 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604278 0.0639267 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58373 0.0742898 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607302 0.0604766 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607302 0.0604766 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587242 0.0678827 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593633 0.0440327 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.573573 0.0514389 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579964 0.0275889 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613693 0.0366265 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600023 0.0201827 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613693 0.0366265 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551884 0.118381 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536664 0.103361 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550745 0.0944221 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576307 0.116465 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575168 0.0925065 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58551 0.0995293 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562225 0.125404 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571428 0.108468 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.547006 0.110383 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.523344 0.0542684 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534291 0.0358996 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541988 0.0591566 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509132 0.0704822 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.527777 0.0753703 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505868 0.0683272 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.501435 0.0472252 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49817 0.0450702 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.512382 0.0288565 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.5935 -0.0473753 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57344 -0.0399691 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.595617 -0.0308315 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604929 -0.0318545 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607046 -0.0153107 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.596298 -0.00892756 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582752 -0.0409921 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574121 -0.0180651 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562692 -0.0335859 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.48882 -0.0212225 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497372 0.00194055 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491256 -0.00896145 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502764 -0.0395307 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505199 -0.0272696 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.525259 -0.0346758 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.50888 -0.0286287 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531375 -0.0237738 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517432 -0.00546563 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.530389 -0.0495897 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.519442 -0.031221 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53532 -0.0261165 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554507 -0.0538859 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.559438 -0.0304127 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567678 -0.0398133 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538628 -0.0589904 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.551799 -0.0449178 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.527681 -0.0406217 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.435909 0.01504 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423265 0.0115452 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440694 0.0289993 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459725 0.00864346 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46451 0.0226028 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470897 -0.0012478 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.442297 -0.00881065 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453468 -0.0187019 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.429652 -0.0123054 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.364644 0.0293677 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375512 0.0213457 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385352 0.0401449 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37527 0.0253024 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.395978 0.0360796 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396764 0.0132151 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.36543 0.0065032 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386924 -0.00558411 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376298 -0.00151881 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.426942 0.0903221 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.416328 0.0699989 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435083 0.0806307 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.449792 0.0891998 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.457933 0.0795084 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462029 0.0677542 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431037 0.078568 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.443274 0.0571224 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420423 0.0582447 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.523883 -0.000557006 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49924 -0.00208214 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.51057 0.0165974 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536722 -0.00475566 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523409 0.0123987 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.524918 -0.0104794 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.525392 -0.0234352 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.513588 -0.029159 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500749 -0.0249603 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.508666 0.0817008 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.488971 0.0722467 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.489545 0.0732807 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523872 0.0669012 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504751 0.058481 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.519382 0.0426474 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523298 0.0658672 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.518808 0.0416134 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.503602 0.0564131 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.540463 -0.00154892 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.52751 -0.00538221 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.524673 0.0156462 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529087 -0.00174531 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.513298 0.0154498 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504759 -0.00577498 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531924 -0.0227737 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507596 -0.0268034 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.518971 -0.026607 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.451803 -0.0707378 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435761 -0.0561039 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.454158 -0.0461991 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.475081 -0.0725109 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477435 -0.0479721 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.482316 -0.05965 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.456685 -0.0824157 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46392 -0.0695548 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440643 -0.0677817 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.459563 -0.081612 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.442243 -0.0665888 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.463589 -0.0696122 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.480415 -0.0721979 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.48444 -0.0601982 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.483946 -0.0477607 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459069 -0.0691745 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4626 -0.0447373 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.441749 -0.0541513 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.373728 -0.0495643 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383722 -0.030137 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382672 -0.0306825 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388102 -0.0651725 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.397047 -0.0462908 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41247 -0.0613535 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389151 -0.064627 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41352 -0.060808 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399146 -0.0451997 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.412497 -0.190929 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400273 -0.174844 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.417001 -0.16674 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436523 -0.195071 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.441027 -0.170881 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448325 -0.183127 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419795 -0.203175 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431597 -0.191231 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407571 -0.18709 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.343834 -0.12515 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353814 -0.122476 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360946 -0.107784 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357357 -0.134308 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374468 -0.116942 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380859 -0.140792 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.350225 -0.149 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.373727 -0.155484 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360204 -0.146326 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.41922 -0.10495 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40545 -0.10864 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42291 -0.0911807 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44307 -0.111341 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44676 -0.0975713 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45315 -0.121421 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425611 -0.128801 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435691 -0.138881 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.411841 -0.13249 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.502603 -0.174264 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.479659 -0.170327 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.495376 -0.15142 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509207 -0.166319 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.501981 -0.143475 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.492868 -0.154437 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49349 -0.185226 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477151 -0.173345 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470546 -0.18129 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.501491 -0.082906 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477742 -0.0892696 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484874 -0.0745774 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515014 -0.0920638 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.498397 -0.0837352 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504787 -0.107585 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507882 -0.106756 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497655 -0.122277 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484132 -0.11312 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.508376 -0.0810612 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.498397 -0.0837352 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484874 -0.0745774 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.501244 -0.0957534 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477742 -0.0892696 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484132 -0.11312 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.514767 -0.104911 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497655 -0.122277 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504787 -0.107585 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.411775 -0.200165 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399922 -0.179342 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415187 -0.189948 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436152 -0.199808 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.439564 -0.189591 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448677 -0.178629 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420888 -0.189202 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.433412 -0.168023 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409035 -0.168379 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.439381 -0.10495 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45315 -0.10864 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435691 -0.0911807 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415531 -0.111341 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.411841 -0.0975713 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40545 -0.121421 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.43299 -0.128801 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42291 -0.138881 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44676 -0.13249 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.350719 -0.123305 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374468 -0.116942 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360946 -0.107784 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343587 -0.137998 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353814 -0.122476 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360204 -0.146326 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357109 -0.147155 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.373727 -0.155484 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380859 -0.140792 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.160406 -0.0522053 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171954 -0.0513956 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178533 -0.0358698 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172236 -0.0607319 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.190363 -0.0443964 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195615 -0.0684488 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165658 -0.0762577 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189036 -0.0839747 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177206 -0.075448 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.176731 -0.00705049 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192673 -0.025725 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200733 -0.00352517 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171177 0.00138875 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195179 0.00491406 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.181564 -0.00884647 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163117 -0.020811 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173504 -0.0310463 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179058 -0.0394855 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.20044 0.0258737 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196602 0.00551963 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215612 0.0203763 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.21976 0.0270852 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.234932 0.0215878 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.235241 0.00794264 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200749 0.0122285 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.21623 -0.00691403 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196911 -0.00812553 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.234308 -0.0942304 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.221514 -0.0854464 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238704 -0.0714204 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.258223 -0.0997955 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.262619 -0.0769856 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.269343 -0.0965768 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241032 -0.113822 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.252152 -0.110603 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228237 -0.105038 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.275459 -0.0076281 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.255218 -0.0167139 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.270078 -0.00142185 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.297806 -0.0152725 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.292425 -0.00906621 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299911 -0.0320026 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282946 -0.0305645 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.285051 -0.0472946 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.262704 -0.0396503 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.324811 -0.0817333 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.300317 -0.0800146 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.313378 -0.0603366 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.334899 -0.0811832 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.323466 -0.0597864 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320493 -0.0789143 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.321838 -0.100861 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307433 -0.0985923 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.297345 -0.0991425 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.195663 -0.127519 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194866 -0.104303 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.201738 -0.108803 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.217423 -0.138245 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223497 -0.119529 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238386 -0.125754 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210551 -0.133744 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.231514 -0.121254 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209754 -0.110528 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.291073 -0.126206 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.271345 -0.119897 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293457 -0.110246 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.301332 -0.10979 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.303716 -0.0938302 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.291862 -0.0870656 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.279219 -0.119442 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.269749 -0.0967168 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.25949 -0.113132 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.20388 -0.0673141 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216456 -0.0490355 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.198742 -0.0609052 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207384 -0.0906706 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.202246 -0.0842617 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223463 -0.0957484 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225098 -0.0788008 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241177 -0.0838786 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.237674 -0.0605222 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.508983 0.690426 8.51251e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.47411 0.767658 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.467528 0.744501 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.489758 0.749038 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491377 0.779098 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507025 0.760478 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502061 0.767382 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469146 0.774562 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.47983 0.762845 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462564 0.751405 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.418941 0.714226 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.43889 0.704751 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44101 0.724842 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.416335 0.712374 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.438403 0.722991 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.433677 0.701048 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414215 0.692283 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431557 0.680957 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434163 0.682808 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.481931 0.703418 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500827 0.694124 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491475 0.716184 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459538 0.704962 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469082 0.717727 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.456041 0.697211 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46889 0.682902 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.465393 0.675152 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.487786 0.673608 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.560084 0.767402 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543179 0.760285 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53997 0.755145 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574398 0.750585 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554284 0.738328 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571808 0.726651 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577608 0.755725 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575017 0.731791 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.560703 0.748608 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.573364 0.687731 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571303 0.682033 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56324 0.703871 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.553195 0.688893 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543071 0.705033 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530964 0.684356 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561258 0.667055 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539027 0.662518 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.559196 0.661356 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.601808 0.682851 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579842 0.680568 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58454 0.700216 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603648 0.680237 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58638 0.697602 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583522 0.675339 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59895 0.660588 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.578824 0.65569 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576984 0.658304 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.506594 0.773394 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491321 0.755462 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507924 0.764807 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530616 0.768632 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531946 0.760045 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539365 0.745938 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.514012 0.759287 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522762 0.736593 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49874 0.741355 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.538818 0.693658 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517905 0.691194 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534075 0.708875 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.560445 0.687649 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555702 0.702866 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561158 0.679176 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544274 0.669969 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544988 0.661495 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523361 0.667505 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.447385 0.709346 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.447429 0.703286 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46231 0.721188 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466788 0.703718 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.481713 0.71556 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.486235 0.692031 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.451907 0.685816 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471354 0.674129 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.451951 0.679757 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.269894 0.672915 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.275822 0.649528 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293281 0.666987 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277236 0.683032 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.300624 0.677104 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.290507 0.669762 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259777 0.665573 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273047 0.652302 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265705 0.642185 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.279361 0.614273 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.303327 0.613293 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.288206 0.628413 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.262487 0.604959 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.271332 0.619099 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.269578 0.594664 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277607 0.589839 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.284698 0.579544 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.301572 0.588858 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.328536 0.663448 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314396 0.654603 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.329516 0.639482 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.35297 0.665202 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353951 0.641237 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.363265 0.658111 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33785 0.680322 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348145 0.673232 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32371 0.671477 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.321274 0.684748 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.308341 0.666888 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.326131 0.678752 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.344967 0.681014 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349824 0.675018 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355727 0.659419 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327177 0.669149 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337937 0.647554 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314244 0.651289 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.391875 0.684201 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.389739 0.622198 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366159 0.617804 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378964 0.63493 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407771 0.61539 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396997 0.628121 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.402224 0.604188 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.394966 0.598265 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389418 0.587062 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.371386 0.593871 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.258061 0.621535 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.264057 0.616678 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.275921 0.634468 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.27366 0.615632 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29152 0.628565 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.295255 0.604872 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.261795 0.597842 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.28339 0.587082 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267791 0.592985 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.320611 0.55307 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.30788 0.563845 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.325005 0.57665 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.344544 0.547843 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348938 0.571423 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355747 0.553391 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327419 0.535038 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338621 0.540585 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314688 0.545813 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.258608 0.550934 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.316595 0.626214 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318408 0.606941 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335868 0.624401 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.311592 0.648676 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330864 0.646863 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.308402 0.651867 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.294133 0.631217 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.290942 0.634407 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.295946 0.611945 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.319608 0.539107 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307378 0.556863 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.322499 0.541743 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.344043 0.540862 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.346933 0.543497 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356248 0.560372 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328923 0.555982 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.341128 0.575492 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316693 0.573738 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.403702 0.623201 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401066 0.62031 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385946 0.635431 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386827 0.613886 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369071 0.626116 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367317 0.601681 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401947 0.598766 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382437 0.586561 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399312 0.595876 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.305407 0.69384 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296616 0.671002 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317721 0.674446 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.325704 0.701111 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338018 0.681717 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337211 0.685545 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3046 0.697667 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316107 0.682101 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.295809 0.67483 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.391875 0.684201 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.329538 0.677411 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314897 0.661584 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.332022 0.674389 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353472 0.672184 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355956 0.669162 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362764 0.65113 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.336346 0.659378 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.345639 0.638325 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.321705 0.643552 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.248969 0.637402 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.268363 0.625088 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.271807 0.646193 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245142 0.638209 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267979 0.647 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.260708 0.626702 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241698 0.617105 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.257264 0.605598 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.261092 0.604791 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.265398 0.613271 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.26842 0.610787 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.281225 0.627912 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.283431 0.606463 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299257 0.621104 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.304484 0.59717 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.270625 0.589337 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.291679 0.580045 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273647 0.586853 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.258608 0.550934 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.678928 0.639472 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661636 0.629767 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.664108 0.621631 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698678 0.626079 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683858 0.608237 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701135 0.602979 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696205 0.634214 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698662 0.611115 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678912 0.624508 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.640648 0.631982 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625749 0.614812 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64267 0.62585 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.664623 0.627081 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666645 0.620949 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673698 0.605012 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647702 0.616044 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656777 0.593974 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632802 0.598874 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.595495 0.63057 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594239 0.605919 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615286 0.617371 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608828 0.641795 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628619 0.628595 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.620906 0.628369 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587782 0.630343 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59986 0.616917 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586526 0.605692 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.689897 0.57563 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693998 0.575587 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673115 0.585222 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.672626 0.560848 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655844 0.57044 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659456 0.546023 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693509 0.551213 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680339 0.536388 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69761 0.55117 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.602201 0.570049 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623084 0.560414 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615021 0.582252 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582032 0.571211 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594852 0.583414 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582745 0.562738 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.590095 0.549372 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.590808 0.540899 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610978 0.539737 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.627785 0.478525 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615951 0.497935 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630799 0.484234 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.652241 0.479365 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655255 0.485075 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.664864 0.499616 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637394 0.493066 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.650016 0.513317 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62556 0.512476 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.73992 0.563328 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.720935 0.559693 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719679 0.577348 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737863 0.557208 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717623 0.571228 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.716821 0.547453 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739118 0.539553 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718076 0.529798 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.720133 0.535918 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.688647 0.474542 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666351 0.485132 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.686417 0.498226 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.704854 0.480953 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.702624 0.504637 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698765 0.497955 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.684788 0.46786 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678699 0.484862 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.662492 0.47845 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.690713 0.554862 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.667813 0.552739 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682694 0.570641 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.710116 0.549235 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.702097 0.565014 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.706619 0.541484 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.695235 0.531333 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691738 0.523582 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.672335 0.52921 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.499795 0.519956 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.493653 0.523893 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.479397 0.509638 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507788 0.497708 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.48739 0.48739 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509638 0.479397 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522043 0.511963 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523893 0.493653 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515901 0.515901 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.559233 0.507719 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539759 0.502501 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536564 0.514426 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562428 0.495794 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539759 0.502501 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54615 0.478651 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.565623 0.483869 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549345 0.466726 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54615 0.478651 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.483869 0.565623 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466726 0.549345 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.478651 0.54615 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507719 0.559233 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502501 0.539759 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.514426 0.536564 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.495794 0.562428 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502501 0.539759 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.478651 0.54615 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.430434 0.489762 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.449569 0.477255 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.445366 0.500519 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41096 0.49498 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425893 0.505737 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410622 0.487691 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415162 0.471716 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414824 0.464428 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434297 0.45921 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.404771 0.538038 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410297 0.515053 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427756 0.532513 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4135 0.546768 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436486 0.541242 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427756 0.532513 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396041 0.529309 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410297 0.515053 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401567 0.506323 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.377186 0.45894 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396659 0.464158 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.393464 0.476083 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380381 0.447015 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396659 0.464158 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40305 0.440308 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383576 0.43509 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406245 0.428383 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40305 0.440308 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.48121 0.407271 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464428 0.414824 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.487691 0.410622 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499256 0.422542 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505737 0.425893 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500519 0.445366 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.475992 0.426744 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477255 0.449569 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45921 0.434297 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.43509 0.383576 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428383 0.406245 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440308 0.40305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45894 0.377186 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464158 0.396659 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476083 0.393464 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.447015 0.380381 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464158 0.396659 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440308 0.40305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.538038 0.404771 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515053 0.410297 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.532513 0.427756 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.546768 0.4135 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541242 0.436486 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.532513 0.427756 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529309 0.396041 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515053 0.410297 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.506323 0.401567 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.672915 0.269894 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649528 0.275822 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666987 0.293281 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683032 0.277236 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.677104 0.300624 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669762 0.290507 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665573 0.259777 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.652302 0.273047 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642185 0.265705 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.592776 0.280905 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.580045 0.291679 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59717 0.304484 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.61671 0.275678 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621104 0.299257 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627912 0.281225 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599585 0.262872 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610787 0.26842 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586853 0.273647 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.661904 0.350033 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638325 0.345639 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65113 0.362764 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679937 0.343224 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669162 0.355956 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674389 0.332022 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.667131 0.326099 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661584 0.314897 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643552 0.321705 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.685865 0.340177 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679339 0.33606 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669651 0.355123 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669679 0.336151 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.653465 0.351097 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.646968 0.328008 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679367 0.317089 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656656 0.308945 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.672841 0.312971 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.664041 0.412036 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.600701 0.391282 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586561 0.382437 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601681 0.367317 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625136 0.393037 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626116 0.369071 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.635431 0.385946 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610016 0.408157 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62031 0.401066 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.595876 0.399312 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.602632 0.256944 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587686 0.273158 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606749 0.26347 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62572 0.263442 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.629838 0.269968 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633864 0.286153 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606658 0.27313 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.614801 0.295841 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591712 0.289344 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551527 0.342108 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575492 0.341128 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.560372 0.356248 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534652 0.332793 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543497 0.346933 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541743 0.322499 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549772 0.317673 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556863 0.307378 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.573738 0.316693 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.530773 0.278768 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.663938 0.633406 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64522 0.617928 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65892 0.626429 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687239 0.625707 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682221 0.61873 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691822 0.602531 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673539 0.617206 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678123 0.59403 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.654822 0.601728 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.580238 0.601562 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.581665 0.587563 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59781 0.605914 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.597491 0.599646 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615063 0.603999 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616171 0.583732 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.581346 0.581295 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600026 0.565381 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582773 0.567297 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.608008 0.63767 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601637 0.613891 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623239 0.620102 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626157 0.646756 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.641389 0.629188 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637936 0.632063 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604555 0.640545 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616334 0.625852 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598184 0.616766 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.729812 0.597914 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711617 0.592661 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70632 0.602084 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732864 0.584178 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.709372 0.588348 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.71772 0.565189 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.738161 0.574755 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.723017 0.555767 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719965 0.569503 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.658095 0.605761 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647455 0.607672 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643855 0.58746 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.676573 0.589763 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.662334 0.571461 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.684413 0.575674 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680174 0.609975 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.688013 0.595887 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669535 0.611885 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.712906 0.511567 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.699372 0.507717 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.710453 0.529503 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.704747 0.526889 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.702295 0.544826 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683054 0.538362 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693665 0.505104 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671972 0.516576 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680131 0.501254 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.70016 0.547376 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.676324 0.546319 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690564 0.564621 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717636 0.542652 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70804 0.559898 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711276 0.536873 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.703396 0.524351 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.697037 0.518571 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679561 0.523294 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.67091 0.466887 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.650637 0.480853 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671107 0.490138 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690617 0.471745 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690815 0.494995 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690052 0.490567 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.670147 0.46246 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669581 0.481283 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649874 0.476425 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.60809 0.516313 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60089 0.524375 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616221 0.538029 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631397 0.508952 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639529 0.530668 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647504 0.509653 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616065 0.495298 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632172 0.495999 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608865 0.50336 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.626214 0.316595 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606941 0.318408 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624401 0.335868 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648676 0.311592 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.646863 0.330864 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651867 0.308402 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631217 0.294133 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634407 0.290942 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.611945 0.295946 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.537564 0.341105 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.540585 0.338621 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.553391 0.355747 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555596 0.334297 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571423 0.348938 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57665 0.325005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542791 0.317172 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563845 0.30788 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545813 0.314688 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.601704 0.405245 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587062 0.389418 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604188 0.402224 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625637 0.400018 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628121 0.396997 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.63493 0.378964 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608512 0.387213 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617804 0.366159 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593871 0.371386 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.697473 0.31938 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674538 0.318074 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681812 0.338182 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701209 0.31822 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.685547 0.337022 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682009 0.315754 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693935 0.298112 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674736 0.295646 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671 0.296805 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.664041 0.412036 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.675867 0.351035 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673232 0.348145 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.658111 0.363265 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.658993 0.341721 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.641237 0.353951 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639482 0.329516 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674113 0.3266 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.654603 0.314396 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671477 0.32371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.623429 0.245336 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604627 0.260997 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624736 0.268271 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644697 0.248874 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.646004 0.271809 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647163 0.268073 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624589 0.2416 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627055 0.2608 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.605787 0.257262 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.591774 0.266942 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579544 0.284698 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594664 0.269578 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616209 0.268696 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619099 0.271332 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628413 0.288206 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601088 0.283817 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613293 0.303327 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.588858 0.301572 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.530773 0.278768 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.424703 0.518106 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420089 0.505261 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.437548 0.522721 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.445778 0.51449 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.458623 0.519105 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462239 0.498029 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428319 0.497031 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44478 0.48057 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423704 0.484186 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.382226 0.502679 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405389 0.511231 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382226 0.502679 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405389 0.511231 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376691 0.482024 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39432 0.469922 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39432 0.469922 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.44013 0.560583 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431578 0.53742 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.460785 0.566118 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.472887 0.548489 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.472887 0.548489 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44013 0.560583 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431578 0.53742 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.51514 0.495905 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.492654 0.48988 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.506323 0.506323 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5352 0.488498 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.526383 0.498917 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.532774 0.475067 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.521531 0.472055 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.519105 0.458623 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499045 0.46603 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.527958 0.548119 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.508662 0.538903 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.508662 0.538903 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543078 0.532998 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538903 0.508662 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543078 0.532998 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538903 0.508662 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.564273 0.4539 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548489 0.472887 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.564273 0.4539 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548489 0.472887 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558738 0.433245 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53742 0.431578 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53742 0.431578 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.446904 0.427669 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436486 0.436486 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45293 0.450155 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470754 0.421278 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.47678 0.443764 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484186 0.423704 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.454311 0.407609 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.467742 0.410035 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.443892 0.416426 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.488909 0.378536 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469922 0.39432 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509564 0.384071 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511231 0.405389 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511231 0.405389 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.488909 0.378536 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469922 0.39432 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.39469 0.414851 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403906 0.434147 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403906 0.434147 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409811 0.399731 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434147 0.403906 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409811 0.399731 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434147 0.403906 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.871334 -0.102403 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.850164 -0.113406 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862937 -0.100577 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.892817 -0.111133 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.884419 -0.109307 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.893129 -0.130866 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880044 -0.123961 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880356 -0.143694 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.858873 -0.134964 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.781177 -0.120908 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.778973 -0.13149 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.795477 -0.113462 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.801282 -0.125067 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.815582 -0.11762 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819182 -0.139808 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.784778 -0.143095 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802678 -0.157836 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.782573 -0.153678 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.811594 -0.0654286 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.80102 -0.0876595 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.820516 -0.0820122 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.833964 -0.0632344 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.842886 -0.079818 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.845761 -0.083271 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.814468 -0.0688817 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.826265 -0.0889183 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803895 -0.0911125 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.926643 -0.128672 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.90826 -0.133221 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.904034 -0.1198 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.926768 -0.139481 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.904159 -0.130608 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.908508 -0.154838 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.930993 -0.152902 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.912733 -0.16826 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.912609 -0.157451 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.853284 -0.0905999 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.839638 -0.0940331 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840233 -0.111382 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.873773 -0.103926 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860723 -0.124708 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880618 -0.120685 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.873178 -0.086577 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880022 -0.103336 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.859532 -0.0900102 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.894035 -0.188167 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.885777 -0.195141 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.89378 -0.172046 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880811 -0.172463 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880556 -0.156342 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.859328 -0.163733 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.872807 -0.195558 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.851325 -0.186828 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.864549 -0.202532 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.891905 -0.197746 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.867957 -0.193701 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.884286 -0.175383 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.908019 -0.198259 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.900401 -0.175896 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.900186 -0.194726 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.89169 -0.216576 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.883856 -0.213043 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.867741 -0.212531 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.843832 -0.25245 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.826426 -0.235043 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.846687 -0.233837 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.865646 -0.247028 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.868501 -0.228415 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.870053 -0.224198 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.845385 -0.248234 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.849792 -0.225404 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.827978 -0.230827 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.794108 -0.212743 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.788345 -0.199907 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802328 -0.189621 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.817265 -0.220563 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.825486 -0.197441 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.83466 -0.215547 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803282 -0.230849 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.820676 -0.225832 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.797518 -0.218012 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.597249 -0.125845 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.592635 -0.138689 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610094 -0.12123 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618324 -0.12946 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631169 -0.124846 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634785 -0.145921 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600865 -0.14692 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617326 -0.163381 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.596251 -0.159765 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.554772 -0.141271 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577935 -0.13272 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554772 -0.141271 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577935 -0.13272 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549237 -0.161926 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566866 -0.174029 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566866 -0.174029 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.612676 -0.0833673 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604124 -0.10653 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633331 -0.0778329 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645433 -0.0954616 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645433 -0.0954616 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612676 -0.0833673 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604124 -0.10653 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687686 -0.148046 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6652 -0.154071 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678869 -0.137627 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.707746 -0.155452 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698929 -0.145033 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70532 -0.168883 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.694077 -0.171896 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691651 -0.185327 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671591 -0.177921 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.700504 -0.095832 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681209 -0.105047 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681209 -0.105047 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715624 -0.110952 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711449 -0.135288 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715624 -0.110952 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711449 -0.135288 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.736819 -0.190051 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721035 -0.171063 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.736819 -0.190051 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721035 -0.171063 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.731284 -0.210706 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.709966 -0.212373 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.709966 -0.212373 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.61945 -0.216282 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609032 -0.207465 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625476 -0.193796 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6433 -0.222672 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649326 -0.200186 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656732 -0.220246 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626857 -0.236341 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640288 -0.233915 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616438 -0.227525 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.661455 -0.265414 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642468 -0.249631 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.68211 -0.25988 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683777 -0.238562 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683777 -0.238562 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661455 -0.265414 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642468 -0.249631 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.567237 -0.2291 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576452 -0.209804 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576452 -0.209804 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582357 -0.24422 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606693 -0.240045 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582357 -0.24422 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606693 -0.240045 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.66171 0.103063 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.653258 0.0800983 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673446 0.0876683 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682761 0.106818 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.694497 0.0914233 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69536 0.0876083 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.662574 0.0992478 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.675172 0.0800382 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.654121 0.0762832 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599047 0.0239663 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.662466 0.0547519 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660752 0.0332597 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682791 0.0439578 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.668 0.0754066 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.688325 0.0646126 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671821 0.0745692 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645962 0.0647085 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649783 0.0638711 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644249 0.0432164 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.750021 0.0887955 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.729506 0.078459 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732161 0.0813312 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.766375 0.075018 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.748514 0.0675537 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.762212 0.050904 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.763719 0.0721458 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759557 0.0480318 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743204 0.0618093 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.747099 0.0542122 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743371 0.0553974 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.7241 0.0550267 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741565 0.0335575 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718566 0.0343719 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732303 0.014088 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.760836 0.0339282 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.751574 0.0144587 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.757108 0.0351134 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.781094 -0.024813 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.693716 0.0608821 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.677932 0.0496759 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.694884 0.0652402 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717566 0.0544915 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718734 0.0588496 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.725632 0.0368947 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.700615 0.0389272 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.708681 0.0213304 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.684831 0.027721 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.720593 -0.0310802 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.7 -0.0246945 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718114 -0.00820099 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741827 -0.0336072 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739347 -0.010728 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.742467 -0.0297485 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.723713 -0.0501007 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.724354 -0.046242 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70312 -0.043715 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.628657 -0.00328338 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630031 0.000378614 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642244 0.0152909 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648309 -0.0117117 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661896 0.00686255 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669336 -0.016478 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636097 -0.026624 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657124 -0.0313903 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637471 -0.022962 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.909872 -0.0977075 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.891613 -0.104052 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.886771 -0.0997803 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.917612 -0.113625 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.894512 -0.115698 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.907093 -0.135886 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.922453 -0.117896 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.911935 -0.140158 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.904194 -0.124241 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.867758 -0.11253 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.846864 -0.122142 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860854 -0.107566 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.889596 -0.120593 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.882692 -0.115629 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.890541 -0.138267 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.875606 -0.135168 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.876551 -0.152843 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.854713 -0.14478 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.826973 -0.0627848 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.81296 -0.083104 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.830202 -0.0805529 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.850898 -0.0640908 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.854126 -0.0818589 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860809 -0.0857161 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.833656 -0.0666419 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.843568 -0.0882673 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819643 -0.0869612 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.876203 -0.130609 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.879733 -0.128522 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.857385 -0.124356 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862935 -0.149395 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.844117 -0.143141 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.853198 -0.166093 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.885283 -0.153561 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.875546 -0.170259 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.888813 -0.151474 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.798532 -0.108311 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.797989 -0.131037 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819589 -0.119537 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.80454 -0.0890219 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.825597 -0.100248 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.810005 -0.0924597 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.78294 -0.100522 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.788405 -0.10396 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.782397 -0.123249 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.785723 -0.180723 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.798991 -0.161937 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.782104 -0.173028 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.78966 -0.203667 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786041 -0.195972 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.806864 -0.207825 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.806546 -0.192576 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.82375 -0.196734 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819813 -0.17379 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.920038 -0.201143 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.900209 -0.201384 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.910616 -0.17991 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.918112 -0.192861 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.90869 -0.171628 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.896357 -0.18482 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.907705 -0.214335 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.88595 -0.206294 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.887876 -0.214576 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.824206 -0.252002 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.810793 -0.231282 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.827952 -0.234336 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.848158 -0.251396 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.851905 -0.23373 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.858698 -0.23007 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.830999 -0.248342 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.841538 -0.227016 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.817586 -0.227621 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.868948 -0.209658 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.84746 -0.202239 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.865773 -0.186008 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.889121 -0.210757 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.885946 -0.187106 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.887806 -0.204436 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.870808 -0.226988 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.869493 -0.220667 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.84932 -0.219569 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.661946 0.0667914 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65711 0.0452771 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680354 0.0511945 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673611 0.0847128 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.692019 0.069116 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680439 0.08112 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.650366 0.0787954 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657195 0.0752026 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64553 0.0572811 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599047 0.0239663 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.634953 -0.000226782 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655218 0.012605 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.635947 0.0122343 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.629419 -0.0208815 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630413 -0.00842045 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644149 -0.0287044 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64869 -0.0205108 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.66342 -0.0283337 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.668955 -0.00767898 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.746894 0.0650768 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739183 0.0653796 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.723153 0.0607735 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.748035 0.0437239 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.724295 0.0394207 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741466 0.0226739 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.764065 0.04833 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.757496 0.02728 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.756355 0.0486329 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.732368 -0.0484665 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715699 -0.0478762 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737738 -0.0371781 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737902 -0.0278118 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743272 -0.0165234 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.726768 -0.00656677 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715864 -0.0385099 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70473 -0.0172649 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.699195 -0.0379196 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.781094 -0.024813 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.706291 0.107813 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.689001 0.0909853 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701434 0.0896851 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.730141 0.101422 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.725284 0.0832945 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.736701 0.0782041 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717709 0.102723 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.724268 0.0795043 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.700418 0.0858949 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.740802 0.0511556 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718185 0.043171 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.730397 0.0580833 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.760455 0.0427273 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.750049 0.0496549 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.757489 0.0263144 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.748242 0.027815 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.745277 0.0114021 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.725625 0.0198304 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.650692 0.0721382 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645053 0.0564414 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663167 0.072935 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671925 0.0696112 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6844 0.070408 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.68752 0.0513875 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.653812 0.0531177 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669407 0.034894 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648173 0.0374209 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.672341 -0.123995 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666199 -0.120057 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651943 -0.134313 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680334 -0.146243 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659936 -0.156561 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682184 -0.164554 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69459 -0.131987 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696439 -0.150298 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.688447 -0.12805 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.731779 -0.136231 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.712305 -0.141449 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70911 -0.129524 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.734974 -0.148156 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.712305 -0.141449 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718696 -0.165299 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.738169 -0.160081 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721891 -0.177224 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718696 -0.165299 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.656415 -0.0783272 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639272 -0.0946054 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651197 -0.0978007 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680265 -0.0847178 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.675047 -0.104191 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.686972 -0.107387 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.66834 -0.0815225 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.675047 -0.104191 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651197 -0.0978007 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.60298 -0.154189 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.622115 -0.166695 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617912 -0.143431 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583506 -0.148971 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598439 -0.138214 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583168 -0.156259 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587708 -0.172234 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58737 -0.179523 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606843 -0.184741 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.577317 -0.105912 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582843 -0.128897 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600302 -0.111438 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586046 -0.0971825 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609032 -0.102708 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600302 -0.111438 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.568587 -0.114642 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582843 -0.128897 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574113 -0.137627 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549732 -0.185011 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569205 -0.179793 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56601 -0.167868 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.552927 -0.196936 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569205 -0.179793 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575596 -0.203643 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556122 -0.208861 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.578791 -0.215568 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575596 -0.203643 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.653756 -0.23668 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636974 -0.229127 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660237 -0.233329 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671802 -0.221409 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678283 -0.218058 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673065 -0.198584 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648538 -0.217207 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649801 -0.194382 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631756 -0.209653 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607636 -0.260374 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600929 -0.237705 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612854 -0.240901 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631486 -0.266765 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636704 -0.247291 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648629 -0.250487 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619561 -0.26357 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636704 -0.247291 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612854 -0.240901 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.710584 -0.23918 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687599 -0.233654 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.705059 -0.216195 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719314 -0.23045 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.713788 -0.207465 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.705059 -0.216195 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701855 -0.24791 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687599 -0.233654 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678869 -0.242384 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786005 -0.343435 8.51251e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.824791 -0.400556 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802599 -0.392663 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.821021 -0.376528 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.843843 -0.400347 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840073 -0.376319 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840701 -0.392245 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.82542 -0.416482 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.822279 -0.40838 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803228 -0.408589 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.734271 -0.367981 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.731279 -0.362711 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.745269 -0.348136 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.756109 -0.376044 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.767107 -0.356199 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.774956 -0.378837 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.74212 -0.390619 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.760966 -0.393412 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739128 -0.385349 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.80634 -0.308073 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786996 -0.316395 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802721 -0.300378 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.829184 -0.315299 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.825565 -0.307605 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.832685 -0.330849 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.813459 -0.331317 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.81696 -0.346866 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.794116 -0.339639 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.878086 -0.365674 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.859887 -0.367962 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.863875 -0.346241 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.872736 -0.362827 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.858526 -0.343394 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.849188 -0.362269 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.868748 -0.384548 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.8452 -0.38399 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.85055 -0.386837 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.848999 -0.272611 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.828835 -0.281616 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.829121 -0.278432 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862893 -0.287278 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.843015 -0.293099 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.856621 -0.310951 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862606 -0.290462 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.856335 -0.314135 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.842441 -0.299468 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.819591 -0.297057 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.814956 -0.293153 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.79807 -0.304244 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.823527 -0.320001 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802007 -0.327188 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.822829 -0.339041 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840413 -0.30891 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.839716 -0.32795 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.835779 -0.305006 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.793573 -0.436217 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.776294 -0.419454 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.796968 -0.420728 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.815094 -0.42903 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.818489 -0.413542 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819335 -0.405081 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.79442 -0.427756 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.798662 -0.403807 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.777141 -0.410993 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.747522 -0.356966 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759239 -0.339469 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.740618 -0.352002 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.750453 -0.380746 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743549 -0.375782 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.765101 -0.387029 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.769074 -0.368213 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.783722 -0.374496 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.780791 -0.350716 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.704862 -0.392427 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717401 -0.374248 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.714218 -0.373948 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.716744 -0.408767 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.726099 -0.390287 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741164 -0.406927 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719927 -0.409067 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.744347 -0.407227 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732465 -0.390887 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.517869 -0.413579 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528508 -0.393219 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.525596 -0.395831 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531404 -0.430134 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539131 -0.412386 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555577 -0.426328 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534315 -0.427522 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558488 -0.423716 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544953 -0.407161 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499428 -0.347819 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.529037 -0.375068 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530412 -0.371406 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542624 -0.356494 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548689 -0.383497 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562276 -0.364922 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569716 -0.388263 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536477 -0.398409 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557504 -0.403175 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.537852 -0.394747 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.612625 -0.451897 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593593 -0.436515 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.614807 -0.432663 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632624 -0.444328 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634806 -0.425094 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633591 -0.421376 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.61141 -0.448179 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612377 -0.425227 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.592379 -0.432797 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.620974 -0.402865 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600381 -0.39648 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618494 -0.379986 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642207 -0.405392 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639728 -0.382513 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642848 -0.401533 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624094 -0.421886 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624734 -0.418027 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603501 -0.4155 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681475 -0.396598 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.570335 -0.399584 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562269 -0.381987 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569167 -0.403942 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594185 -0.405974 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593017 -0.410332 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609969 -0.394768 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587286 -0.384019 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60307 -0.372813 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57922 -0.366422 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.64748 -0.317573 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643752 -0.316388 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624481 -0.316758 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.641945 -0.338228 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618946 -0.337413 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632683 -0.357697 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661216 -0.337857 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651954 -0.357326 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657489 -0.336672 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.562847 -0.317033 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561133 -0.338525 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583171 -0.327827 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.568381 -0.296378 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.588706 -0.307172 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572202 -0.297216 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.546343 -0.307077 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550163 -0.307914 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544629 -0.328569 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.525642 -0.386849 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528407 -0.379645 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538964 -0.366733 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544812 -0.396323 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558134 -0.376207 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566746 -0.398593 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534255 -0.409235 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556189 -0.411505 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.537019 -0.402031 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499428 -0.347819 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551072 -0.299647 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545434 -0.315344 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563547 -0.29885 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572306 -0.302174 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.584781 -0.301377 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587901 -0.320398 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554192 -0.318667 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569787 -0.336891 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548554 -0.334364 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.617918 -0.415912 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.597788 -0.406911 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616439 -0.39183 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639257 -0.417292 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637778 -0.39321 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640465 -0.409671 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.620605 -0.432372 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621814 -0.424751 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600475 -0.423371 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.641183 -0.320629 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618565 -0.328614 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630777 -0.313702 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660835 -0.329058 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65043 -0.32213 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65787 -0.345471 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648623 -0.34397 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645657 -0.360383 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626005 -0.351955 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681475 -0.396598 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.55776 -0.446515 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5512 -0.423296 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562617 -0.428387 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58161 -0.452905 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586467 -0.434777 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5989 -0.436077 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570193 -0.447815 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587483 -0.430987 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563633 -0.424596 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.632748 -0.420252 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.61608 -0.419661 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638118 -0.408963 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638282 -0.399597 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643653 -0.388308 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627149 -0.378352 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616244 -0.410295 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60511 -0.38905 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599576 -0.409705 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.535334 -0.372012 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555599 -0.35918 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536327 -0.359551 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529799 -0.392667 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530793 -0.380205 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54453 -0.400489 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549071 -0.392296 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563801 -0.400119 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569335 -0.379464 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.299716 -0.354293 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.292196 -0.366989 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.279022 -0.347717 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287162 -0.355904 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266468 -0.349329 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267088 -0.370213 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.300337 -0.375177 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280263 -0.389485 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.292817 -0.387873 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.289441 -0.362978 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.270044 -0.378255 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267771 -0.35549 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30046 -0.357187 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.278789 -0.349699 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29208 -0.366673 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302733 -0.379952 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294353 -0.389438 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.283335 -0.395229 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.250544 -0.304702 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259421 -0.327715 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238717 -0.32307 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229788 -0.298875 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.21796 -0.317244 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217908 -0.316063 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250492 -0.30352 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238612 -0.320707 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259369 -0.326533 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.228779 -0.378635 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.24293 -0.383364 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225483 -0.365937 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20493 -0.385029 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201634 -0.372331 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.195233 -0.396152 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.222377 -0.402455 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.21268 -0.413578 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236529 -0.407185 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.177083 -0.319723 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198298 -0.332294 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.189464 -0.325124 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156889 -0.330475 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.16927 -0.335876 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.157909 -0.353797 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165722 -0.337645 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166743 -0.360967 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.186938 -0.350216 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.147477 -0.412573 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172167 -0.412448 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.15977 -0.39322 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13525 -0.414903 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.147543 -0.39555 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.147713 -0.417108 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.147647 -0.434131 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.16011 -0.436336 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172338 -0.434006 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282991 -0.443285 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282046 -0.4302 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271991 -0.421181 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262424 -0.453417 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251423 -0.431313 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240911 -0.450466 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27248 -0.462437 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250967 -0.459485 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271534 -0.449353 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.204606 -0.486123 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223366 -0.470107 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.202946 -0.464339 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183578 -0.481368 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181918 -0.459584 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.18131 -0.460599 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203998 -0.487137 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201729 -0.466367 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.222757 -0.471122 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.285685 -0.449273 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27701 -0.426189 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282528 -0.436139 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271573 -0.46728 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268416 -0.454146 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248787 -0.462204 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266055 -0.45733 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.243269 -0.452254 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257381 -0.434246 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.374298 -0.269898 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.362218 -0.291334 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350338 -0.270045 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379235 -0.256525 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355276 -0.256671 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372093 -0.264588 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.391115 -0.277815 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383973 -0.285878 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379036 -0.299251 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.304189 -0.304189 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29042 -0.307879 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307879 -0.29042 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328039 -0.31058 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331729 -0.29681 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33812 -0.32066 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31058 -0.328039 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32066 -0.33812 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29681 -0.331729 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.305995 -0.235688 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321516 -0.245915 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312359 -0.259438 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282145 -0.242079 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288509 -0.265828 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273816 -0.258696 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291303 -0.228556 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282974 -0.245173 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306824 -0.238783 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.385852 -0.261966 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38141 -0.278159 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36581 -0.259422 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.371598 -0.261768 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351556 -0.259225 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352901 -0.277764 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387198 -0.280504 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.368501 -0.2965 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382755 -0.296698 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.30415 -0.228803 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321516 -0.245915 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306824 -0.238783 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2803 -0.235194 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282974 -0.245173 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273816 -0.258696 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294992 -0.242326 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288509 -0.265828 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312359 -0.259438 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.32435 -0.304189 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33812 -0.307879 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32066 -0.29042 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3005 -0.31058 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29681 -0.29681 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29042 -0.32066 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317959 -0.328039 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307879 -0.33812 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331729 -0.331729 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.407156 -0.334762 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388696 -0.326552 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.392275 -0.31686 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402218 -0.348135 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387337 -0.330233 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378821 -0.353299 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39864 -0.357827 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.375243 -0.362991 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.380181 -0.349618 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.346394 -0.386461 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.354723 -0.369843 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340031 -0.362711 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322544 -0.392851 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316181 -0.369102 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307023 -0.382624 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337237 -0.399983 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321715 -0.389757 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345565 -0.383366 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.348239 -0.393346 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.354723 -0.369843 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345565 -0.383366 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324389 -0.399736 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321715 -0.389757 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307023 -0.382624 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.333547 -0.386213 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316181 -0.369102 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340031 -0.362711 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.221102 -0.115471 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.220766 -0.13987 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200597 -0.126388 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208266 -0.10569 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187762 -0.116607 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.195095 -0.120308 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228435 -0.119172 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215264 -0.13379 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228099 -0.143571 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.243049 -0.18209 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218634 -0.185251 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227721 -0.168159 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.254834 -0.188974 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.239506 -0.175043 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242204 -0.199019 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245747 -0.206066 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233117 -0.216111 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221332 -0.209227 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.180792 -0.15554 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.19323 -0.166926 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171251 -0.17557 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160236 -0.142909 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.150694 -0.162939 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152117 -0.141663 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.182215 -0.134265 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174096 -0.133019 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.194652 -0.145651 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.14887 -0.105335 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167242 -0.121723 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153943 -0.115741 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.125414 -0.112813 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.130487 -0.123219 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120331 -0.136679 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138714 -0.118795 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13363 -0.142661 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.157086 -0.135183 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0995811 -0.130858 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.113639 -0.134736 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.123725 -0.135326 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0944715 -0.149528 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.118615 -0.153997 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10342 -0.172078 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0843858 -0.148938 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0933338 -0.171487 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0984435 -0.152816 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0897843 -0.179968 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.114103 -0.183804 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.105492 -0.166467 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0778128 -0.186523 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0935207 -0.173022 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0901597 -0.196914 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0864233 -0.20386 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0987702 -0.214251 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.110742 -0.207696 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.219088 -0.151829 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221861 -0.163068 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205084 -0.14514 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.19876 -0.155801 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.184756 -0.149113 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181204 -0.171014 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215537 -0.173729 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.197981 -0.188942 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218309 -0.184969 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.167942 -0.229756 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183484 -0.223214 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.16569 -0.207683 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144336 -0.234741 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.142084 -0.212668 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13627 -0.233184 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.162129 -0.250271 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.154064 -0.248714 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177671 -0.243729 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.248268 -0.22829 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2391 -0.216949 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234532 -0.207937 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233189 -0.240428 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219453 -0.220075 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208942 -0.241225 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237756 -0.249439 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.213509 -0.250236 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228589 -0.238098 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.01504 -0.435909 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0289993 -0.440694 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0115452 -0.423265 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00881065 -0.442297 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0123054 -0.429652 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0187019 -0.453468 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00864346 -0.459725 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0012478 -0.470897 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0226028 -0.46451 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0903221 -0.426942 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0806307 -0.435083 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0699989 -0.416328 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.078568 -0.431037 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0582447 -0.420423 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0571224 -0.443274 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0891998 -0.449792 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0677542 -0.462029 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0795084 -0.457933 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0293677 -0.364644 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0401449 -0.385352 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0213457 -0.375512 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0065032 -0.36543 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00151881 -0.376298 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00558411 -0.386924 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0253024 -0.37527 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0132151 -0.396764 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0360796 -0.395978 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0707378 -0.451803 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0461991 -0.454158 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0561039 -0.435761 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0824157 -0.456685 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0677817 -0.440643 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0695548 -0.46392 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0725109 -0.475081 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.05965 -0.482316 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0479721 -0.477435 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0495643 -0.373728 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0306825 -0.382672 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.030137 -0.383722 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.064627 -0.389151 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0451997 -0.399146 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.060808 -0.41352 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0651725 -0.388102 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0613535 -0.41247 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0462908 -0.397047 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.081612 -0.459563 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0696122 -0.463589 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0665888 -0.442243 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0691745 -0.459069 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0541513 -0.441749 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0447373 -0.4626 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0721979 -0.480415 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0477607 -0.483946 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0601982 -0.48444 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.000557006 -0.523883 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0165974 -0.51057 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00208214 -0.49924 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0234352 -0.525392 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0249603 -0.500749 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.029159 -0.513588 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00475566 -0.536722 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0104794 -0.524918 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0123987 -0.523409 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00154892 -0.540463 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0156462 -0.524673 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00538221 -0.52751 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0227737 -0.531924 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.026607 -0.518971 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0268034 -0.507596 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00174531 -0.529087 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00577498 -0.504759 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0154498 -0.513298 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0817008 -0.508666 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0732807 -0.489545 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0722467 -0.488971 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0658672 -0.523298 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0564131 -0.503602 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0416134 -0.518808 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0669012 -0.523872 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0426474 -0.519382 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.058481 -0.504751 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0522053 -0.160406 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0358698 -0.178533 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0513956 -0.171954 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0762577 -0.165658 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.075448 -0.177206 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0839747 -0.189036 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0607319 -0.172236 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0684488 -0.195615 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0443964 -0.190363 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0258737 -0.20044 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0203763 -0.215612 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00551963 -0.196602 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0122285 -0.200749 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00812553 -0.196911 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00691403 -0.21623 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0270852 -0.21976 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00794264 -0.235241 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0215878 -0.234932 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00705049 -0.176731 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00352517 -0.200733 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.025725 -0.192673 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.020811 -0.163117 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0394855 -0.179058 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0310463 -0.173504 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00138875 -0.171177 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00884647 -0.181564 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00491406 -0.195179 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.127519 -0.195663 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.108803 -0.201738 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104303 -0.194866 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.133744 -0.210551 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110528 -0.209754 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121254 -0.231514 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138245 -0.217423 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.125754 -0.238386 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119529 -0.223497 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0673141 -0.20388 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0609052 -0.198742 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0490355 -0.216456 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0788008 -0.225098 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0605222 -0.237674 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0838786 -0.241177 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0906706 -0.207384 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0957484 -0.223463 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0842617 -0.202246 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.126206 -0.291073 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110246 -0.293457 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119897 -0.271345 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119442 -0.279219 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113132 -0.25949 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0967168 -0.269749 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10979 -0.301332 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0870656 -0.291862 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0938302 -0.303716 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0942304 -0.234308 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0714204 -0.238704 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0854464 -0.221514 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113822 -0.241032 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.105038 -0.228237 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110603 -0.252152 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0997955 -0.258223 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0965768 -0.269343 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0769856 -0.262619 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0817333 -0.324811 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0603366 -0.313378 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0800146 -0.300317 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100861 -0.321838 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0991425 -0.297345 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0985923 -0.307433 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0811832 -0.334899 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0789143 -0.320493 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0597864 -0.323466 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0076281 -0.275459 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00142185 -0.270078 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0167139 -0.255218 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0305645 -0.282946 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0396503 -0.262704 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0472946 -0.285051 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0152725 -0.297806 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0320026 -0.299911 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00906621 -0.292425 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.190929 -0.412497 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.16674 -0.417001 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.174844 -0.400273 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203175 -0.419795 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.18709 -0.407571 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191231 -0.431597 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195071 -0.436523 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.183127 -0.448325 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.170881 -0.441027 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.10495 -0.41922 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0911807 -0.42291 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10864 -0.40545 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128801 -0.425611 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13249 -0.411841 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138881 -0.435691 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111341 -0.44307 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121421 -0.45315 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0975713 -0.44676 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.12515 -0.343834 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107784 -0.360946 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122476 -0.353814 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149 -0.350225 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.146326 -0.360204 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155484 -0.373727 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134308 -0.357357 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.140792 -0.380859 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116942 -0.374468 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.200165 -0.411775 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189948 -0.415187 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179342 -0.399922 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189202 -0.420888 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168379 -0.409035 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168023 -0.433412 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.199808 -0.436152 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178629 -0.448677 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189591 -0.439564 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.123305 -0.350719 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107784 -0.360946 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116942 -0.374468 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.147155 -0.357109 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.140792 -0.380859 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155484 -0.373727 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.137998 -0.343587 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.146326 -0.360204 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122476 -0.353814 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.125111 -0.41922 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138881 -0.42291 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121421 -0.40545 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.101261 -0.425611 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0975713 -0.411841 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0911807 -0.435691 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11872 -0.44307 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10864 -0.45315 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13249 -0.44676 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.174264 -0.502603 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.15142 -0.495376 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.170327 -0.479659 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.185226 -0.49349 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.18129 -0.470546 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173345 -0.477151 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166319 -0.509207 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154437 -0.492868 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143475 -0.501981 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0810612 -0.508376 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0745774 -0.484874 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0837352 -0.498397 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104911 -0.514767 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107585 -0.504787 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122277 -0.497655 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0957534 -0.501244 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11312 -0.484132 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0892696 -0.477742 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.082906 -0.501491 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0745774 -0.484874 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0892696 -0.477742 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.106756 -0.507882 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11312 -0.484132 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122277 -0.497655 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0920638 -0.515014 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107585 -0.504787 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0837352 -0.498397 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.225282 -0.612732 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22113 -0.60221 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212428 -0.591695 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206686 -0.62329 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193832 -0.602253 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183939 -0.623325 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215388 -0.633805 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.192641 -0.63384 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211236 -0.623283 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.243024 -0.542885 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219861 -0.534333 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.243024 -0.542885 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219861 -0.534333 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248559 -0.563539 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23093 -0.575642 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23093 -0.575642 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.200547 -0.527458 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205161 -0.540303 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187702 -0.522843 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179472 -0.531074 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166627 -0.526459 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.163011 -0.547535 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.196931 -0.548533 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.18047 -0.564994 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201546 -0.561378 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.132649 -0.643128 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152367 -0.631785 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.133263 -0.618482 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111266 -0.643283 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11188 -0.618637 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.109601 -0.632094 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.130371 -0.656585 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128706 -0.645397 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.150088 -0.645242 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.11011 -0.549659 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.132596 -0.555684 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.118927 -0.53924 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.09005 -0.557065 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0988668 -0.546646 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0924762 -0.570497 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.103719 -0.573509 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.106145 -0.58694 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.126205 -0.579534 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0609772 -0.591664 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.076761 -0.572676 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0609772 -0.591664 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.076761 -0.572676 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0665116 -0.612319 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0878298 -0.613986 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0878298 -0.613986 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.189742 -0.660425 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.196144 -0.636618 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.185725 -0.645434 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165892 -0.666816 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161875 -0.651825 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.148444 -0.649399 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.17631 -0.657999 0.57904 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.158862 -0.640582 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.182712 -0.634191 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.107144 -0.620861 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.119989 -0.625475 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102529 -0.608016 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11076 -0.599785 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.106145 -0.58694 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.127221 -0.583324 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128219 -0.617245 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.14468 -0.600784 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141064 -0.621859 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.203972 -0.574809 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181486 -0.568784 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201546 -0.561378 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217641 -0.591253 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215215 -0.577822 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208824 -0.601672 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.197581 -0.598659 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188764 -0.609078 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.175095 -0.592634 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0316054 -0.646362 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0478 -0.627981 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0287309 -0.625173 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00868865 -0.644258 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00581415 -0.623069 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00196644 -0.623773 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0277577 -0.647066 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0210355 -0.62658 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0439523 -0.628685 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.105299 -0.593994 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100664 -0.582384 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0926585 -0.572783 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0869303 -0.604941 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0742898 -0.58373 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0639267 -0.604278 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0949359 -0.614541 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0719323 -0.613879 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.090301 -0.602932 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0177119 -0.584898 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0364224 -0.580268 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0185345 -0.56353 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00489609 -0.589197 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00407348 -0.567829 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00879364 -0.588867 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0129918 -0.605935 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00909422 -0.605605 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0317022 -0.601305 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0473753 -0.5935 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0308315 -0.595617 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0399691 -0.57344 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0409921 -0.582752 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0335859 -0.562692 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0180651 -0.574121 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0318545 -0.604929 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00892756 -0.596298 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0153107 -0.607046 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0495897 -0.530389 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0261165 -0.53532 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.031221 -0.519442 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0589904 -0.538628 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0406217 -0.527681 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0449178 -0.551799 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0538859 -0.554507 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0398133 -0.567678 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0304127 -0.559438 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0212225 -0.48882 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00896145 -0.491256 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00194055 -0.497372 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0286287 -0.50888 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00546563 -0.517432 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0237738 -0.531375 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0395307 -0.502764 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0346758 -0.525259 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0272696 -0.505199 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0604766 -0.607302 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0678827 -0.587242 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0604766 -0.607302 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0366265 -0.613693 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0366265 -0.613693 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0201827 -0.600023 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0440327 -0.593633 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0275889 -0.579964 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0514389 -0.573573 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0542684 -0.523344 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0591566 -0.541988 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0358996 -0.534291 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0472252 -0.501435 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0288565 -0.512382 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0450702 -0.49817 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0704822 -0.509132 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0683272 -0.505868 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0753703 -0.527777 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.118381 -0.551884 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0944221 -0.550745 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.103361 -0.536664 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.125404 -0.562225 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.110383 -0.547006 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108468 -0.571428 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.116465 -0.576307 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0995293 -0.58551 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0925065 -0.575168 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.326876 -0.484182 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302705 -0.488171 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310432 -0.470513 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337778 -0.490299 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321334 -0.476629 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324509 -0.500404 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330051 -0.507957 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316783 -0.518062 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305881 -0.511946 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.279233 -0.426389 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286276 -0.448298 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263449 -0.445377 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262789 -0.41272 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247006 -0.431707 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253389 -0.420959 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285616 -0.415641 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.276216 -0.42388 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29266 -0.43755 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.320401 -0.436971 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3148 -0.455413 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29902 -0.436675 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30814 -0.434535 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286759 -0.434239 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290278 -0.450543 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32392 -0.453274 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306057 -0.469281 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318318 -0.471717 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.314604 -0.562288 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310183 -0.541186 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306499 -0.542501 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29581 -0.575569 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287705 -0.555781 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.272595 -0.567748 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299494 -0.574255 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.276279 -0.566433 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295073 -0.553152 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.298839 -0.507811 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302049 -0.505577 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287442 -0.489718 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27711 -0.515392 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.265714 -0.497299 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258591 -0.520738 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291716 -0.531251 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273198 -0.536597 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294927 -0.529016 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.227186 -0.567359 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.246777 -0.555283 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227528 -0.54267 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205805 -0.567063 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206147 -0.542374 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.204014 -0.554691 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225054 -0.579676 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223263 -0.567305 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244644 -0.567601 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.275127 -0.549787 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282533 -0.529727 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275127 -0.549787 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251277 -0.556177 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251277 -0.556177 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234833 -0.542508 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258683 -0.536117 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242239 -0.522448 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266089 -0.516058 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.17251 -0.549603 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191778 -0.549105 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177908 -0.528912 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173421 -0.537136 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.178819 -0.516445 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193601 -0.524171 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187292 -0.557329 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207471 -0.544363 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20656 -0.556831 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.209819 -0.457868 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.210053 -0.453963 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2312 -0.458164 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214674 -0.480363 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236055 -0.480659 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219763 -0.498954 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193527 -0.476163 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198616 -0.494753 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193761 -0.472258 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.102403 -0.871334 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100577 -0.862937 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113406 -0.850164 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.123961 -0.880044 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134964 -0.858873 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143694 -0.880356 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111133 -0.892817 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.130866 -0.893129 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.109307 -0.884419 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0654286 -0.811594 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0820122 -0.820516 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0876595 -0.80102 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0688817 -0.814468 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0911125 -0.803895 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0889183 -0.826265 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0632344 -0.833964 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.083271 -0.845761 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.079818 -0.842886 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.120908 -0.781177 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113462 -0.795477 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13149 -0.778973 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143095 -0.784778 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153678 -0.782573 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.157836 -0.802678 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.125067 -0.801282 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.139808 -0.819182 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11762 -0.815582 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.197746 -0.891905 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.175383 -0.884286 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.193701 -0.867957 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216576 -0.89169 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212531 -0.867741 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.213043 -0.883856 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.198259 -0.908019 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194726 -0.900186 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.175896 -0.900401 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.212743 -0.794108 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189621 -0.802328 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.199907 -0.788345 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.230849 -0.803282 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.218012 -0.797518 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225832 -0.820676 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220563 -0.817265 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215547 -0.83466 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.197441 -0.825486 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.25245 -0.843832 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233837 -0.846687 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.235043 -0.826426 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248234 -0.845385 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.230827 -0.827978 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225404 -0.849792 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.247028 -0.865646 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224198 -0.870053 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228415 -0.868501 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.128672 -0.926643 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.1198 -0.904034 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.133221 -0.90826 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.152902 -0.930993 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.157451 -0.912609 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.16826 -0.912733 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.139481 -0.926768 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154838 -0.908508 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.130608 -0.904159 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.188167 -0.894035 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172046 -0.89378 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195141 -0.885777 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195558 -0.872807 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.202532 -0.864549 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.186828 -0.851325 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172463 -0.880811 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163733 -0.859328 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.156342 -0.880556 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0905999 -0.853284 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111382 -0.840233 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0940331 -0.839638 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.086577 -0.873178 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0900102 -0.859532 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103336 -0.880022 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103926 -0.873773 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120685 -0.880618 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124708 -0.860723 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.103063 -0.66171 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0876683 -0.673446 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0800983 -0.653258 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0992478 -0.662574 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0762832 -0.654121 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0800382 -0.675172 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.106818 -0.682761 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0876083 -0.69536 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0914233 -0.694497 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0547519 -0.662466 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0439578 -0.682791 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0332597 -0.660752 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0647085 -0.645962 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0432164 -0.644249 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0638711 -0.649783 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0754066 -0.668 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0745692 -0.671821 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0646126 -0.688325 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0239663 -0.599047 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0608821 -0.693716 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0652402 -0.694884 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0496759 -0.677932 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0389272 -0.700615 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.027721 -0.684831 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0213304 -0.708681 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0544915 -0.717566 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0368947 -0.725632 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0588496 -0.718734 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00328338 -0.628657 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0152909 -0.642244 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.000378614 -0.630031 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.026624 -0.636097 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.022962 -0.637471 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0313903 -0.657124 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0117117 -0.648309 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.016478 -0.669336 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00686255 -0.661896 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0310802 -0.720593 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00820099 -0.718114 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0246945 -0.7 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0501007 -0.723713 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.043715 -0.70312 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.046242 -0.724354 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0336072 -0.741827 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0297485 -0.742467 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.010728 -0.739347 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0887955 -0.750021 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0813312 -0.732161 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.078459 -0.729506 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0721458 -0.763719 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0618093 -0.743204 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0480318 -0.759557 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.075018 -0.766375 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.050904 -0.762212 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0675537 -0.748514 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.024813 -0.781094 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0542122 -0.747099 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0550267 -0.7241 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0553974 -0.743371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0339282 -0.760836 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0351134 -0.757108 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0144587 -0.751574 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0335575 -0.741565 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.014088 -0.732303 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0343719 -0.718566 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.125845 -0.597249 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.12123 -0.610094 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138689 -0.592635 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14692 -0.600865 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.159765 -0.596251 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163381 -0.617326 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.12946 -0.618324 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.145921 -0.634785 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124846 -0.631169 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0833673 -0.612676 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10653 -0.604124 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0833673 -0.612676 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10653 -0.604124 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0778329 -0.633331 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0954616 -0.645433 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0954616 -0.645433 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.141271 -0.554772 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13272 -0.577935 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.161926 -0.549237 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.174029 -0.566866 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.174029 -0.566866 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141271 -0.554772 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13272 -0.577935 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.216282 -0.61945 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.193796 -0.625476 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207465 -0.609032 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.236341 -0.626857 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.227525 -0.616438 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233915 -0.640288 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.222672 -0.6433 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220246 -0.656732 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200186 -0.649326 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.2291 -0.567237 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209804 -0.576452 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209804 -0.576452 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.24422 -0.582357 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240045 -0.606693 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.24422 -0.582357 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240045 -0.606693 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.265414 -0.661455 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.249631 -0.642468 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265414 -0.661455 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.249631 -0.642468 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.25988 -0.68211 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238562 -0.683777 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238562 -0.683777 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.148046 -0.687686 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.137627 -0.678869 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154071 -0.6652 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171896 -0.694077 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177921 -0.671591 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.185327 -0.691651 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155452 -0.707746 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168883 -0.70532 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.145033 -0.698929 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.190051 -0.736819 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171063 -0.721035 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210706 -0.731284 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212373 -0.709966 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212373 -0.709966 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.190051 -0.736819 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171063 -0.721035 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.095832 -0.700504 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.105047 -0.681209 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.105047 -0.681209 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110952 -0.715624 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135288 -0.711449 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110952 -0.715624 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135288 -0.711449 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343435 -0.786005 8.51251e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.400556 -0.824791 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376528 -0.821021 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392663 -0.802599 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.416482 -0.82542 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408589 -0.803228 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40838 -0.822279 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400347 -0.843843 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392245 -0.840701 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376319 -0.840073 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.308073 -0.80634 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.300378 -0.802721 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316395 -0.786996 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331317 -0.813459 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339639 -0.794116 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.346866 -0.81696 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.315299 -0.829184 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330849 -0.832685 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307605 -0.825565 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.367981 -0.734271 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348136 -0.745269 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362711 -0.731279 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390619 -0.74212 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385349 -0.739128 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.393412 -0.760966 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376044 -0.756109 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378837 -0.774956 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356199 -0.767107 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.436217 -0.793573 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420728 -0.796968 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419454 -0.776294 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427756 -0.79442 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410993 -0.777141 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403807 -0.798662 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42903 -0.815094 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405081 -0.819335 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.413542 -0.818489 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.392427 -0.704862 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.373948 -0.714218 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374248 -0.717401 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409067 -0.719927 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390887 -0.732465 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407227 -0.744347 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408767 -0.716744 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406927 -0.741164 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390287 -0.726099 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.356966 -0.747522 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.352002 -0.740618 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339469 -0.759239 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.368213 -0.769074 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.350716 -0.780791 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374496 -0.783722 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380746 -0.750453 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.387029 -0.765101 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375782 -0.743549 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.365674 -0.878086 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.346241 -0.863875 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367962 -0.859887 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384548 -0.868748 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386837 -0.85055 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.38399 -0.8452 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362827 -0.872736 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362269 -0.849188 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343394 -0.858526 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.297057 -0.819591 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.304244 -0.79807 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293153 -0.814956 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.30891 -0.840413 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.305006 -0.835779 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32795 -0.839716 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320001 -0.823527 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339041 -0.822829 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327188 -0.802007 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.272611 -0.848999 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.278432 -0.829121 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.281616 -0.828835 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.290462 -0.862606 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299468 -0.842441 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314135 -0.856335 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.287278 -0.862893 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.310951 -0.856621 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293099 -0.843015 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.386849 -0.525642 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366733 -0.538964 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379645 -0.528407 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409235 -0.534255 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.402031 -0.537019 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.411505 -0.556189 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396323 -0.544812 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398593 -0.566746 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376207 -0.558134 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.299647 -0.551072 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29885 -0.563547 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.315344 -0.545434 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318667 -0.554192 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.334364 -0.548554 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.336891 -0.569787 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.302174 -0.572306 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320398 -0.587901 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.301377 -0.584781 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.347819 -0.499428 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.446515 -0.55776 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428387 -0.562617 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423296 -0.5512 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.447815 -0.570193 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.424596 -0.563633 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.430987 -0.587483 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452905 -0.58161 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436077 -0.5989 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434777 -0.586467 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.372012 -0.535334 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359551 -0.536327 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.35918 -0.555599 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392296 -0.549071 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379464 -0.569335 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400119 -0.563801 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392667 -0.529799 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400489 -0.54453 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380205 -0.530793 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.420252 -0.632748 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408963 -0.638118 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419661 -0.61608 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410295 -0.616244 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409705 -0.599576 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.38905 -0.60511 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399597 -0.638282 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378352 -0.627149 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388308 -0.643653 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.415912 -0.617918 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39183 -0.616439 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406911 -0.597788 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.432372 -0.620605 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423371 -0.600475 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.424751 -0.621814 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.417292 -0.639257 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409671 -0.640465 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39321 -0.637778 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396598 -0.681475 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.320629 -0.641183 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.313702 -0.630777 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328614 -0.618565 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.34397 -0.648623 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.351955 -0.626005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360383 -0.645657 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.329058 -0.660835 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.345471 -0.65787 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32213 -0.65043 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.413579 -0.517869 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.395831 -0.525596 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.393219 -0.528508 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427522 -0.534315 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407161 -0.544953 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423716 -0.558488 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.430134 -0.531404 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.426328 -0.555577 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.412386 -0.539131 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.375068 -0.529037 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356494 -0.542624 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.371406 -0.530412 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398409 -0.536477 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.394747 -0.537852 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403175 -0.557504 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383497 -0.548689 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388263 -0.569716 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.364922 -0.562276 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.347819 -0.499428 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.399584 -0.570335 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403942 -0.569167 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.381987 -0.562269 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384019 -0.587286 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366422 -0.57922 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.372813 -0.60307 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405974 -0.594185 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.394768 -0.609969 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410332 -0.593017 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.317033 -0.562847 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327827 -0.583171 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338525 -0.561133 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307077 -0.546343 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328569 -0.544629 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307914 -0.550163 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296378 -0.568381 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.297216 -0.572202 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307172 -0.588706 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.317573 -0.64748 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316758 -0.624481 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316388 -0.643752 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337857 -0.661216 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.336672 -0.657489 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357326 -0.651954 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338228 -0.641945 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357697 -0.632683 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337413 -0.618946 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.451897 -0.612625 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.432663 -0.614807 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436515 -0.593593 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448179 -0.61141 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.432797 -0.592379 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425227 -0.612377 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.444328 -0.632624 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.421376 -0.633591 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425094 -0.634806 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396598 -0.681475 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.402865 -0.620974 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379986 -0.618494 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39648 -0.600381 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.421886 -0.624094 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4155 -0.603501 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.418027 -0.624734 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405392 -0.642207 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401533 -0.642848 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382513 -0.639728 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0977075 -0.909872 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0997803 -0.886771 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104052 -0.891613 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.117896 -0.922453 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124241 -0.904194 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.140158 -0.911935 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113625 -0.917612 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135886 -0.907093 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115698 -0.894512 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0627848 -0.826973 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0805529 -0.830202 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.083104 -0.81296 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0666419 -0.833656 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0869612 -0.819643 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0882673 -0.843568 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0640908 -0.850898 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0857161 -0.860809 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0818589 -0.854126 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.11253 -0.867758 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107566 -0.860854 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122142 -0.846864 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135168 -0.875606 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14478 -0.854713 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.152843 -0.876551 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120593 -0.889596 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138267 -0.890541 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115629 -0.882692 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.201143 -0.920038 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.17991 -0.910616 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.201384 -0.900209 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.214335 -0.907705 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.214576 -0.887876 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.206294 -0.88595 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192861 -0.918112 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.18482 -0.896357 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171628 -0.90869 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.209658 -0.868948 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.186008 -0.865773 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.202239 -0.84746 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.226988 -0.870808 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.219569 -0.84932 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220667 -0.869493 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210757 -0.889121 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.204436 -0.887806 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.187106 -0.885946 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.252002 -0.824206 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.234336 -0.827952 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.231282 -0.810793 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248342 -0.830999 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.227621 -0.817586 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.227016 -0.841538 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.251396 -0.848158 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.23007 -0.858698 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.23373 -0.851905 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.130609 -0.876203 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124356 -0.857385 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128522 -0.879733 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153561 -0.885283 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.151474 -0.888813 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.170259 -0.875546 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149395 -0.862935 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166093 -0.853198 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143141 -0.844117 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.180723 -0.785723 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173028 -0.782104 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.161937 -0.798991 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192576 -0.806546 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.17379 -0.819813 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196734 -0.82375 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203667 -0.78966 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207825 -0.806864 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195972 -0.786041 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.108311 -0.798532 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119537 -0.819589 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131037 -0.797989 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100522 -0.78294 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.123249 -0.782397 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10396 -0.788405 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0890219 -0.80454 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0924597 -0.810005 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100248 -0.825597 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.200937 -0.595399 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194794 -0.591462 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.180539 -0.605717 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.208929 -0.617647 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188531 -0.627965 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210779 -0.635958 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223185 -0.603392 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225035 -0.621702 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.217042 -0.599454 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.260374 -0.607636 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240901 -0.612854 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.237705 -0.600929 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.26357 -0.619561 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240901 -0.612854 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.247291 -0.636704 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.266765 -0.631486 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.250487 -0.648629 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.247291 -0.636704 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.185011 -0.549732 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.167868 -0.56601 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179793 -0.569205 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.208861 -0.556122 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203643 -0.575596 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215568 -0.578791 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196936 -0.552927 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203643 -0.575596 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179793 -0.569205 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.131575 -0.625593 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.15071 -0.6381 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.146508 -0.614836 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.112102 -0.620375 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.127034 -0.609618 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111763 -0.627664 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116304 -0.643639 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115965 -0.650927 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135439 -0.656145 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.105912 -0.577317 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111438 -0.600302 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128897 -0.582843 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.114642 -0.568587 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.137627 -0.574113 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128897 -0.582843 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0971825 -0.586046 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111438 -0.600302 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.102708 -0.609032 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0783272 -0.656415 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0978007 -0.651197 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0946054 -0.639272 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0815225 -0.66834 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0978007 -0.651197 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104191 -0.675047 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0847178 -0.680265 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107387 -0.686972 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104191 -0.675047 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.182351 -0.708085 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165569 -0.700531 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188833 -0.704733 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200397 -0.692813 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.206879 -0.689462 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.201661 -0.669989 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177134 -0.688611 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178397 -0.665787 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.160351 -0.681058 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.136231 -0.731779 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.129524 -0.70911 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141449 -0.712305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.160081 -0.738169 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165299 -0.718696 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177224 -0.721891 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.148156 -0.734974 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165299 -0.718696 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141449 -0.712305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.23918 -0.710584 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216195 -0.705059 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233654 -0.687599 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.24791 -0.701855 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.242384 -0.678869 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233654 -0.687599 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.23045 -0.719314 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216195 -0.705059 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207465 -0.713788 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0667914 -0.661946 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511945 -0.680354 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0452771 -0.65711 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0787954 -0.650366 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0572811 -0.64553 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0752026 -0.657195 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0847128 -0.673611 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.08112 -0.680439 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.069116 -0.692019 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.000226782 -0.634953 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0122343 -0.635947 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.012605 -0.655218 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0205108 -0.64869 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00767898 -0.668955 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0283337 -0.66342 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0208815 -0.629419 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0287044 -0.644149 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00842045 -0.630413 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0239663 -0.599047 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.107813 -0.706291 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0896851 -0.701434 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0909853 -0.689001 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102723 -0.717709 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0858949 -0.700418 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0795043 -0.724268 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101422 -0.730141 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0782041 -0.736701 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0832945 -0.725284 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0721382 -0.650692 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.072935 -0.663167 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0564414 -0.645053 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0531177 -0.653812 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0374209 -0.648173 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.034894 -0.669407 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696112 -0.671925 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0513875 -0.68752 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.070408 -0.6844 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0511556 -0.740802 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0580833 -0.730397 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.043171 -0.718185 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.027815 -0.748242 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0198304 -0.725625 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0114021 -0.745277 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0427273 -0.760455 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0263144 -0.757489 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0496549 -0.750049 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0650768 -0.746894 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0607735 -0.723153 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0653796 -0.739183 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.04833 -0.764065 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0486329 -0.756355 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02728 -0.757496 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0437239 -0.748035 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0226739 -0.741466 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0394207 -0.724295 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.024813 -0.781094 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0484665 -0.732368 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0371781 -0.737738 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0478762 -0.715699 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0385099 -0.715864 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0379196 -0.699195 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0172649 -0.70473 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0278118 -0.737902 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00656677 -0.726768 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0165234 -0.743272 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.690426 -0.508983 1.83812e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.767658 -0.47411 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.749038 -0.489758 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.744501 -0.467528 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774562 -0.469146 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751405 -0.462564 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.762845 -0.47983 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.779098 -0.491377 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.767382 -0.502061 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760478 -0.507025 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.703418 -0.481931 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.716184 -0.491475 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.694124 -0.500827 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682902 -0.46889 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.673608 -0.487786 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675152 -0.465393 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704962 -0.459538 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697211 -0.456041 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.717727 -0.469082 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.714226 -0.418941 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.724842 -0.44101 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704751 -0.43889 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.692283 -0.414215 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682808 -0.434163 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680957 -0.431557 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712374 -0.416335 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701048 -0.433677 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.722991 -0.438403 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.773394 -0.506594 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.764807 -0.507924 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755462 -0.491321 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759287 -0.514012 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.741355 -0.49874 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.736593 -0.522762 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.768632 -0.530616 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745938 -0.539365 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760045 -0.531946 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.709346 -0.447385 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721188 -0.46231 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.703286 -0.447429 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.685816 -0.451907 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.679757 -0.451951 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674129 -0.471354 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.703718 -0.466788 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.692031 -0.486235 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.71556 -0.481713 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.693658 -0.538818 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.708875 -0.534075 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.691194 -0.517905 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669969 -0.544274 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.667505 -0.523361 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661495 -0.544988 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687649 -0.560445 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.679176 -0.561158 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.702866 -0.555702 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.767402 -0.560084 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755145 -0.53997 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760285 -0.543179 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755725 -0.577608 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.748608 -0.560703 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.731791 -0.575017 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.750585 -0.574398 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.726651 -0.571808 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.738328 -0.554284 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.682851 -0.601808 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700216 -0.58454 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680568 -0.579842 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660588 -0.59895 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.658304 -0.576984 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65569 -0.578824 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680237 -0.603648 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675339 -0.583522 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697602 -0.58638 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.687731 -0.573364 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.703871 -0.56324 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682033 -0.571303 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.667055 -0.561258 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661356 -0.559196 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.662518 -0.539027 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688893 -0.553195 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.684356 -0.530964 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705033 -0.543071 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.626214 -0.316595 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624401 -0.335868 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606941 -0.318408 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.631217 -0.294133 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.611945 -0.295946 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634407 -0.290942 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648676 -0.311592 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651867 -0.308402 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.646863 -0.330864 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.623201 -0.403702 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.635431 -0.385946 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62031 -0.401066 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.598766 -0.401947 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.595876 -0.399312 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586561 -0.382437 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.613886 -0.386827 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.601681 -0.367317 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626116 -0.369071 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.539107 -0.319608 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541743 -0.322499 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.556863 -0.307378 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555982 -0.328923 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.573738 -0.316693 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575492 -0.341128 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.540862 -0.344043 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560372 -0.356248 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.543497 -0.346933 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.637402 -0.248969 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.646193 -0.271807 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625088 -0.268363 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617105 -0.241698 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604791 -0.261092 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605598 -0.257264 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638209 -0.245142 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626702 -0.260708 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647 -0.267979 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.550934 -0.258608 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.613271 -0.265398 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627912 -0.281225 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610787 -0.26842 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.589337 -0.270625 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586853 -0.273647 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.580045 -0.291679 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606463 -0.283431 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.59717 -0.304484 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621104 -0.299257 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.69384 -0.305407 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674446 -0.317721 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671002 -0.296616 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697667 -0.3046 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.67483 -0.295809 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682101 -0.316107 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701111 -0.325704 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.685545 -0.337211 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681717 -0.338018 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.677411 -0.329538 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674389 -0.332022 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661584 -0.314897 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659378 -0.336346 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643552 -0.321705 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638325 -0.345639 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.672184 -0.353472 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65113 -0.362764 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669162 -0.355956 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684201 -0.391875 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.672915 -0.269894 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666987 -0.293281 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649528 -0.275822 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665573 -0.259777 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642185 -0.265705 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.652302 -0.273047 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683032 -0.277236 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669762 -0.290507 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677104 -0.300624 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.663448 -0.328536 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639482 -0.329516 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.654603 -0.314396 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680322 -0.33785 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671477 -0.32371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.673232 -0.348145 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665202 -0.35297 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.658111 -0.363265 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.641237 -0.353951 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.614273 -0.279361 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628413 -0.288206 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.613293 -0.303327 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.589839 -0.277607 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588858 -0.301572 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.579544 -0.284698 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604959 -0.262487 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.594664 -0.269578 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.619099 -0.271332 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.621535 -0.258061 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634468 -0.275921 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616678 -0.264057 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.597842 -0.261795 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.592985 -0.267791 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587082 -0.28339 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.615632 -0.27366 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604872 -0.295255 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628565 -0.29152 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.550934 -0.258608 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.55307 -0.320611 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57665 -0.325005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563845 -0.30788 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535038 -0.327419 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.545813 -0.314688 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.540585 -0.338621 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547843 -0.344544 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.553391 -0.355747 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571423 -0.348938 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684748 -0.321274 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678752 -0.326131 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666888 -0.308341 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669149 -0.327177 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651289 -0.314244 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647554 -0.337937 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681014 -0.344967 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659419 -0.355727 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675018 -0.349824 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.622198 -0.389739 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.63493 -0.378964 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617804 -0.366159 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.598265 -0.394966 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593871 -0.371386 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587062 -0.389418 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61539 -0.407771 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604188 -0.402224 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628121 -0.396997 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684201 -0.391875 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.633406 -0.663938 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626429 -0.65892 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617928 -0.64522 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617206 -0.673539 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.601728 -0.654822 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.59403 -0.678123 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625707 -0.687239 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602531 -0.691822 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61873 -0.682221 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.63767 -0.608008 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.620102 -0.623239 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.613891 -0.601637 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.640545 -0.604555 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616766 -0.598184 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625852 -0.616334 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.646756 -0.626157 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.632063 -0.637936 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.629188 -0.641389 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.601562 -0.580238 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605914 -0.59781 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587563 -0.581665 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.581295 -0.581346 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.567297 -0.582773 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.565381 -0.600026 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.599646 -0.597491 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.583732 -0.616171 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603999 -0.615063 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.547376 -0.70016 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.564621 -0.690564 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546319 -0.676324 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.524351 -0.703396 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523294 -0.679561 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.518571 -0.697037 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542652 -0.717636 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536873 -0.711276 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.559898 -0.70804 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.516313 -0.60809 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538029 -0.616221 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.524375 -0.60089 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495298 -0.616065 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.50336 -0.608865 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495999 -0.632172 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508952 -0.631397 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.509653 -0.647504 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530668 -0.639529 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.466887 -0.67091 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490138 -0.671107 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480853 -0.650637 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46246 -0.670147 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.476425 -0.649874 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481283 -0.669581 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471745 -0.690617 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490567 -0.690052 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.494995 -0.690815 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.597914 -0.729812 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602084 -0.70632 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.592661 -0.711617 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.574755 -0.738161 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569503 -0.719965 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555767 -0.723017 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.584178 -0.732864 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.565189 -0.71772 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588348 -0.709372 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.511567 -0.712906 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529503 -0.710453 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.507717 -0.699372 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.505104 -0.693665 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501254 -0.680131 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.516576 -0.671972 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.526889 -0.704747 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538362 -0.683054 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.544826 -0.702295 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.605761 -0.658095 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.58746 -0.643855 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607672 -0.647455 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609975 -0.680174 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.611885 -0.669535 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.595887 -0.688013 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.589763 -0.676573 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575674 -0.684413 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571461 -0.662334 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.518106 -0.424703 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522721 -0.437548 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.505261 -0.420089 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497031 -0.428319 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484186 -0.423704 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48057 -0.44478 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51449 -0.445778 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498029 -0.462239 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519105 -0.458623 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.560583 -0.44013 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.53742 -0.431578 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560583 -0.44013 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.53742 -0.431578 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566118 -0.460785 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548489 -0.472887 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548489 -0.472887 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.502679 -0.382226 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.511231 -0.405389 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.482024 -0.376691 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.469922 -0.39432 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.469922 -0.39432 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.502679 -0.382226 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.511231 -0.405389 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.427669 -0.446904 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.450155 -0.45293 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436486 -0.436486 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407609 -0.454311 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416426 -0.443892 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410035 -0.467742 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.421278 -0.470754 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423704 -0.484186 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.443764 -0.47678 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.414851 -0.39469 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434147 -0.403906 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434147 -0.403906 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399731 -0.409811 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403906 -0.434147 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399731 -0.409811 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403906 -0.434147 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.378536 -0.488909 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39432 -0.469922 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378536 -0.488909 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39432 -0.469922 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384071 -0.509564 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405389 -0.511231 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405389 -0.511231 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.495905 -0.51514 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506323 -0.506323 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48988 -0.492654 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472055 -0.521531 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46603 -0.499045 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.458623 -0.519105 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488498 -0.5352 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475067 -0.532774 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498917 -0.526383 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.4539 -0.564273 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472887 -0.548489 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433245 -0.558738 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.431578 -0.53742 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.431578 -0.53742 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4539 -0.564273 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472887 -0.548489 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.548119 -0.527958 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538903 -0.508662 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538903 -0.508662 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532998 -0.543078 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508662 -0.538903 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532998 -0.543078 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508662 -0.538903 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.316595 -0.626214 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335868 -0.624401 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318408 -0.606941 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294133 -0.631217 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295946 -0.611945 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290942 -0.634407 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.311592 -0.648676 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308402 -0.651867 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330864 -0.646863 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.405245 -0.601704 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402224 -0.604188 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389418 -0.587062 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387213 -0.608512 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.371386 -0.593871 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366159 -0.617804 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400018 -0.625637 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378964 -0.63493 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396997 -0.628121 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.341105 -0.537564 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355747 -0.553391 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338621 -0.540585 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317172 -0.542791 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.314688 -0.545813 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30788 -0.563845 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334297 -0.555596 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325005 -0.57665 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.348938 -0.571423 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.245336 -0.623429 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268271 -0.624736 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.260997 -0.604627 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2416 -0.624589 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257262 -0.605787 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2608 -0.627055 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248874 -0.644697 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268073 -0.647163 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271809 -0.646004 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.278768 -0.530773 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.266942 -0.591774 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269578 -0.594664 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.284698 -0.579544 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.283817 -0.601088 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301572 -0.588858 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.303327 -0.613293 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268696 -0.616209 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288206 -0.628413 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271332 -0.619099 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.31938 -0.697473 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338182 -0.681812 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318074 -0.674538 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298112 -0.693935 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.296805 -0.671 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295646 -0.674736 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31822 -0.701209 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315754 -0.682009 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337022 -0.685547 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.351035 -0.675867 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.363265 -0.658111 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.348145 -0.673232 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3266 -0.674113 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32371 -0.671477 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.314396 -0.654603 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.341721 -0.658993 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329516 -0.639482 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.353951 -0.641237 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.412036 -0.664041 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.639472 -0.678928 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621631 -0.664108 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.629767 -0.661636 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634214 -0.696205 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624508 -0.678912 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.611115 -0.698662 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626079 -0.698678 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602979 -0.701135 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.608237 -0.683858 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.63057 -0.595495 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617371 -0.615286 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605919 -0.594239 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630343 -0.587782 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605692 -0.586526 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616917 -0.59986 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.641795 -0.608828 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628369 -0.620906 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628595 -0.628619 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.631982 -0.640648 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62585 -0.64267 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.614812 -0.625749 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616044 -0.647702 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.598874 -0.632802 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593974 -0.656777 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627081 -0.664623 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605012 -0.673698 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.620949 -0.666645 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.563328 -0.73992 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.577348 -0.719679 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.559693 -0.720935 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539553 -0.739118 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535918 -0.720133 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529798 -0.718076 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.557208 -0.737863 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547453 -0.716821 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571228 -0.717623 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.554862 -0.690713 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570641 -0.682694 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.552739 -0.667813 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531333 -0.695235 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.52921 -0.672335 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523582 -0.691738 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549235 -0.710116 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541484 -0.706619 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.565014 -0.702097 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.474542 -0.688647 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498226 -0.686417 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.485132 -0.666351 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46786 -0.684788 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.47845 -0.662492 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484862 -0.678699 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480953 -0.704854 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497955 -0.698765 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504637 -0.702624 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.57563 -0.689897 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.585222 -0.673115 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575587 -0.693998 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.551213 -0.693509 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.55117 -0.69761 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536388 -0.680339 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560848 -0.672626 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546023 -0.659456 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57044 -0.655844 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.478525 -0.627785 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484234 -0.630799 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497935 -0.615951 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493066 -0.637394 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.512476 -0.62556 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.513317 -0.650016 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.479365 -0.652241 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499616 -0.664864 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.485075 -0.655255 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.570049 -0.602201 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582252 -0.615021 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560414 -0.623084 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549372 -0.590095 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539737 -0.610978 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.540899 -0.590808 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571211 -0.582032 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562738 -0.582745 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.583414 -0.594852 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.269894 -0.672915 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.293281 -0.666987 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275822 -0.649528 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259777 -0.665573 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.265705 -0.642185 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273047 -0.652302 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.277236 -0.683032 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290507 -0.669762 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.300624 -0.677104 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.350033 -0.661904 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.362764 -0.65113 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345639 -0.638325 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.326099 -0.667131 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321705 -0.643552 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.314897 -0.661584 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.343224 -0.679937 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332022 -0.674389 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355956 -0.669162 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.280905 -0.592776 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304484 -0.59717 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291679 -0.580045 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262872 -0.599585 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273647 -0.586853 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26842 -0.610787 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275678 -0.61671 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281225 -0.627912 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299257 -0.621104 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.256944 -0.602632 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26347 -0.606749 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273158 -0.587686 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27313 -0.606658 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.289344 -0.591712 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295841 -0.614801 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263442 -0.62572 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286153 -0.633864 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269968 -0.629838 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.278768 -0.530773 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.342108 -0.551527 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356248 -0.560372 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.341128 -0.575492 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317673 -0.549772 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316693 -0.573738 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307378 -0.556863 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332793 -0.534652 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322499 -0.541743 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.346933 -0.543497 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340177 -0.685865 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355123 -0.669651 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33606 -0.679339 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317089 -0.679367 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312971 -0.672841 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308945 -0.656656 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336151 -0.669679 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328008 -0.646968 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351097 -0.653465 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.391282 -0.600701 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367317 -0.601681 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382437 -0.586561 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408157 -0.610016 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399312 -0.595876 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401066 -0.62031 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393037 -0.625136 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385946 -0.635431 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369071 -0.626116 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.412036 -0.664041 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.443014 -0.422853 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449156 -0.418916 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.463412 -0.433171 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435021 -0.445101 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455419 -0.455419 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433171 -0.463412 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420766 -0.430846 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418916 -0.449156 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426908 -0.426908 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.383576 -0.43509 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40305 -0.440308 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.406245 -0.428383 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.380381 -0.447015 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40305 -0.440308 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396659 -0.464158 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.377186 -0.45894 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393464 -0.476083 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396659 -0.464158 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.45894 -0.377186 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.476083 -0.393464 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.464158 -0.396659 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.43509 -0.383576 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440308 -0.40305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428383 -0.406245 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447015 -0.380381 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440308 -0.40305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.464158 -0.396659 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.512375 -0.453047 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493241 -0.465554 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497443 -0.44229 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531849 -0.447829 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.516916 -0.437072 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532187 -0.455118 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527647 -0.471093 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527985 -0.478381 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508512 -0.483599 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.538038 -0.404771 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532513 -0.427756 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.515053 -0.410297 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529309 -0.396041 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506323 -0.401567 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.515053 -0.410297 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546768 -0.4135 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532513 -0.427756 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541242 -0.436486 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.565623 -0.483869 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.54615 -0.478651 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549345 -0.466726 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562428 -0.495794 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.54615 -0.478651 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539759 -0.502501 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.559233 -0.507719 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536564 -0.514426 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539759 -0.502501 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.461599 -0.535539 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478381 -0.527985 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455118 -0.532187 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.443553 -0.520267 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.437072 -0.516916 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44229 -0.497443 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.466817 -0.516065 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.465554 -0.493241 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.483599 -0.508512 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.507719 -0.559233 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.514426 -0.536564 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.502501 -0.539759 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.483869 -0.565623 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478651 -0.54615 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.466726 -0.549345 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495794 -0.562428 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478651 -0.54615 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.502501 -0.539759 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.404771 -0.538038 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.427756 -0.532513 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410297 -0.515053 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396041 -0.529309 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401567 -0.506323 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410297 -0.515053 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4135 -0.546768 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.427756 -0.532513 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436486 -0.541242 -0.222222 RAD 0.00617284 
+   txt002 
+
+END_SCENE
diff --git a/examples/parallel_for/tacheon/dat/balls3.dat b/examples/parallel_for/tacheon/dat/balls3.dat
new file mode 100644
index 0000000..2837425
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/balls3.dat
@@ -0,0 +1,14804 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 1024 768 
+  VERBOSE 0
+
+CAMERA
+  ZOOM 1.20711
+ASPECTRATIO 1.0
+  ANTIALIASING 0
+  RAYDEPTH 5
+  CENTER 2.1 1.3 1.7
+  VIEWDIR -0.700389 -0.433574 -0.566982
+  UPDIR -0.482085 -0.298433 0.82373
+
+END_CAMERA 
+
+BACKGROUND 0.078 0.361 0.753 
+
+LIGHT CENTER 4 3 2 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 1 -4 4 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER -3 1 5 RAD 0.002 COLOR 0.5 0.5 0.5
+
+TEXDEF txt001 AMBIENT 0.2  DIFFUSE 0.8  SPECULAR 0  OPACITY 1 
+PHONG PLASTIC 0 PHONG_SIZE 100000
+ COLOR 1 0.75 0.33 
+ TEXFUNC 0 
+
+TRI 
+  V0 12 12 -0.5   V1 -12 -12 -0.5   V2 12 -12 -0.5 
+   txt001 
+TRI 
+  V0 12 12 -0.5   V1 -12 12 -0.5   V2 -12 -12 -0.5 
+   txt001 
+TEXDEF txt002 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+PHONG PLASTIC 0.5 PHONG_SIZE 45.2776
+ COLOR 1 0.9 0.7 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0 RAD 0.5 
+   txt002 
+ SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.481689 0.481689 0.57904 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475329 0.45787 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45787 0.475329 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.477074 0.494534 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.453255 0.488174 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4661 0.48356 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.494534 0.477074 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48356 0.4661 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488174 0.453255 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.47044 0.419664 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447954 0.425689 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.468014 0.433095 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484109 0.40322 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481683 0.416651 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475292 0.392801 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.464049 0.395814 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455233 0.385395 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.441563 0.401839 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.419664 0.47044 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433095 0.468014 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.425689 0.447954 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.395814 0.464049 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401839 0.441563 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385395 0.455233 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40322 0.484109 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.392801 0.475292 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416651 0.481683 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.441197 0.503434 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452601 0.483752 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434161 0.494577 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418001 0.501466 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410965 0.492609 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.406209 0.479816 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436441 0.490641 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42465 0.46899 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447846 0.470958 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.36376 0.497028 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383056 0.487812 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383056 0.487812 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34864 0.481907 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352815 0.457572 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34864 0.481907 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352815 0.457572 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.376578 0.444814 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399064 0.438789 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385395 0.455233 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356518 0.437408 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.365335 0.447826 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.358944 0.423976 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.370187 0.420964 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372614 0.407532 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.392673 0.414939 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.503434 0.441197 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.494577 0.434161 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.483752 0.452601 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490641 0.436441 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.470958 0.447846 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46899 0.42465 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501466 0.418001 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.479816 0.406209 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.492609 0.410965 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.444814 0.376578 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455233 0.385395 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.438789 0.399064 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420964 0.370187 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.414939 0.392673 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407532 0.372614 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.437408 0.356518 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423976 0.358944 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447826 0.365335 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.497028 0.36376 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.487812 0.383056 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.487812 0.383056 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481907 0.34864 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457572 0.352815 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481907 0.34864 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457572 0.352815 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.492085 0.33495 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488469 0.313874 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471009 0.331334 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495701 0.356025 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.474625 0.352409 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495701 0.356025 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51316 0.338566 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51316 0.338566 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.509544 0.31749 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.40568 0.315605 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403931 0.312107 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419383 0.329161 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426095 0.30867 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.439797 0.322225 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.444759 0.298235 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410643 0.291616 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429307 0.281181 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408893 0.288117 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.440864 0.389015 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457301 0.37895 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.451857 0.367697 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418755 0.378463 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429748 0.357145 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.413085 0.357845 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4242 0.389715 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418529 0.369098 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440637 0.37965 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.546497 0.347572 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532117 0.331508 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522481 0.352406 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.543964 0.350552 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519948 0.355387 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.52705 0.337468 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5536 0.329654 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536686 0.31657 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.53922 0.313589 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.48474 0.389488 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495668 0.369235 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.477004 0.379669 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.461764 0.388188 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.454027 0.37837 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449715 0.366636 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480429 0.377754 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46838 0.356202 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.491357 0.357501 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.518259 0.314219 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519922 0.310678 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504895 0.328108 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.49768 0.307788 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484316 0.321677 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478764 0.297816 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.512708 0.290358 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493791 0.280387 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51437 0.286818 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.539811 0.274878 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.520873 0.290418 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.533373 0.290264 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.537674 0.255722 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531235 0.271108 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.516598 0.252106 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.525174 0.255876 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504099 0.25226 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506236 0.271416 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.50716 0.230587 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51153 0.24936 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499694 0.253381 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484125 0.222248 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.476659 0.245042 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46546 0.232683 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495961 0.218227 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.477296 0.228661 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.500331 0.237 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.455172 0.217147 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472226 0.232599 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45115 0.228983 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433942 0.226031 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429921 0.237867 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429767 0.250367 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455018 0.229647 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.450842 0.253983 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472072 0.245099 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.33495 0.492085 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331334 0.471009 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313874 0.488469 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338566 0.51316 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31749 0.509544 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338566 0.51316 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356025 0.495701 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356025 0.495701 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352409 0.474625 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389015 0.440864 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367697 0.451857 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37895 0.457301 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389715 0.4242 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37965 0.440637 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369098 0.418529 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378463 0.418755 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357845 0.413085 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357145 0.429748 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.315605 0.40568 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329161 0.419383 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312107 0.403931 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291616 0.410643 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288117 0.408893 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281181 0.429307 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30867 0.426095 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298235 0.444759 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322225 0.439797 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.274878 0.539811 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290264 0.533373 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290418 0.520873 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.255876 0.525174 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271416 0.506236 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.25226 0.504099 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.255722 0.537674 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.252106 0.516598 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271108 0.531235 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.217147 0.455172 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228983 0.45115 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.232599 0.472226 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229647 0.455018 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245099 0.472072 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253983 0.450842 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.226031 0.433942 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250367 0.429767 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237867 0.429921 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.230587 0.50716 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253381 0.499694 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.24936 0.51153 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218227 0.495961 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237 0.500331 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228661 0.477296 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.222248 0.484125 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.232683 0.46546 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245042 0.476659 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.347572 0.546497 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352406 0.522481 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331508 0.532117 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329654 0.5536 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313589 0.53922 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31657 0.536686 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350552 0.543964 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337468 0.52705 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355387 0.519948 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.314219 0.518259 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328108 0.504895 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310678 0.519922 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290358 0.512708 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286818 0.51437 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280387 0.493791 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307788 0.49768 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297816 0.478764 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321677 0.484316 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389488 0.48474 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379669 0.477004 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369235 0.495668 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.377754 0.480429 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357501 0.491357 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356202 0.46838 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388188 0.461764 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366636 0.449715 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37837 0.454027 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.264242 0.467193 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.272442 0.447086 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253384 0.459832 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2424 0.46672 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.231541 0.459359 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228758 0.446141 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261459 0.453974 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247817 0.433396 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269659 0.433868 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.319874 0.420236 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.303021 0.407886 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.296625 0.428474 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318692 0.420256 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295442 0.428494 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.300656 0.407926 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325088 0.399668 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307053 0.387338 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308235 0.387318 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.263032 0.459076 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.270029 0.436804 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247378 0.440021 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.246239 0.472047 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230585 0.452992 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236443 0.462746 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26889 0.468829 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259094 0.459528 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275887 0.446557 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.174744 0.447688 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.197172 0.437457 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.1895 0.447523 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156968 0.436708 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171724 0.436544 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161621 0.415499 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164641 0.426642 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.169293 0.405432 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187069 0.416412 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.177682 0.45215 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.190087 0.449636 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200611 0.44299 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.169628 0.432153 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.192556 0.422992 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173978 0.409641 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159104 0.438799 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.163454 0.416288 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171508 0.436286 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.13761 0.368692 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.158434 0.366998 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153102 0.387887 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138607 0.369329 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.154099 0.388523 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160429 0.36827 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.14394 0.34844 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165761 0.347381 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164764 0.346745 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.237348 0.393812 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251829 0.390976 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234368 0.408432 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.213518 0.387445 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.210538 0.402066 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.204169 0.378242 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23098 0.369989 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221631 0.360786 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245461 0.367152 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.209548 0.312342 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229235 0.324887 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209827 0.337 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188347 0.31322 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188626 0.337878 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.186834 0.326643 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207755 0.301107 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206242 0.31453 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227442 0.313652 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.302145 0.344931 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297823 0.356827 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.289691 0.366251 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28356 0.334005 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271106 0.355325 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.260653 0.334975 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291692 0.324581 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268785 0.325551 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28737 0.336477 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.110567 0.524146 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.126738 0.506465 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.112687 0.504055 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0863343 0.519988 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0884544 0.499897 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0782715 0.49815 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100385 0.522399 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0923218 0.500561 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.116555 0.504718 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.177777 0.492047 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176681 0.473492 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159222 0.490951 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161488 0.493217 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.142932 0.492121 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144102 0.475831 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.178947 0.475757 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161561 0.458371 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177851 0.457202 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.167697 0.481967 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161561 0.458371 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144102 0.475831 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166528 0.498257 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.142932 0.492121 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159222 0.490951 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183987 0.480797 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176681 0.473492 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177851 0.457202 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0450372 0.477623 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.055591 0.475469 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696413 0.47788 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0465898 0.4591 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.071194 0.459357 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0586963 0.438424 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325396 0.45669 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0446461 0.436013 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0430934 0.454536 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.10495 0.439381 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0911807 0.435691 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10864 0.45315 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128801 0.43299 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13249 0.44676 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138881 0.42291 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111341 0.415531 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.121421 0.40545 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0975713 0.411841 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.052284 0.366554 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0708393 0.36765 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0533799 0.385109 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511144 0.382844 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0522103 0.401399 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0685002 0.400229 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0685739 0.365384 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0859596 0.38277 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0871292 0.36648 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0493251 0.475575 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0725262 0.467381 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.06557 0.479825 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0339426 0.465141 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0501875 0.46939 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0417612 0.446512 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0408988 0.452697 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0487174 0.434069 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0640999 0.444504 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0623642 0.376634 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0859596 0.38277 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0685002 0.400229 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0460743 0.377803 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0522103 0.401399 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0533799 0.385109 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0635337 0.360344 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0708393 0.36765 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0871292 0.36648 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.125111 0.439381 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138881 0.435691 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.121421 0.45315 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101261 0.43299 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0975713 0.44676 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0911807 0.42291 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11872 0.415531 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10864 0.40545 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13249 0.411841 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0426858 0.273525 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.064638 0.265928 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0510334 0.281546 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0219434 0.26565 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.030291 0.273671 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0231533 0.250178 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0355481 0.250032 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.036758 0.23456 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0575003 0.242434 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.135677 0.265544 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138361 0.25778 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12224 0.275732 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.115003 0.26032 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101567 0.270508 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.097014 0.247334 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.131123 0.242369 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.113134 0.229382 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.133808 0.234605 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0971427 0.330622 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.109956 0.310023 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.091905 0.317013 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0735708 0.329151 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0683331 0.315541 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0628126 0.30708 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0916222 0.322161 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.080864 0.30009 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.104436 0.301561 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0110117 0.257416 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00823377 0.253319 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0102865 0.269325 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0105502 0.249215 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.010748 0.261124 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00915679 0.236916 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0126029 0.233209 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00710408 0.22091 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00664257 0.229111 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0555846 0.315856 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0705987 0.309941 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0705297 0.296292 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.03617 0.301531 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511152 0.281968 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0317696 0.281291 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.036239 0.31518 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0318385 0.29494 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.051253 0.309265 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.025169 0.224935 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0281502 0.217281 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0288111 0.241399 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0443054 0.234341 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0479475 0.250805 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.066423 0.236092 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0436445 0.210223 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0657621 0.211974 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0466257 0.202569 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0335228 0.179527 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0567332 0.187058 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0385291 0.203632 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0167878 0.181593 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.021794 0.205698 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0232631 0.191189 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0349919 0.165018 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0414672 0.174615 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0582023 0.172549 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0867911 0.147549 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101845 0.166573 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.083121 0.161663 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0635354 0.151669 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0598652 0.165782 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0553337 0.174812 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822597 0.156579 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.074058 0.179722 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0973138 0.175603 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.133336 0.176775 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136161 0.192663 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.124499 0.199753 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.110965 0.167739 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102127 0.190718 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0914184 0.174592 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.122627 0.160649 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.103081 0.167502 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.125452 0.176537 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.467193 0.264242 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459832 0.253384 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447086 0.272442 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.453974 0.261459 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433868 0.269659 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433396 0.247817 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46672 0.2424 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446141 0.228758 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459359 0.231541 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.459076 0.263032 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440021 0.247378 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436804 0.270029 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.468829 0.26889 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446557 0.275887 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459528 0.259094 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472047 0.246239 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.462746 0.236443 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452992 0.230585 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.420236 0.319874 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428474 0.296625 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407886 0.303021 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399668 0.325088 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387318 0.308235 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387338 0.307053 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420256 0.318692 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407926 0.300656 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428494 0.295442 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.393812 0.237348 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408432 0.234368 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.390976 0.251829 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369989 0.23098 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367152 0.245461 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.360786 0.221631 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387445 0.213518 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378242 0.204169 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402066 0.210538 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.344931 0.302145 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366251 0.289691 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356827 0.297823 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324581 0.291692 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336477 0.28737 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325551 0.268785 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334005 0.28356 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334975 0.260653 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355325 0.271106 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.312342 0.209548 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337 0.209827 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324887 0.229235 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301107 0.207755 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313652 0.227442 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31453 0.206242 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31322 0.188347 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.326643 0.186834 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337878 0.188626 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.447688 0.174744 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447523 0.1895 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.437457 0.197172 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426642 0.164641 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416412 0.187069 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405432 0.169293 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436708 0.156968 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.415499 0.161621 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436544 0.171724 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.368692 0.13761 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387887 0.153102 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366998 0.158434 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34844 0.14394 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.346745 0.164764 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347381 0.165761 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369329 0.138607 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36827 0.160429 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388523 0.154099 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.45215 0.177682 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44299 0.200611 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449636 0.190087 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.438799 0.159104 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436286 0.171508 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416288 0.163454 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.432153 0.169628 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409641 0.173978 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.422992 0.192556 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.273525 0.0426858 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281546 0.0510334 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.265928 0.064638 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250032 0.0355481 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242434 0.0575003 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23456 0.036758 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26565 0.0219434 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250178 0.0231533 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273671 0.030291 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.330622 0.0971427 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317013 0.091905 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310023 0.109956 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322161 0.0916222 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301561 0.104436 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30009 0.080864 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329151 0.0735708 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30708 0.0628126 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315541 0.0683331 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.265544 0.135677 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275732 0.12224 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.25778 0.138361 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242369 0.131123 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234605 0.133808 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229382 0.113134 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26032 0.115003 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247334 0.097014 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.270508 0.101567 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.179527 0.0335228 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203632 0.0385291 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187058 0.0567332 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165018 0.0349919 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172549 0.0582023 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174615 0.0414672 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181593 0.0167878 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191189 0.0232631 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205698 0.021794 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.176775 0.133336 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.199753 0.124499 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.192663 0.136161 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160649 0.122627 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176537 0.125452 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167502 0.103081 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167739 0.110965 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174592 0.0914184 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.190718 0.102127 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.147549 0.0867911 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161663 0.083121 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166573 0.101845 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156579 0.0822597 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.175603 0.0973138 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179722 0.074058 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.151669 0.0635354 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174812 0.0553337 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165782 0.0598652 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.257416 -0.0110117 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269325 0.0102865 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253319 0.00823377 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233209 -0.0126029 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229111 0.00664257 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22091 0.00710408 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249215 -0.0105502 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236916 0.00915679 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261124 0.010748 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.224935 0.025169 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241399 0.0288111 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217281 0.0281502 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.210223 0.0436445 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.202569 0.0466257 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211974 0.0657621 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234341 0.0443054 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236092 0.066423 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250805 0.0479475 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.315856 0.0555846 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.296292 0.0705297 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.309941 0.0705987 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31518 0.036239 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.309265 0.051253 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29494 0.0318385 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301531 0.03617 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281291 0.0317696 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281968 0.0511152 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.524146 0.110567 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504055 0.112687 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506465 0.126738 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522399 0.100385 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504718 0.116555 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.500561 0.0923218 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519988 0.0863343 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.49815 0.0782715 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499897 0.0884544 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.481967 0.167697 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475831 0.144102 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.458371 0.161561 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480797 0.183987 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457202 0.177851 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.473492 0.176681 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498257 0.166528 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490951 0.159222 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.492121 0.142932 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.492047 0.177777 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490951 0.159222 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.473492 0.176681 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475757 0.178947 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.457202 0.177851 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.458371 0.161561 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493217 0.161488 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475831 0.144102 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.492121 0.142932 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.475575 0.0493251 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.479825 0.06557 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.467381 0.0725262 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452697 0.0408988 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.444504 0.0640999 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434069 0.0487174 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.465141 0.0339426 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446512 0.0417612 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46939 0.0501875 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.439381 0.125111 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45315 0.121421 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435691 0.138881 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.415531 0.11872 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.411841 0.13249 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40545 0.10864 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.43299 0.101261 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42291 0.0911807 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44676 0.0975713 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.376634 0.0623642 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400229 0.0685002 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38277 0.0859596 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.360344 0.0635337 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36648 0.0871292 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36765 0.0708393 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.377803 0.0460743 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385109 0.0533799 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401399 0.0522103 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.477623 0.0450372 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.47788 0.0696413 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475469 0.055591 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45669 0.0325396 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.454536 0.0430934 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436013 0.0446461 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4591 0.0465898 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.438424 0.0586963 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.459357 0.071194 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.366554 0.052284 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385109 0.0533799 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36765 0.0708393 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.365384 0.0685739 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36648 0.0871292 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38277 0.0859596 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382844 0.0511144 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400229 0.0685002 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401399 0.0522103 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.41922 0.125111 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40545 0.121421 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42291 0.138881 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44307 0.11872 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44676 0.13249 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45315 0.10864 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.425611 0.101261 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435691 0.0911807 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.411841 0.0975713 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.822021 0.302088 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.821938 0.282758 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.802598 0.298094 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.824119 0.32499 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.804695 0.320997 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.826132 0.328563 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843459 0.309654 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845472 0.313227 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843375 0.290324 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.785699 0.218449 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.802677 0.22345 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.778718 0.223304 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770818 0.236351 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.763837 0.241205 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.772915 0.259253 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.794777 0.236497 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.796874 0.2594 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.811756 0.241498 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.741263 0.325175 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.747715 0.32493 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.765112 0.325981 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745704 0.305466 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.769553 0.306272 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.756597 0.285513 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.728307 0.304415 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7392 0.284462 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.734759 0.304171 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.851488 0.360404 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853509 0.335865 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.832518 0.347059 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.836826 0.370319 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817857 0.356973 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.824185 0.355695 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857816 0.359125 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845176 0.344501 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.859838 0.334587 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.768944 0.369945 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.788341 0.356172 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.780624 0.356171 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.747572 0.359113 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759252 0.34534 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745596 0.33451 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755289 0.359115 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.753313 0.334511 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774685 0.345342 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.83071 0.340361 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.840365 0.325527 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.822249 0.341208 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.807766 0.336425 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.799305 0.337272 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.794477 0.317654 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.825882 0.320744 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.812593 0.301973 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.835537 0.30591 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.891539 0.292033 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.868678 0.28812 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.872763 0.305711 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.897348 0.285824 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.878572 0.299501 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.880296 0.275701 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.893263 0.268233 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876212 0.25811 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.870402 0.264319 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.87538 0.26204 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.87108 0.266856 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.860805 0.280934 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857361 0.252905 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842785 0.271799 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.835041 0.248586 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.867636 0.238827 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845317 0.234508 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.863337 0.243643 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.860225 0.206363 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.858689 0.230102 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.854636 0.223536 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.839784 0.193863 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.834196 0.211035 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817808 0.205101 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843837 0.200429 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.821861 0.211667 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842301 0.224168 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.61556 0.221097 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621702 0.225035 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.635958 0.210779 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607567 0.198849 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627965 0.188531 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605717 0.180539 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593312 0.213105 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591462 0.194794 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.599454 0.217042 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.556122 0.208861 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575596 0.203643 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.578791 0.215568 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.552927 0.196936 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575596 0.203643 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569205 0.179793 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549732 0.185011 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.56601 0.167868 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569205 0.179793 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.631486 0.266765 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648629 0.250487 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.636704 0.247291 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607636 0.260374 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.612854 0.240901 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600929 0.237705 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.619561 0.26357 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.612854 0.240901 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.636704 0.247291 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684921 0.190903 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665787 0.178397 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669989 0.201661 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704395 0.196121 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.689462 0.206879 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704733 0.188833 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700193 0.172858 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700531 0.165569 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681058 0.160351 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.710584 0.23918 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705059 0.216195 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687599 0.233654 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701855 0.24791 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678869 0.242384 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687599 0.233654 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.719314 0.23045 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705059 0.216195 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.713788 0.207465 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.738169 0.160081 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718696 0.165299 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721891 0.177224 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.734974 0.148156 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718696 0.165299 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712305 0.141449 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.731779 0.136231 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.70911 0.129524 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712305 0.141449 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.634145 0.108412 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.650927 0.115965 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627664 0.111763 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616099 0.123683 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609618 0.127034 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.614836 0.146508 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639363 0.127886 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.6381 0.15071 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656145 0.135439 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.680265 0.0847178 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.686972 0.107387 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675047 0.104191 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656415 0.0783272 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651197 0.0978007 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639272 0.0946054 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.66834 0.0815225 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651197 0.0978007 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675047 0.104191 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.577317 0.105912 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600302 0.111438 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582843 0.128897 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.568587 0.114642 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.574113 0.137627 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582843 0.128897 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586046 0.0971825 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600302 0.111438 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609032 0.102708 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.625955 0.411883 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630791 0.390369 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607547 0.396287 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61429 0.429805 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.595882 0.414208 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607462 0.426212 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.637535 0.423887 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630706 0.420295 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642371 0.402373 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688854 0.369058 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.652948 0.344865 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.632683 0.357697 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651954 0.357326 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.658482 0.324211 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.657489 0.336672 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643752 0.316388 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639211 0.324581 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624481 0.316758 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.618946 0.337413 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.541008 0.410169 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548718 0.410472 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.564748 0.405866 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539866 0.388816 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563607 0.384513 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546435 0.367766 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523836 0.393422 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530405 0.372372 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531546 0.393725 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.555534 0.296626 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572202 0.297216 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.550163 0.307914 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549999 0.31728 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.544629 0.328569 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.561133 0.338525 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572037 0.306582 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.583171 0.327827 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588706 0.307172 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506807 0.320279 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.58161 0.452905 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5989 0.436077 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586467 0.434777 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.55776 0.446515 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562617 0.428387 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5512 0.423296 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570193 0.447815 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563633 0.424596 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587483 0.430987 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.547099 0.396248 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569716 0.388263 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.557504 0.403175 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527447 0.387819 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.537852 0.394747 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530412 0.371406 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539659 0.372907 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542624 0.356494 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562276 0.364922 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.637209 0.41723 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642848 0.401533 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624734 0.418027 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.615976 0.414703 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603501 0.4155 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600381 0.39648 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634089 0.39821 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.618494 0.379986 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639728 0.382513 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.872345 0.34259 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.86421 0.32016 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848329 0.338969 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.866833 0.351888 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842817 0.348268 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853186 0.338757 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882715 0.333079 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.869068 0.319948 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.87458 0.310649 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.849036 0.291048 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.826067 0.287867 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.840755 0.304882 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.868341 0.28406 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.86006 0.297894 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.864676 0.273891 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853652 0.267046 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.849987 0.256877 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.830683 0.263865 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.808673 0.346884 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.82298 0.335792 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.807762 0.322361 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.784265 0.34818 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.783355 0.323657 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774164 0.338384 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.799483 0.361611 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.789382 0.351815 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.81379 0.350519 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.828769 0.350165 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838905 0.333232 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.820583 0.347547 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.805799 0.346984 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.797614 0.344366 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.792966 0.32687 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.824121 0.332668 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.811288 0.312554 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.834258 0.315735 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.753851 0.362219 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774086 0.350765 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76987 0.352319 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.735575 0.349134 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751594 0.339233 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737534 0.324595 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.739791 0.347581 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.74175 0.323042 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760026 0.336127 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.756464 0.29233 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.779336 0.288514 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.765125 0.305929 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.736973 0.285879 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745634 0.299478 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.740355 0.275612 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751185 0.268464 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.754567 0.258198 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774058 0.264649 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.885497 0.282313 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876946 0.281455 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.867718 0.29787 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.871286 0.274699 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.853506 0.290257 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848523 0.266228 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.880514 0.258284 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857752 0.249813 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.871963 0.257427 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.818054 0.21762 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.83061 0.230661 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.813612 0.241754 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.794089 0.212813 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.789647 0.236948 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.78268 0.221048 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.811087 0.20172 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.799677 0.209955 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.823642 0.214761 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.873186 0.21889 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.865588 0.240865 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.866351 0.236437 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857005 0.203288 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.850171 0.220835 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.833227 0.20966 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.856242 0.207715 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.832464 0.214088 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848644 0.22969 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.626191 0.448155 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634643 0.42519 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.614455 0.43276 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.60514 0.45191 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593404 0.436515 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.592541 0.4327 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625328 0.44434 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.612729 0.42513 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.63378 0.421375 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68332 0.389713 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660156 0.398265 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665691 0.37761 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688854 0.369058 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671225 0.356956 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.625435 0.399844 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627149 0.378352 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.60511 0.38905 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.619901 0.420499 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.599576 0.409705 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61608 0.419661 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.641939 0.409801 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638118 0.408963 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643653 0.388308 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.53788 0.433888 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.558395 0.423551 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.55574 0.426423 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.521526 0.42011 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539387 0.412646 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.525689 0.395996 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.524182 0.417238 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528344 0.393124 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.544697 0.406901 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.540802 0.399304 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.54453 0.400489 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563801 0.400119 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546337 0.37865 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569335 0.379464 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555599 0.35918 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527065 0.37902 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536327 0.359551 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530793 0.380205 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501272 0.340934 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517056 0.359921 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522591 0.339267 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506807 0.320279 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.528125 0.318612 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.594185 0.405974 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609969 0.394768 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593017 0.410332 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570335 0.399584 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569167 0.403942 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562269 0.381987 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587286 0.384019 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57922 0.366422 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.60307 0.372813 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.567308 0.314012 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587901 0.320398 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569787 0.336891 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546074 0.311485 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548554 0.334364 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.545434 0.315344 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.564188 0.294991 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563547 0.29885 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.584781 0.301377 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.659244 0.341809 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65787 0.345471 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645657 0.360383 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639592 0.33338 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626005 0.351955 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.618565 0.328614 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651804 0.318468 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630777 0.313702 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65043 0.32213 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.690652 0.219248 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.695267 0.206403 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677807 0.223862 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669577 0.215632 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656732 0.220246 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.653116 0.199171 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687036 0.198172 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.670575 0.181711 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.691651 0.185327 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.733129 0.203821 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.709966 0.212373 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.733129 0.203821 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.709966 0.212373 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715501 0.191718 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.738664 0.183166 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721035 0.171063 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721035 0.171063 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.675225 0.261725 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683777 0.238562 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65457 0.267259 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642468 0.249631 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642468 0.249631 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675225 0.261725 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663122 0.244096 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683777 0.238562 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.600215 0.197046 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.622701 0.191021 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609032 0.207465 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.580155 0.18964 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588972 0.200059 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582581 0.176209 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593824 0.173196 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.596251 0.159765 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61631 0.167171 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.587397 0.24926 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606693 0.240045 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606693 0.240045 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572277 0.23414 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.576452 0.209804 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.572277 0.23414 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.576452 0.209804 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591572 0.224924 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.551082 0.155041 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566866 0.174029 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.551082 0.155041 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566866 0.174029 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.5724 0.153374 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.556617 0.134387 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.577935 0.13272 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.577935 0.13272 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.668451 0.12881 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678869 0.137627 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.662426 0.151296 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644601 0.12242 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638576 0.144906 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.631169 0.124846 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661044 0.108751 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647613 0.111177 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671463 0.117567 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.626446 0.0796777 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645433 0.0954616 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605791 0.0852121 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604124 0.10653 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604124 0.10653 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626446 0.0796777 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624779 0.100996 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645433 0.0954616 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.720665 0.115992 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.711449 0.135288 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.711449 0.135288 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705544 0.100872 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681209 0.105047 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705544 0.100872 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681209 0.105047 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.696329 0.120168 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.852418 0.0955788 1.89979e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.937225 0.122151 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.916553 0.11086 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.915202 0.131874 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.943281 0.12236 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.921258 0.132084 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.928665 0.111279 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.944632 0.101346 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.930016 0.0902645 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.92396 0.090055 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.873196 0.134634 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882112 0.117797 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.858152 0.11765 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.858315 0.152536 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.843271 0.135552 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.852349 0.1536 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882275 0.152682 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876309 0.153747 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.89119 0.135845 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.890926 0.182656 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.897331 0.159019 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.876622 0.167676 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.871561 0.188412 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857256 0.173431 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.8586 0.17053 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.89227 0.179755 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.87931 0.161874 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.898675 0.156118 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.930963 0.0752104 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.924191 0.0806562 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.915684 0.0941344 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.914568 0.0655041 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.899289 0.0844281 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.891402 0.0612436 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.923076 0.0520258 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.89991 0.0477654 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.916304 0.0574717 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.875744 0.141535 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.88655 0.129819 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.868763 0.146389 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.852347 0.136371 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.845366 0.141225 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.839756 0.119492 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.870135 0.119801 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.857544 0.102922 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.880941 0.108085 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.842832 0.0523913 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.86055 0.0593957 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.842434 0.0750766 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.819888 0.0484547 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.81949 0.07114 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.814662 0.0515226 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.838004 0.0327739 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.832778 0.0358417 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.855722 0.0397783 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.920407 0.0359958 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.912106 0.0588574 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.915603 0.0511067 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.905363 0.0190117 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.900559 0.0341227 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.882018 0.0248894 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.901866 0.0267625 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.878521 0.0326401 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.893565 0.0496241 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.825102 0.00436945 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.84533 0.018173 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.823964 0.025051 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.806642 0.0125791 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.805505 0.0332607 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.808411 0.0345923 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.828008 0.00570109 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.829777 0.0277143 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.848237 0.0195047 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.840284 0.0454909 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.856111 0.0473735 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.831823 0.0463379 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.825856 0.0646197 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.817395 0.0654667 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.827255 0.0856311 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.850144 0.0656554 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.851543 0.0866667 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.865971 0.0675379 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.762259 -0.0417568 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759495 -0.0345526 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.748937 -0.0216407 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743089 -0.051231 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.729767 -0.0311149 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721155 -0.053501 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.753646 -0.0641429 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.731712 -0.0664129 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.750882 -0.0569387 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.788473 -0.00272662 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.736829 0.0454452 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.742467 0.0297485 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.724354 0.046242 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715595 0.0429182 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.70312 0.043715 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7 0.0246945 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.733709 0.0264247 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718114 0.00820099 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.739347 0.010728 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.669983 -0.0708196 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.690113 -0.0618185 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671462 -0.0467378 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648644 -0.0721997 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.650123 -0.0481178 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647436 -0.0645786 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.667296 -0.0872804 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666087 -0.0796593 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687426 -0.0782793 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.646718 0.0244627 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669336 0.016478 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.657124 0.0313903 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627066 0.0160343 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.637471 0.022962 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630031 -0.000378614 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639278 0.00112207 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642244 -0.0152909 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661896 -0.00686255 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606426 -0.051506 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.730141 -0.101422 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.736701 -0.0782041 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.725284 -0.0832945 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.706291 -0.107813 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701434 -0.0896851 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.689001 -0.0909853 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.717709 -0.102723 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700418 -0.0858949 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.724268 -0.0795043 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.655153 -0.0751594 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671821 -0.0745692 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649783 -0.0638711 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649619 -0.0545047 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644249 -0.0432164 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660752 -0.0332597 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671657 -0.0652028 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682791 -0.0439578 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688325 -0.0646126 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.752567 -0.0269197 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.732303 -0.014088 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751574 -0.0144587 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.758102 -0.0475745 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.757108 -0.0351134 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743371 -0.0553974 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.73883 -0.0472037 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7241 -0.0550267 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718566 -0.0343719 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.770032 -0.0684873 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759394 -0.0481266 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.762305 -0.0507391 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.756497 -0.0850422 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.74877 -0.067294 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.732325 -0.0812364 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.753586 -0.0824297 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.729413 -0.0786239 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.742948 -0.062069 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.782939 0.0179281 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759776 0.02648 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.76531 0.0058253 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.788473 -0.00272662 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.770845 -0.0148294 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.758864 -0.0299763 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.757489 -0.0263144 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745277 -0.0114021 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.739212 -0.0384047 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.725625 -0.0198304 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718185 -0.043171 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751424 -0.0533169 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.730397 -0.0580833 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.750049 -0.0496549 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.675276 -0.106805 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.694308 -0.091423 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.673094 -0.0875713 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.655278 -0.0992356 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.653095 -0.0800016 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65431 -0.0762835 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.676491 -0.103087 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675524 -0.0801352 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.695522 -0.0877049 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.666927 -0.0577732 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.68752 -0.0513875 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669407 -0.034894 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645694 -0.0603001 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648173 -0.0374209 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645053 -0.0564414 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663807 -0.0767937 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663167 -0.072935 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.6844 -0.070408 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.600892 -0.0308513 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616676 -0.0118635 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62221 -0.0325183 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606426 -0.051506 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627745 -0.053173 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.717566 -0.0544915 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.725632 -0.0368947 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.718734 -0.0588496 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.693716 -0.0608821 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.694884 -0.0652402 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677932 -0.0496759 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700615 -0.0389272 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.684831 -0.027721 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.708681 -0.0213304 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.640422 0.0275193 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644149 0.0287044 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.66342 0.0283337 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.645956 0.00686453 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.668955 0.00767898 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.655218 -0.012605 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626685 0.00723527 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.635947 -0.0122343 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630413 0.00842045 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.725055 0.0280589 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.726768 0.00656677 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.70473 0.0172649 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.71952 0.0487136 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.699195 0.0379196 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.715699 0.0478762 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.741558 0.0380155 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.737738 0.0371781 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743272 0.0165234 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.302088 0.822021 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298094 0.802598 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282758 0.821938 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.309654 0.843459 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290324 0.843375 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313227 0.845472 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32499 0.824119 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328563 0.826132 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320997 0.804695 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.325175 0.741263 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325981 0.765112 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32493 0.747715 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304415 0.728307 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304171 0.734759 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.284462 0.7392 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305466 0.745704 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285513 0.756597 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306272 0.769553 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.218449 0.785699 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223304 0.778718 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22345 0.802677 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236497 0.794777 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241498 0.811756 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2594 0.796874 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236351 0.770818 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259253 0.772915 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241205 0.763837 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.292033 0.891539 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305711 0.872763 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28812 0.868678 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268233 0.893263 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.264319 0.870402 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.25811 0.876212 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285824 0.897348 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275701 0.880296 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299501 0.878572 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.206363 0.860225 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223536 0.854636 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230102 0.858689 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200429 0.843837 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224168 0.842301 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211667 0.821861 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193863 0.839784 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205101 0.817808 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211035 0.834196 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.26204 0.87538 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280934 0.860805 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266856 0.87108 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238827 0.867636 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.243643 0.863337 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234508 0.845317 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.252905 0.857361 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248586 0.835041 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271799 0.842785 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.360404 0.851488 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347059 0.832518 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335865 0.853509 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359125 0.857816 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334587 0.859838 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.344501 0.845176 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.370319 0.836826 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355695 0.824185 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356973 0.817857 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340361 0.83071 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.341208 0.822249 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325527 0.840365 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320744 0.825882 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30591 0.835537 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301973 0.812593 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336425 0.807766 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317654 0.794477 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337272 0.799305 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.369945 0.768944 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356171 0.780624 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356172 0.788341 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359115 0.755289 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345342 0.774685 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334511 0.753313 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359113 0.747572 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33451 0.745596 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34534 0.759252 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.411883 0.625955 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396287 0.607547 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.390369 0.630791 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423887 0.637535 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402373 0.642371 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420295 0.630706 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429805 0.61429 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426212 0.607462 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.414208 0.595882 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.344865 0.652948 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357326 0.651954 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.357697 0.632683 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324581 0.639211 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337413 0.618946 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316758 0.624481 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324211 0.658482 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316388 0.643752 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336672 0.657489 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369058 0.688854 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.452905 0.58161 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434777 0.586467 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436077 0.5989 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447815 0.570193 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.430987 0.587483 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.424596 0.563633 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.446515 0.55776 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423296 0.5512 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428387 0.562617 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.41723 0.637209 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418027 0.624734 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401533 0.642848 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39821 0.634089 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382513 0.639728 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379986 0.618494 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.414703 0.615976 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39648 0.600381 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4155 0.603501 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.396248 0.547099 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403175 0.557504 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388263 0.569716 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372907 0.539659 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.364922 0.562276 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356494 0.542624 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387819 0.527447 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.371406 0.530412 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.394747 0.537852 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.410169 0.541008 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405866 0.564748 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410472 0.548718 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393422 0.523836 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393725 0.531546 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372372 0.530405 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388816 0.539866 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367766 0.546435 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384513 0.563607 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320279 0.506807 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.296626 0.555534 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307914 0.550163 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297216 0.572202 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306582 0.572037 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307172 0.588706 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.327827 0.583171 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31728 0.549999 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338525 0.561133 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328569 0.544629 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.144155 0.692502 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.150298 0.696439 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164554 0.682184 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136163 0.670254 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156561 0.659936 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.134313 0.651943 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.121907 0.684509 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120057 0.666199 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12805 0.688447 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0847178 0.680265 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.104191 0.675047 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.107387 0.686972 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0815225 0.66834 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.104191 0.675047 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0978007 0.651197 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0783272 0.656415 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0946054 0.639272 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0978007 0.651197 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.160081 0.738169 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177224 0.721891 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165299 0.718696 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136231 0.731779 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141449 0.712305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.129524 0.70911 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.148156 0.734974 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141449 0.712305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165299 0.718696 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.213517 0.662308 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.194382 0.649801 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198584 0.673065 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23299 0.667526 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218058 0.678283 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233329 0.660237 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228788 0.644262 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229127 0.636974 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209653 0.631756 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.23918 0.710584 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233654 0.687599 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.216195 0.705059 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23045 0.719314 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207465 0.713788 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.216195 0.705059 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.24791 0.701855 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233654 0.687599 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242384 0.678869 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.266765 0.631486 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247291 0.636704 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250487 0.648629 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26357 0.619561 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247291 0.636704 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240901 0.612854 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.260374 0.607636 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237705 0.600929 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240901 0.612854 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.162741 0.579817 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179523 0.58737 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156259 0.583168 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144695 0.595088 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138214 0.598439 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.143431 0.617912 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167958 0.59929 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166695 0.622115 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.184741 0.606843 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.208861 0.556122 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215568 0.578791 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203643 0.575596 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.185011 0.549732 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179793 0.569205 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167868 0.56601 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.196936 0.552927 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179793 0.569205 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203643 0.575596 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.105912 0.577317 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128897 0.582843 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111438 0.600302 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0971825 0.586046 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102708 0.609032 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111438 0.600302 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.114642 0.568587 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128897 0.582843 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.137627 0.574113 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0955788 0.852418 9.1293e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.122151 0.937225 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.131874 0.915202 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11086 0.916553 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101346 0.944632 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.090055 0.92396 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0902645 0.930016 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12236 0.943281 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111279 0.928665 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.132084 0.921258 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.182656 0.890926 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167676 0.876622 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159019 0.897331 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179755 0.89227 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156118 0.898675 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161874 0.87931 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188412 0.871561 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.17053 0.8586 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173431 0.857256 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.134634 0.873196 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11765 0.858152 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.117797 0.882112 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152682 0.882275 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135845 0.89119 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153747 0.876309 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152536 0.858315 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.1536 0.852349 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135552 0.843271 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0359958 0.920407 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511067 0.915603 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0588574 0.912106 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0267625 0.901866 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0496241 0.893565 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0326401 0.878521 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0190117 0.905363 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0248894 0.882018 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0341227 0.900559 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0454909 0.840284 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0463379 0.831823 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0473735 0.856111 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0656554 0.850144 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0675379 0.865971 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0866667 0.851543 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0646197 0.825856 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0856311 0.827255 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0654667 0.817395 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.00436945 0.825102 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.025051 0.823964 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.018173 0.84533 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00570109 0.828008 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0195047 0.848237 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0277143 0.829777 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0125791 0.806642 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0345923 0.808411 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0332607 0.805505 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0752104 0.930963 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0941344 0.915684 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0806562 0.924191 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0520258 0.923076 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0574717 0.916304 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0477654 0.89991 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0655041 0.914568 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0612436 0.891402 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0844281 0.899289 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0523913 0.842832 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0750766 0.842434 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0593957 0.86055 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0327739 0.838004 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0397783 0.855722 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0358417 0.832778 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0484547 0.819888 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0515226 0.814662 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.07114 0.81949 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.141535 0.875744 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.146389 0.868763 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.129819 0.88655 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.119801 0.870135 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108085 0.880941 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102922 0.857544 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.136371 0.852347 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.119492 0.839756 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141225 0.845366 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0684873 0.770032 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0507391 0.762305 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0481266 0.759394 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0824297 0.753586 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.062069 0.742948 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0786239 0.729413 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0850422 0.756497 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0812364 0.732325 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.067294 0.74877 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0299763 0.758864 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0114021 0.745277 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0263144 0.757489 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0533169 0.751424 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0496549 0.750049 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0580833 0.730397 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0384047 0.739212 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.043171 0.718185 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0198304 0.725625 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00272662 0.788473 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0544915 0.717566 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0588496 0.718734 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0368947 0.725632 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0389272 0.700615 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0213304 0.708681 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.027721 0.684831 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0608821 0.693716 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0496759 0.677932 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0652402 0.694884 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0280589 0.725055 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0172649 0.70473 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00656677 0.726768 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0380155 0.741558 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0165234 0.743272 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0371781 0.737738 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0487136 0.71952 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0478762 0.715699 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0379196 0.699195 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0275193 0.640422 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0283337 0.66342 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0287044 0.644149 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00723527 0.626685 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00842045 0.630413 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0122343 0.635947 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00686453 0.645956 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.012605 0.655218 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00767898 0.668955 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.106805 0.675276 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0875713 0.673094 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.091423 0.694308 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103087 0.676491 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0877049 0.695522 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0801352 0.675524 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0992356 0.655278 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0762835 0.65431 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0800016 0.653095 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.051506 0.606426 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0577732 0.666927 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.034894 0.669407 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0513875 0.68752 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0767937 0.663807 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.070408 0.6844 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.072935 0.663167 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0603001 0.645694 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0564414 0.645053 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0374209 0.648173 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0417568 0.762259 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0216407 0.748937 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0345526 0.759495 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0641429 0.753646 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0569387 0.750882 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0664129 0.731712 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.051231 0.743089 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053501 0.721155 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0311149 0.729767 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0454452 0.736829 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.046242 0.724354 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0297485 0.742467 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0264247 0.733709 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.010728 0.739347 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00820099 0.718114 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0429182 0.715595 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0246945 0.7 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.043715 0.70312 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00272662 0.788473 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0148294 0.770845 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0179281 0.782939 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058253 0.76531 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02648 0.759776 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.101422 0.730141 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0832945 0.725284 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0782041 0.736701 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.102723 0.717709 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0795043 0.724268 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0858949 0.700418 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107813 0.706291 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0909853 0.689001 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0896851 0.701434 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0269197 0.752567 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0144587 0.751574 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.014088 0.732303 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0472037 0.73883 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0343719 0.718566 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0550267 0.7241 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0475745 0.758102 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0553974 0.743371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0351134 0.757108 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0751594 0.655153 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0638711 0.649783 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0745692 0.671821 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0652028 0.671657 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0646126 0.688325 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0439578 0.682791 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0545047 0.649619 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0332597 0.660752 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0432164 0.644249 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0708196 0.669983 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0467378 0.671462 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0618185 0.690113 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0872804 0.667296 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0782793 0.687426 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0796593 0.666087 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0721997 0.648644 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0645786 0.647436 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0481178 0.650123 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.051506 0.606426 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.053173 0.627745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0308513 0.600892 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0325183 0.62221 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0118635 0.616676 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0244627 0.646718 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0313903 0.657124 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.016478 0.669336 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00112207 0.639278 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00686255 0.661896 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0152909 0.642244 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0160343 0.627066 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.000378614 0.630031 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.022962 0.637471 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.34259 0.872345 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338969 0.848329 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32016 0.86421 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.333079 0.882715 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310649 0.87458 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.319948 0.869068 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351888 0.866833 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338757 0.853186 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.348268 0.842817 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.346884 0.808673 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322361 0.807762 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335792 0.82298 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.361611 0.799483 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350519 0.81379 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351815 0.789382 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.34818 0.784265 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338384 0.774164 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.323657 0.783355 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.291048 0.849036 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304882 0.840755 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287867 0.826067 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267046 0.853652 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263865 0.830683 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.256877 0.849987 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28406 0.868341 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273891 0.864676 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297894 0.86006 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282313 0.885497 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29787 0.867718 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281455 0.876946 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258284 0.880514 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257427 0.871963 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249813 0.857752 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.274699 0.871286 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266228 0.848523 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290257 0.853506 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.21889 0.873186 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236437 0.866351 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240865 0.865588 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207715 0.856242 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22969 0.848644 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214088 0.832464 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203288 0.857005 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20966 0.833227 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.220835 0.850171 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.21762 0.818054 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.241754 0.813612 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230661 0.83061 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20172 0.811087 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214761 0.823642 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209955 0.799677 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212813 0.794089 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221048 0.78268 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236948 0.789647 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.350165 0.828769 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347547 0.820583 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.333232 0.838905 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332668 0.824121 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315735 0.834258 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312554 0.811288 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.346984 0.805799 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32687 0.792966 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.344366 0.797614 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.29233 0.756464 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305929 0.765125 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288514 0.779336 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268464 0.751185 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.264649 0.774058 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258198 0.754567 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285879 0.736973 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275612 0.740355 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299478 0.745634 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.362219 0.753851 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352319 0.76987 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350765 0.774086 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.347581 0.739791 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336127 0.760026 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.323042 0.74175 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.349134 0.735575 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324595 0.737534 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339233 0.751594 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.219248 0.690652 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223862 0.677807 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206403 0.695267 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198172 0.687036 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.185327 0.691651 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181711 0.670575 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215632 0.669577 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.199171 0.653116 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.220246 0.656732 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.261725 0.675225 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238562 0.683777 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261725 0.675225 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238562 0.683777 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244096 0.663122 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267259 0.65457 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249631 0.642468 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.249631 0.642468 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.203821 0.733129 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212373 0.709966 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183166 0.738664 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171063 0.721035 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171063 0.721035 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203821 0.733129 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191718 0.715501 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212373 0.709966 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.12881 0.668451 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.151296 0.662426 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.137627 0.678869 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108751 0.661044 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.117567 0.671463 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111177 0.647613 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.12242 0.644601 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.124846 0.631169 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144906 0.638576 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.115992 0.720665 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135288 0.711449 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.135288 0.711449 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100872 0.705544 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.105047 0.681209 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100872 0.705544 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.105047 0.681209 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120168 0.696329 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0796777 0.626446 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0954616 0.645433 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0796777 0.626446 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0954616 0.645433 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100996 0.624779 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0852121 0.605791 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10653 0.604124 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10653 0.604124 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.197046 0.600215 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207465 0.609032 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191021 0.622701 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173196 0.593824 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167171 0.61631 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159765 0.596251 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.18964 0.580155 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.176209 0.582581 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200059 0.588972 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.155041 0.551082 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174029 0.566866 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.134387 0.556617 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13272 0.577935 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13272 0.577935 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.155041 0.551082 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153374 0.5724 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174029 0.566866 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.24926 0.587397 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240045 0.606693 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240045 0.606693 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23414 0.572277 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209804 0.576452 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23414 0.572277 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.209804 0.576452 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224924 0.591572 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.448155 0.626191 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.43276 0.614455 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42519 0.634643 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44434 0.625328 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.421375 0.63378 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42513 0.612729 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.45191 0.60514 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4327 0.592541 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436515 0.593404 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399844 0.625435 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38905 0.60511 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378352 0.627149 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409801 0.641939 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388308 0.643653 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408963 0.638118 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420499 0.619901 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419661 0.61608 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409705 0.599576 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369058 0.688854 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356956 0.671225 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389713 0.68332 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37761 0.665691 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.398265 0.660156 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.405974 0.594185 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410332 0.593017 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.394768 0.609969 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384019 0.587286 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372813 0.60307 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366422 0.57922 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399584 0.570335 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.381987 0.562269 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403942 0.569167 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.341809 0.659244 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.360383 0.645657 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345471 0.65787 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318468 0.651804 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32213 0.65043 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.313702 0.630777 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33338 0.639592 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328614 0.618565 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351955 0.626005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.314012 0.567308 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336891 0.569787 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320398 0.587901 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294991 0.564188 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301377 0.584781 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29885 0.563547 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.311485 0.546074 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315344 0.545434 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334364 0.548554 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.433888 0.53788 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426423 0.55574 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423551 0.558395 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.417238 0.524182 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.406901 0.544697 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393124 0.528344 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.42011 0.521526 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.395996 0.525689 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.412646 0.539387 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.320279 0.506807 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318612 0.528125 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340934 0.501272 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.339267 0.522591 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359921 0.517056 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.399304 0.540802 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400119 0.563801 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400489 0.54453 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37902 0.527065 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.380205 0.530793 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.359551 0.536327 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37865 0.546337 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.35918 0.555599 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379464 0.569335 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.354293 0.299716 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.347717 0.279022 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366989 0.292196 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375177 0.300337 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.387873 0.292817 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389485 0.280263 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355904 0.287162 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.370213 0.267088 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349329 0.266468 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.304702 0.250544 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32307 0.238717 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327715 0.259421 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.30352 0.250492 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.326533 0.259369 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320707 0.238612 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298875 0.229788 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316063 0.217908 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317244 0.21796 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.362978 0.289441 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.35549 0.267771 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378255 0.270044 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379952 0.302733 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.395229 0.283335 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389438 0.294353 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357187 0.30046 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366673 0.29208 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349699 0.278789 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.443285 0.282991 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.421181 0.271991 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4302 0.282046 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462437 0.27248 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.449353 0.271534 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459485 0.250967 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453417 0.262424 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.450466 0.240911 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431313 0.251423 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.449273 0.285685 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436139 0.282528 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.426189 0.27701 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45733 0.266055 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434246 0.257381 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452254 0.243269 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46728 0.271573 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462204 0.248787 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.454146 0.268416 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.486123 0.204606 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464339 0.202946 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470107 0.223366 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.487137 0.203998 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471122 0.222757 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466367 0.201729 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.481368 0.183578 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.460599 0.18131 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459584 0.181918 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.378635 0.228779 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.365937 0.225483 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383364 0.24293 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.402455 0.222377 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407185 0.236529 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.413578 0.21268 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385029 0.20493 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396152 0.195233 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.372331 0.201634 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.412573 0.147477 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39322 0.15977 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.412448 0.172167 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434131 0.147647 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434006 0.172338 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436336 0.16011 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414903 0.13525 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.417108 0.147713 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39555 0.147543 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.319723 0.177083 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.325124 0.189464 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.332294 0.198298 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337645 0.165722 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.350216 0.186938 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360967 0.166743 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330475 0.156889 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353797 0.157909 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335876 0.16927 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.115471 0.221102 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.126388 0.200597 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13987 0.220766 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119172 0.228435 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143571 0.228099 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13379 0.215264 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10569 0.208266 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120308 0.195095 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116607 0.187762 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.15554 0.180792 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.17557 0.171251 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166926 0.19323 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134265 0.182215 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.145651 0.194652 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.133019 0.174096 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.142909 0.160236 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141663 0.152117 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.162939 0.150694 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.18209 0.243049 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168159 0.227721 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.185251 0.218634 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.206066 0.245747 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209227 0.221332 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216111 0.233117 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188974 0.254834 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.199019 0.242204 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.175043 0.239506 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.151829 0.219088 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14514 0.205084 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163068 0.221861 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173729 0.215537 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.184969 0.218309 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188942 0.197981 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155801 0.19876 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171014 0.181204 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149113 0.184756 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.22829 0.248268 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207937 0.234532 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216949 0.2391 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.249439 0.237756 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238098 0.228589 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.250236 0.213509 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240428 0.233189 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241225 0.208942 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220075 0.219453 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.229756 0.167942 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207683 0.16569 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223214 0.183484 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.250271 0.162129 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.243729 0.177671 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248714 0.154064 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.234741 0.144336 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233184 0.13627 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212668 0.142084 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.105335 0.14887 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115741 0.153943 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121723 0.167242 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.118795 0.138714 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135183 0.157086 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.142661 0.13363 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.112813 0.125414 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.136679 0.120331 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.123219 0.130487 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.179968 0.0897843 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166467 0.105492 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.183804 0.114103 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.20386 0.0864233 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207696 0.110742 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.214251 0.0987702 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.186523 0.0778128 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196914 0.0901597 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173022 0.0935207 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.130858 0.0995811 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135326 0.123725 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134736 0.113639 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.148938 0.0843858 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.152816 0.0984435 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171487 0.0933338 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149528 0.0944715 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172078 0.10342 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153997 0.118615 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.269898 0.374298 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.270045 0.350338 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.291334 0.362218 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277815 0.391115 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299251 0.379036 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.285878 0.383973 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.256525 0.379235 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.264588 0.372093 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.256671 0.355276 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.235688 0.305995 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259438 0.312359 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245915 0.321516 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228556 0.291303 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238783 0.306824 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245173 0.282974 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.242079 0.282145 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.258696 0.273816 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265828 0.288509 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.32435 0.32435 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33812 0.32066 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32066 0.33812 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3005 0.317959 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29681 0.331729 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29042 0.307879 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317959 0.3005 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307879 0.29042 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331729 0.29681 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.334762 0.407156 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31686 0.392275 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.326552 0.388696 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357827 0.39864 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349618 0.380181 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362991 0.375243 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348135 0.402218 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353299 0.378821 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330233 0.387337 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.393346 0.348239 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383366 0.345565 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369843 0.354723 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386213 0.333547 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362711 0.340031 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369102 0.316181 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399736 0.324389 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382624 0.307023 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389757 0.321715 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.386461 0.346394 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362711 0.340031 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369843 0.354723 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399983 0.337237 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383366 0.345565 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389757 0.321715 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392851 0.322544 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382624 0.307023 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369102 0.316181 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.261966 0.385852 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259422 0.36581 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.278159 0.38141 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.280504 0.387198 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296698 0.382755 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.2965 0.368501 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.261768 0.371598 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277764 0.352901 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259225 0.351556 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.304189 0.32435 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29042 0.32066 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307879 0.33812 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328039 0.317959 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331729 0.331729 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33812 0.307879 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.31058 0.3005 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32066 0.29042 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29681 0.29681 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.228803 0.30415 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238783 0.306824 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245915 0.321516 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.242326 0.294992 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259438 0.312359 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265828 0.288509 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.235194 0.2803 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.258696 0.273816 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245173 0.282974 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.612732 0.225282 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591695 0.212428 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60221 0.22113 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633805 0.215388 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623283 0.211236 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.63384 0.192641 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62329 0.206686 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623325 0.183939 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602253 0.193832 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.527458 0.200547 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522843 0.187702 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.540303 0.205161 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548533 0.196931 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561378 0.201546 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.564994 0.18047 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531074 0.179472 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.547535 0.163011 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.526459 0.166627 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.542885 0.243024 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534333 0.219861 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563539 0.248559 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575642 0.23093 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575642 0.23093 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542885 0.243024 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534333 0.219861 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.660425 0.189742 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645434 0.185725 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636618 0.196144 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657999 0.17631 0.57904 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634191 0.182712 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640582 0.158862 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666816 0.165892 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649399 0.148444 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651825 0.161875 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.574809 0.203972 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561378 0.201546 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.568784 0.181486 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598659 0.197581 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.592634 0.175095 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609078 0.188764 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591253 0.217641 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601672 0.208824 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577822 0.215215 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.620861 0.107144 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608016 0.102529 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625475 0.119989 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617245 0.128219 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621859 0.141064 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600784 0.14468 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599785 0.11076 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583324 0.127221 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58694 0.106145 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.643128 0.132649 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618482 0.133263 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631785 0.152367 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656585 0.130371 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645242 0.150088 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645397 0.128706 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643283 0.111266 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632094 0.109601 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618637 0.11188 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.591664 0.0609772 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572676 0.076761 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612319 0.0665116 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613986 0.0878298 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613986 0.0878298 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591664 0.0609772 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572676 0.076761 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549659 0.11011 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53924 0.118927 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555684 0.132596 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.573509 0.103719 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579534 0.126205 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58694 0.106145 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557065 0.09005 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570497 0.0924762 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.546646 0.0988668 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.484182 0.326876 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470513 0.310432 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.488171 0.302705 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507957 0.330051 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511946 0.305881 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.518062 0.316783 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490299 0.337778 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500404 0.324509 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476629 0.321334 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.436971 0.320401 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436675 0.29902 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.455413 0.3148 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453274 0.32392 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471717 0.318318 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469281 0.306057 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434535 0.30814 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.450543 0.290278 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434239 0.286759 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.426389 0.279233 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.445377 0.263449 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448298 0.286276 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415641 0.285616 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.43755 0.29266 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42388 0.276216 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41272 0.262789 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420959 0.253389 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431707 0.247006 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549787 0.275127 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549787 0.275127 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529727 0.282533 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536117 0.258683 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.516058 0.266089 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522448 0.242239 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556177 0.251277 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542508 0.234833 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556177 0.251277 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.457868 0.209819 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.458164 0.2312 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453963 0.210053 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476163 0.193527 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.472258 0.193761 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.494753 0.198616 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.480363 0.214674 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.498954 0.219763 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.480659 0.236055 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549603 0.17251 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528912 0.177908 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549105 0.191778 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557329 0.187292 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556831 0.20656 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544363 0.207471 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.537136 0.173421 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.524171 0.193601 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.516445 0.178819 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.562288 0.314604 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542501 0.306499 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541186 0.310183 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574255 0.299494 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.553152 0.295073 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566433 0.276279 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575569 0.29581 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567748 0.272595 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555781 0.287705 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.567359 0.227186 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54267 0.227528 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555283 0.246777 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579676 0.225054 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567601 0.244644 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567305 0.223263 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567063 0.205805 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554691 0.204014 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542374 0.206147 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.507811 0.298839 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.489718 0.287442 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505577 0.302049 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531251 0.291716 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529016 0.294927 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536597 0.273198 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515392 0.27711 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.520738 0.258591 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497299 0.265714 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.646362 0.0316054 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625173 0.0287309 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627981 0.0478 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647066 0.0277577 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628685 0.0439523 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62658 0.0210355 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644258 0.00868865 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623773 0.00196644 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623069 0.00581415 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.584898 0.0177119 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56353 0.0185345 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.580268 0.0364224 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.605935 0.0129918 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601305 0.0317022 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.605605 0.00909422 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.589197 -0.00489609 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.588867 -0.00879364 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567829 -0.00407348 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.593994 0.105299 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572783 0.0926585 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582384 0.100664 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.614541 0.0949359 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602932 0.090301 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613879 0.0719323 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604941 0.0869303 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604278 0.0639267 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58373 0.0742898 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607302 0.0604766 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607302 0.0604766 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587242 0.0678827 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593633 0.0440327 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.573573 0.0514389 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579964 0.0275889 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613693 0.0366265 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600023 0.0201827 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613693 0.0366265 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551884 0.118381 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536664 0.103361 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550745 0.0944221 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576307 0.116465 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575168 0.0925065 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58551 0.0995293 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562225 0.125404 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571428 0.108468 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.547006 0.110383 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.523344 0.0542684 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534291 0.0358996 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541988 0.0591566 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509132 0.0704822 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.527777 0.0753703 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505868 0.0683272 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.501435 0.0472252 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49817 0.0450702 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.512382 0.0288565 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.5935 -0.0473753 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57344 -0.0399691 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.595617 -0.0308315 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604929 -0.0318545 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607046 -0.0153107 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.596298 -0.00892756 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582752 -0.0409921 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574121 -0.0180651 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562692 -0.0335859 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.48882 -0.0212225 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497372 0.00194055 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491256 -0.00896145 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502764 -0.0395307 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505199 -0.0272696 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.525259 -0.0346758 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.50888 -0.0286287 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531375 -0.0237738 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517432 -0.00546563 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.530389 -0.0495897 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.519442 -0.031221 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53532 -0.0261165 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554507 -0.0538859 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.559438 -0.0304127 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.567678 -0.0398133 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538628 -0.0589904 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.551799 -0.0449178 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.527681 -0.0406217 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.435909 0.01504 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423265 0.0115452 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440694 0.0289993 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459725 0.00864346 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46451 0.0226028 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470897 -0.0012478 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.442297 -0.00881065 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.453468 -0.0187019 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.429652 -0.0123054 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.364644 0.0293677 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375512 0.0213457 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385352 0.0401449 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37527 0.0253024 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.395978 0.0360796 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396764 0.0132151 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.36543 0.0065032 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386924 -0.00558411 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376298 -0.00151881 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.426942 0.0903221 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.416328 0.0699989 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435083 0.0806307 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.449792 0.0891998 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.457933 0.0795084 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462029 0.0677542 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431037 0.078568 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.443274 0.0571224 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420423 0.0582447 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.523883 -0.000557006 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49924 -0.00208214 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.51057 0.0165974 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536722 -0.00475566 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523409 0.0123987 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.524918 -0.0104794 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.525392 -0.0234352 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.513588 -0.029159 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500749 -0.0249603 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.508666 0.0817008 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.488971 0.0722467 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.489545 0.0732807 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523872 0.0669012 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504751 0.058481 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.519382 0.0426474 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523298 0.0658672 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.518808 0.0416134 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.503602 0.0564131 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.540463 -0.00154892 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.52751 -0.00538221 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.524673 0.0156462 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529087 -0.00174531 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.513298 0.0154498 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504759 -0.00577498 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531924 -0.0227737 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507596 -0.0268034 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.518971 -0.026607 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.451803 -0.0707378 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435761 -0.0561039 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.454158 -0.0461991 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.475081 -0.0725109 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477435 -0.0479721 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.482316 -0.05965 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.456685 -0.0824157 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46392 -0.0695548 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440643 -0.0677817 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.459563 -0.081612 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.442243 -0.0665888 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.463589 -0.0696122 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.480415 -0.0721979 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.48444 -0.0601982 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.483946 -0.0477607 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459069 -0.0691745 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4626 -0.0447373 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.441749 -0.0541513 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.373728 -0.0495643 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383722 -0.030137 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382672 -0.0306825 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388102 -0.0651725 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.397047 -0.0462908 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41247 -0.0613535 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389151 -0.064627 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41352 -0.060808 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399146 -0.0451997 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.412497 -0.190929 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400273 -0.174844 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.417001 -0.16674 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436523 -0.195071 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.441027 -0.170881 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448325 -0.183127 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419795 -0.203175 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431597 -0.191231 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407571 -0.18709 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.343834 -0.12515 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353814 -0.122476 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360946 -0.107784 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357357 -0.134308 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374468 -0.116942 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380859 -0.140792 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.350225 -0.149 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.373727 -0.155484 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360204 -0.146326 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.41922 -0.10495 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40545 -0.10864 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42291 -0.0911807 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44307 -0.111341 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44676 -0.0975713 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45315 -0.121421 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425611 -0.128801 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435691 -0.138881 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.411841 -0.13249 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.502603 -0.174264 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.479659 -0.170327 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.495376 -0.15142 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509207 -0.166319 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.501981 -0.143475 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.492868 -0.154437 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49349 -0.185226 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477151 -0.173345 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470546 -0.18129 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.501491 -0.082906 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477742 -0.0892696 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484874 -0.0745774 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515014 -0.0920638 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.498397 -0.0837352 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504787 -0.107585 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507882 -0.106756 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497655 -0.122277 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484132 -0.11312 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.508376 -0.0810612 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.498397 -0.0837352 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484874 -0.0745774 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.501244 -0.0957534 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477742 -0.0892696 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484132 -0.11312 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.514767 -0.104911 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.497655 -0.122277 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504787 -0.107585 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.411775 -0.200165 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399922 -0.179342 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415187 -0.189948 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436152 -0.199808 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.439564 -0.189591 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448677 -0.178629 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420888 -0.189202 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.433412 -0.168023 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409035 -0.168379 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.439381 -0.10495 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45315 -0.10864 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.435691 -0.0911807 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415531 -0.111341 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.411841 -0.0975713 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40545 -0.121421 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.43299 -0.128801 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42291 -0.138881 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44676 -0.13249 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.350719 -0.123305 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374468 -0.116942 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360946 -0.107784 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343587 -0.137998 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353814 -0.122476 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360204 -0.146326 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357109 -0.147155 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.373727 -0.155484 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380859 -0.140792 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.160406 -0.0522053 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171954 -0.0513956 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178533 -0.0358698 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172236 -0.0607319 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.190363 -0.0443964 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195615 -0.0684488 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165658 -0.0762577 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189036 -0.0839747 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177206 -0.075448 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.176731 -0.00705049 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192673 -0.025725 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200733 -0.00352517 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171177 0.00138875 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195179 0.00491406 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.181564 -0.00884647 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163117 -0.020811 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173504 -0.0310463 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179058 -0.0394855 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.20044 0.0258737 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196602 0.00551963 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215612 0.0203763 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.21976 0.0270852 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.234932 0.0215878 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.235241 0.00794264 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200749 0.0122285 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.21623 -0.00691403 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196911 -0.00812553 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.234308 -0.0942304 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.221514 -0.0854464 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238704 -0.0714204 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.258223 -0.0997955 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.262619 -0.0769856 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.269343 -0.0965768 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241032 -0.113822 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.252152 -0.110603 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228237 -0.105038 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.275459 -0.0076281 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.255218 -0.0167139 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.270078 -0.00142185 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.297806 -0.0152725 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.292425 -0.00906621 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299911 -0.0320026 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282946 -0.0305645 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.285051 -0.0472946 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.262704 -0.0396503 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.324811 -0.0817333 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.300317 -0.0800146 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.313378 -0.0603366 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.334899 -0.0811832 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.323466 -0.0597864 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320493 -0.0789143 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.321838 -0.100861 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307433 -0.0985923 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.297345 -0.0991425 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.195663 -0.127519 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194866 -0.104303 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.201738 -0.108803 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.217423 -0.138245 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223497 -0.119529 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238386 -0.125754 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210551 -0.133744 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.231514 -0.121254 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209754 -0.110528 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.291073 -0.126206 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.271345 -0.119897 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293457 -0.110246 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.301332 -0.10979 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.303716 -0.0938302 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.291862 -0.0870656 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.279219 -0.119442 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.269749 -0.0967168 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.25949 -0.113132 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.20388 -0.0673141 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216456 -0.0490355 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.198742 -0.0609052 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207384 -0.0906706 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.202246 -0.0842617 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223463 -0.0957484 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225098 -0.0788008 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241177 -0.0838786 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.237674 -0.0605222 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.508983 0.690426 8.51251e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.47411 0.767658 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.467528 0.744501 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.489758 0.749038 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491377 0.779098 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507025 0.760478 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502061 0.767382 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469146 0.774562 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.47983 0.762845 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462564 0.751405 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.418941 0.714226 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.43889 0.704751 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44101 0.724842 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.416335 0.712374 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.438403 0.722991 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.433677 0.701048 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414215 0.692283 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431557 0.680957 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434163 0.682808 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.481931 0.703418 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500827 0.694124 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491475 0.716184 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.459538 0.704962 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469082 0.717727 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.456041 0.697211 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46889 0.682902 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.465393 0.675152 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.487786 0.673608 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.560084 0.767402 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543179 0.760285 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53997 0.755145 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574398 0.750585 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554284 0.738328 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571808 0.726651 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577608 0.755725 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575017 0.731791 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.560703 0.748608 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.573364 0.687731 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571303 0.682033 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56324 0.703871 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.553195 0.688893 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543071 0.705033 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530964 0.684356 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561258 0.667055 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539027 0.662518 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.559196 0.661356 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.601808 0.682851 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579842 0.680568 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58454 0.700216 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603648 0.680237 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58638 0.697602 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583522 0.675339 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59895 0.660588 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.578824 0.65569 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576984 0.658304 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.506594 0.773394 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.491321 0.755462 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507924 0.764807 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530616 0.768632 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531946 0.760045 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539365 0.745938 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.514012 0.759287 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522762 0.736593 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.49874 0.741355 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.538818 0.693658 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517905 0.691194 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534075 0.708875 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.560445 0.687649 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555702 0.702866 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561158 0.679176 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544274 0.669969 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544988 0.661495 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523361 0.667505 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.447385 0.709346 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.447429 0.703286 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.46231 0.721188 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466788 0.703718 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.481713 0.71556 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.486235 0.692031 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.451907 0.685816 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471354 0.674129 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.451951 0.679757 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.269894 0.672915 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.275822 0.649528 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293281 0.666987 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277236 0.683032 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.300624 0.677104 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.290507 0.669762 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.259777 0.665573 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273047 0.652302 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265705 0.642185 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.279361 0.614273 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.303327 0.613293 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.288206 0.628413 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.262487 0.604959 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.271332 0.619099 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.269578 0.594664 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.277607 0.589839 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.284698 0.579544 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.301572 0.588858 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.328536 0.663448 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314396 0.654603 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.329516 0.639482 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.35297 0.665202 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353951 0.641237 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.363265 0.658111 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33785 0.680322 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348145 0.673232 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32371 0.671477 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.321274 0.684748 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.308341 0.666888 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.326131 0.678752 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.344967 0.681014 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.349824 0.675018 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355727 0.659419 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327177 0.669149 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337937 0.647554 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314244 0.651289 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.391875 0.684201 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.389739 0.622198 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366159 0.617804 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378964 0.63493 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407771 0.61539 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396997 0.628121 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.402224 0.604188 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.394966 0.598265 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.389418 0.587062 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.371386 0.593871 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.258061 0.621535 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.264057 0.616678 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.275921 0.634468 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.27366 0.615632 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29152 0.628565 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.295255 0.604872 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.261795 0.597842 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.28339 0.587082 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267791 0.592985 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.320611 0.55307 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.30788 0.563845 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.325005 0.57665 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.344544 0.547843 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348938 0.571423 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355747 0.553391 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327419 0.535038 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338621 0.540585 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314688 0.545813 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.258608 0.550934 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.316595 0.626214 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318408 0.606941 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.335868 0.624401 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.311592 0.648676 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330864 0.646863 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.308402 0.651867 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.294133 0.631217 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.290942 0.634407 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.295946 0.611945 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.319608 0.539107 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307378 0.556863 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.322499 0.541743 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.344043 0.540862 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.346933 0.543497 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356248 0.560372 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328923 0.555982 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.341128 0.575492 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316693 0.573738 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.403702 0.623201 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401066 0.62031 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385946 0.635431 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386827 0.613886 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.369071 0.626116 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367317 0.601681 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401947 0.598766 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382437 0.586561 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399312 0.595876 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.305407 0.69384 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296616 0.671002 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317721 0.674446 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.325704 0.701111 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338018 0.681717 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337211 0.685545 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3046 0.697667 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316107 0.682101 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.295809 0.67483 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.391875 0.684201 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37258 0.674986 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406996 0.669081 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40282 0.644745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.3877 0.659866 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.329538 0.677411 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314897 0.661584 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.332022 0.674389 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.353472 0.672184 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.355956 0.669162 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362764 0.65113 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.336346 0.659378 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.345639 0.638325 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.321705 0.643552 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.248969 0.637402 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.268363 0.625088 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.271807 0.646193 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.245142 0.638209 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267979 0.647 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.260708 0.626702 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.241698 0.617105 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.257264 0.605598 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.261092 0.604791 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.265398 0.613271 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.26842 0.610787 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.281225 0.627912 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.283431 0.606463 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299257 0.621104 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.304484 0.59717 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.270625 0.589337 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.291679 0.580045 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273647 0.586853 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.258608 0.550934 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.267823 0.570229 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.273728 0.535813 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.298064 0.539989 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.282943 0.555109 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.678928 0.639472 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661636 0.629767 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.664108 0.621631 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698678 0.626079 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683858 0.608237 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701135 0.602979 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696205 0.634214 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698662 0.611115 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678912 0.624508 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.640648 0.631982 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625749 0.614812 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64267 0.62585 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.664623 0.627081 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666645 0.620949 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673698 0.605012 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647702 0.616044 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656777 0.593974 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632802 0.598874 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.595495 0.63057 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594239 0.605919 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615286 0.617371 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608828 0.641795 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628619 0.628595 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.620906 0.628369 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587782 0.630343 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59986 0.616917 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586526 0.605692 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.689897 0.57563 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693998 0.575587 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673115 0.585222 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.672626 0.560848 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655844 0.57044 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659456 0.546023 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693509 0.551213 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680339 0.536388 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69761 0.55117 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.602201 0.570049 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623084 0.560414 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615021 0.582252 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582032 0.571211 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594852 0.583414 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582745 0.562738 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.590095 0.549372 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.590808 0.540899 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610978 0.539737 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.627785 0.478525 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615951 0.497935 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630799 0.484234 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.652241 0.479365 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655255 0.485075 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.664864 0.499616 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637394 0.493066 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.650016 0.513317 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62556 0.512476 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.73992 0.563328 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.720935 0.559693 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719679 0.577348 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737863 0.557208 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717623 0.571228 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.716821 0.547453 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739118 0.539553 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718076 0.529798 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.720133 0.535918 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.688647 0.474542 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666351 0.485132 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.686417 0.498226 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.704854 0.480953 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.702624 0.504637 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698765 0.497955 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.684788 0.46786 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678699 0.484862 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.662492 0.47845 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.690713 0.554862 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.667813 0.552739 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682694 0.570641 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.710116 0.549235 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.702097 0.565014 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.706619 0.541484 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.695235 0.531333 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691738 0.523582 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.672335 0.52921 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.499795 0.519956 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.493653 0.523893 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.479397 0.509638 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507788 0.497708 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.48739 0.48739 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509638 0.479397 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522043 0.511963 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523893 0.493653 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515901 0.515901 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.559233 0.507719 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539759 0.502501 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536564 0.514426 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562428 0.495794 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539759 0.502501 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54615 0.478651 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.565623 0.483869 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549345 0.466726 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54615 0.478651 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.483869 0.565623 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.466726 0.549345 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.478651 0.54615 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.507719 0.559233 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502501 0.539759 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.514426 0.536564 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.495794 0.562428 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.502501 0.539759 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.478651 0.54615 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.430434 0.489762 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.449569 0.477255 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.445366 0.500519 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.41096 0.49498 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425893 0.505737 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410622 0.487691 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.415162 0.471716 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.414824 0.464428 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434297 0.45921 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.404771 0.538038 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410297 0.515053 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427756 0.532513 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4135 0.546768 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436486 0.541242 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427756 0.532513 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396041 0.529309 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410297 0.515053 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401567 0.506323 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.377186 0.45894 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396659 0.464158 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.393464 0.476083 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380381 0.447015 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396659 0.464158 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40305 0.440308 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383576 0.43509 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406245 0.428383 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40305 0.440308 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.48121 0.407271 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464428 0.414824 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.487691 0.410622 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499256 0.422542 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.505737 0.425893 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.500519 0.445366 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.475992 0.426744 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.477255 0.449569 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45921 0.434297 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.43509 0.383576 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428383 0.406245 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440308 0.40305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45894 0.377186 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464158 0.396659 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.476083 0.393464 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.447015 0.380381 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.464158 0.396659 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.440308 0.40305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.538038 0.404771 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515053 0.410297 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.532513 0.427756 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.546768 0.4135 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541242 0.436486 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.532513 0.427756 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529309 0.396041 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.515053 0.410297 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.506323 0.401567 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.672915 0.269894 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649528 0.275822 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666987 0.293281 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683032 0.277236 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.677104 0.300624 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669762 0.290507 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665573 0.259777 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.652302 0.273047 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642185 0.265705 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.592776 0.280905 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.580045 0.291679 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59717 0.304484 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.61671 0.275678 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621104 0.299257 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627912 0.281225 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599585 0.262872 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610787 0.26842 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586853 0.273647 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.661904 0.350033 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638325 0.345639 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65113 0.362764 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679937 0.343224 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669162 0.355956 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674389 0.332022 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.667131 0.326099 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661584 0.314897 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643552 0.321705 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.685865 0.340177 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679339 0.33606 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669651 0.355123 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669679 0.336151 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.653465 0.351097 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.646968 0.328008 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679367 0.317089 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656656 0.308945 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.672841 0.312971 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.664041 0.412036 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.600701 0.391282 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586561 0.382437 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601681 0.367317 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625136 0.393037 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626116 0.369071 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.635431 0.385946 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610016 0.408157 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62031 0.401066 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.595876 0.399312 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.602632 0.256944 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587686 0.273158 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606749 0.26347 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62572 0.263442 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.629838 0.269968 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633864 0.286153 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606658 0.27313 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.614801 0.295841 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591712 0.289344 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551527 0.342108 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575492 0.341128 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.560372 0.356248 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534652 0.332793 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543497 0.346933 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.541743 0.322499 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549772 0.317673 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556863 0.307378 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.573738 0.316693 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.530773 0.278768 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.663938 0.633406 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64522 0.617928 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65892 0.626429 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687239 0.625707 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682221 0.61873 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691822 0.602531 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673539 0.617206 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678123 0.59403 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.654822 0.601728 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.580238 0.601562 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.581665 0.587563 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.59781 0.605914 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.597491 0.599646 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.615063 0.603999 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616171 0.583732 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.581346 0.581295 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600026 0.565381 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582773 0.567297 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.608008 0.63767 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601637 0.613891 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.623239 0.620102 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626157 0.646756 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.641389 0.629188 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637936 0.632063 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604555 0.640545 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616334 0.625852 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598184 0.616766 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.729812 0.597914 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711617 0.592661 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70632 0.602084 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732864 0.584178 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.709372 0.588348 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.71772 0.565189 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.738161 0.574755 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.723017 0.555767 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719965 0.569503 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.658095 0.605761 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647455 0.607672 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643855 0.58746 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.676573 0.589763 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.662334 0.571461 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.684413 0.575674 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680174 0.609975 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.688013 0.595887 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669535 0.611885 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.712906 0.511567 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.699372 0.507717 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.710453 0.529503 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.704747 0.526889 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.702295 0.544826 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683054 0.538362 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693665 0.505104 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671972 0.516576 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680131 0.501254 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.70016 0.547376 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.676324 0.546319 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690564 0.564621 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717636 0.542652 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70804 0.559898 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711276 0.536873 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.703396 0.524351 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.697037 0.518571 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679561 0.523294 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.67091 0.466887 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.650637 0.480853 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671107 0.490138 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690617 0.471745 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690815 0.494995 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.690052 0.490567 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.670147 0.46246 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669581 0.481283 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649874 0.476425 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.60809 0.516313 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60089 0.524375 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616221 0.538029 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631397 0.508952 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639529 0.530668 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647504 0.509653 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616065 0.495298 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632172 0.495999 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608865 0.50336 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.626214 0.316595 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606941 0.318408 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624401 0.335868 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648676 0.311592 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.646863 0.330864 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651867 0.308402 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631217 0.294133 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634407 0.290942 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.611945 0.295946 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.537564 0.341105 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.540585 0.338621 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.553391 0.355747 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555596 0.334297 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.571423 0.348938 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57665 0.325005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542791 0.317172 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563845 0.30788 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545813 0.314688 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.601704 0.405245 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587062 0.389418 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604188 0.402224 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625637 0.400018 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628121 0.396997 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.63493 0.378964 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.608512 0.387213 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617804 0.366159 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593871 0.371386 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.697473 0.31938 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674538 0.318074 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681812 0.338182 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701209 0.31822 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.685547 0.337022 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682009 0.315754 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.693935 0.298112 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674736 0.295646 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671 0.296805 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.664041 0.412036 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644745 0.40282 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.679161 0.396915 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674986 0.37258 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659866 0.3877 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.675867 0.351035 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673232 0.348145 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.658111 0.363265 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.658993 0.341721 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.641237 0.353951 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639482 0.329516 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.674113 0.3266 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.654603 0.314396 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671477 0.32371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.623429 0.245336 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604627 0.260997 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624736 0.268271 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644697 0.248874 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.646004 0.271809 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.647163 0.268073 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624589 0.2416 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627055 0.2608 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.605787 0.257262 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.591774 0.266942 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.579544 0.284698 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594664 0.269578 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616209 0.268696 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619099 0.271332 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.628413 0.288206 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.601088 0.283817 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613293 0.303327 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.588858 0.301572 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.530773 0.278768 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539989 0.298064 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545894 0.263648 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570229 0.267823 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555109 0.282943 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.424703 0.518106 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420089 0.505261 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.437548 0.522721 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.445778 0.51449 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.458623 0.519105 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.462239 0.498029 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428319 0.497031 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44478 0.48057 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423704 0.484186 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.382226 0.502679 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405389 0.511231 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382226 0.502679 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405389 0.511231 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399854 0.490576 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376691 0.482024 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39432 0.469922 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39432 0.469922 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.44013 0.560583 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431578 0.53742 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.460785 0.566118 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.472887 0.548489 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.472887 0.548489 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.44013 0.560583 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452233 0.542955 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.431578 0.53742 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.51514 0.495905 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.492654 0.48988 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.506323 0.506323 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5352 0.488498 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.526383 0.498917 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.532774 0.475067 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.521531 0.472055 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.519105 0.458623 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499045 0.46603 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.527958 0.548119 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.508662 0.538903 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.508662 0.538903 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543078 0.532998 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538903 0.508662 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.543078 0.532998 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538903 0.508662 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.523783 0.523783 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.564273 0.4539 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548489 0.472887 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.564273 0.4539 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548489 0.472887 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542955 0.452233 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558738 0.433245 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53742 0.431578 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.53742 0.431578 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.446904 0.427669 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436486 0.436486 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.45293 0.450155 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.470754 0.421278 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.47678 0.443764 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.484186 0.423704 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.454311 0.407609 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.467742 0.410035 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.443892 0.416426 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.488909 0.378536 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469922 0.39432 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.509564 0.384071 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511231 0.405389 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.511231 0.405389 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.488909 0.378536 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.490576 0.399854 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.469922 0.39432 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.39469 0.414851 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403906 0.434147 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403906 0.434147 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409811 0.399731 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434147 0.403906 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409811 0.399731 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434147 0.403906 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419026 0.419026 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.871334 -0.102403 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.850164 -0.113406 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862937 -0.100577 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.892817 -0.111133 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.884419 -0.109307 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.893129 -0.130866 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880044 -0.123961 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880356 -0.143694 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.858873 -0.134964 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.781177 -0.120908 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.778973 -0.13149 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.795477 -0.113462 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.801282 -0.125067 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.815582 -0.11762 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819182 -0.139808 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.784778 -0.143095 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802678 -0.157836 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.782573 -0.153678 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.811594 -0.0654286 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.80102 -0.0876595 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.820516 -0.0820122 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.833964 -0.0632344 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.842886 -0.079818 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.845761 -0.083271 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.814468 -0.0688817 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.826265 -0.0889183 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803895 -0.0911125 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.926643 -0.128672 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.90826 -0.133221 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.904034 -0.1198 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.926768 -0.139481 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.904159 -0.130608 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.908508 -0.154838 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.930993 -0.152902 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.912733 -0.16826 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.912609 -0.157451 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.853284 -0.0905999 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.839638 -0.0940331 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840233 -0.111382 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.873773 -0.103926 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860723 -0.124708 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880618 -0.120685 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.873178 -0.086577 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880022 -0.103336 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.859532 -0.0900102 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.894035 -0.188167 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.885777 -0.195141 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.89378 -0.172046 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880811 -0.172463 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.880556 -0.156342 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.859328 -0.163733 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.872807 -0.195558 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.851325 -0.186828 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.864549 -0.202532 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.891905 -0.197746 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.867957 -0.193701 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.884286 -0.175383 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.908019 -0.198259 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.900401 -0.175896 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.900186 -0.194726 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.89169 -0.216576 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.883856 -0.213043 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.867741 -0.212531 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.843832 -0.25245 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.826426 -0.235043 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.846687 -0.233837 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.865646 -0.247028 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.868501 -0.228415 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.870053 -0.224198 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.845385 -0.248234 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.849792 -0.225404 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.827978 -0.230827 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.794108 -0.212743 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.788345 -0.199907 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802328 -0.189621 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.817265 -0.220563 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.825486 -0.197441 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.83466 -0.215547 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803282 -0.230849 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.820676 -0.225832 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.797518 -0.218012 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.597249 -0.125845 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.592635 -0.138689 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.610094 -0.12123 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618324 -0.12946 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631169 -0.124846 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634785 -0.145921 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600865 -0.14692 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617326 -0.163381 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.596251 -0.159765 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.554772 -0.141271 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577935 -0.13272 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554772 -0.141271 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.577935 -0.13272 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.153374 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549237 -0.161926 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566866 -0.174029 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566866 -0.174029 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.612676 -0.0833673 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604124 -0.10653 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633331 -0.0778329 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645433 -0.0954616 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645433 -0.0954616 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612676 -0.0833673 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.100996 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604124 -0.10653 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687686 -0.148046 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6652 -0.154071 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678869 -0.137627 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.707746 -0.155452 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.698929 -0.145033 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70532 -0.168883 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.694077 -0.171896 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.691651 -0.185327 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671591 -0.177921 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.700504 -0.095832 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681209 -0.105047 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681209 -0.105047 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715624 -0.110952 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711449 -0.135288 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715624 -0.110952 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.711449 -0.135288 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.120168 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.736819 -0.190051 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721035 -0.171063 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.736819 -0.190051 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721035 -0.171063 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.191718 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.731284 -0.210706 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.709966 -0.212373 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.709966 -0.212373 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.61945 -0.216282 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609032 -0.207465 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.625476 -0.193796 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6433 -0.222672 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649326 -0.200186 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.656732 -0.220246 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626857 -0.236341 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640288 -0.233915 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616438 -0.227525 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.661455 -0.265414 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642468 -0.249631 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.68211 -0.25988 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683777 -0.238562 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.683777 -0.238562 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661455 -0.265414 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.244096 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642468 -0.249631 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.567237 -0.2291 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576452 -0.209804 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.576452 -0.209804 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582357 -0.24422 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606693 -0.240045 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582357 -0.24422 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606693 -0.240045 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.224924 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.66171 0.103063 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.653258 0.0800983 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673446 0.0876683 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682761 0.106818 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.694497 0.0914233 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69536 0.0876083 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.662574 0.0992478 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.675172 0.0800382 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.654121 0.0762832 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599047 0.0239663 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.662466 0.0547519 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660752 0.0332597 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682791 0.0439578 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.668 0.0754066 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.688325 0.0646126 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671821 0.0745692 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645962 0.0647085 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649783 0.0638711 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644249 0.0432164 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.750021 0.0887955 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.729506 0.078459 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732161 0.0813312 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.766375 0.075018 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.748514 0.0675537 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.762212 0.050904 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.763719 0.0721458 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759557 0.0480318 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743204 0.0618093 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.747099 0.0542122 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743371 0.0553974 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.7241 0.0550267 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741565 0.0335575 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718566 0.0343719 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732303 0.014088 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.760836 0.0339282 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.751574 0.0144587 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.757108 0.0351134 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.781094 -0.024813 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.693716 0.0608821 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.677932 0.0496759 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.694884 0.0652402 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717566 0.0544915 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718734 0.0588496 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.725632 0.0368947 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.700615 0.0389272 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.708681 0.0213304 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.684831 0.027721 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.720593 -0.0310802 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.7 -0.0246945 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718114 -0.00820099 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741827 -0.0336072 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739347 -0.010728 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.742467 -0.0297485 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.723713 -0.0501007 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.724354 -0.046242 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70312 -0.043715 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.628657 -0.00328338 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630031 0.000378614 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642244 0.0152909 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648309 -0.0117117 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661896 0.00686255 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669336 -0.016478 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636097 -0.026624 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657124 -0.0313903 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637471 -0.022962 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.909872 -0.0977075 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.891613 -0.104052 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.886771 -0.0997803 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.917612 -0.113625 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.894512 -0.115698 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.907093 -0.135886 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.922453 -0.117896 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.911935 -0.140158 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.904194 -0.124241 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.867758 -0.11253 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.846864 -0.122142 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860854 -0.107566 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.889596 -0.120593 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.882692 -0.115629 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.890541 -0.138267 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.875606 -0.135168 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.876551 -0.152843 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.854713 -0.14478 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.826973 -0.0627848 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.81296 -0.083104 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.830202 -0.0805529 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.850898 -0.0640908 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.854126 -0.0818589 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.860809 -0.0857161 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.833656 -0.0666419 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.843568 -0.0882673 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819643 -0.0869612 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.876203 -0.130609 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.879733 -0.128522 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.857385 -0.124356 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862935 -0.149395 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.844117 -0.143141 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.853198 -0.166093 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.885283 -0.153561 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.875546 -0.170259 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.888813 -0.151474 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.798532 -0.108311 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.797989 -0.131037 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819589 -0.119537 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.80454 -0.0890219 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.825597 -0.100248 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.810005 -0.0924597 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.78294 -0.100522 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.788405 -0.10396 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.782397 -0.123249 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.785723 -0.180723 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.798991 -0.161937 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.782104 -0.173028 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.78966 -0.203667 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786041 -0.195972 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.806864 -0.207825 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.806546 -0.192576 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.82375 -0.196734 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819813 -0.17379 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.920038 -0.201143 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.900209 -0.201384 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.910616 -0.17991 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.918112 -0.192861 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.90869 -0.171628 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.896357 -0.18482 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.907705 -0.214335 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.88595 -0.206294 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.887876 -0.214576 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.824206 -0.252002 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.810793 -0.231282 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.827952 -0.234336 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.848158 -0.251396 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.851905 -0.23373 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.858698 -0.23007 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.830999 -0.248342 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.841538 -0.227016 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.817586 -0.227621 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.868948 -0.209658 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.84746 -0.202239 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.865773 -0.186008 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.889121 -0.210757 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.885946 -0.187106 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.887806 -0.204436 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.870808 -0.226988 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.869493 -0.220667 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.84932 -0.219569 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.661946 0.0667914 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65711 0.0452771 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680354 0.0511945 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673611 0.0847128 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.692019 0.069116 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680439 0.08112 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.650366 0.0787954 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657195 0.0752026 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64553 0.0572811 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.604582 0.0446211 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627745 0.053173 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.62221 0.0325183 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599047 0.0239663 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616676 0.0118635 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.634953 -0.000226782 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655218 0.012605 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.635947 0.0122343 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.629419 -0.0208815 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630413 -0.00842045 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.644149 -0.0287044 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.64869 -0.0205108 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.66342 -0.0283337 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.668955 -0.00767898 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.746894 0.0650768 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739183 0.0653796 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.723153 0.0607735 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.748035 0.0437239 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.724295 0.0394207 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741466 0.0226739 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.764065 0.04833 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.757496 0.02728 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.756355 0.0486329 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.732368 -0.0484665 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715699 -0.0478762 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737738 -0.0371781 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737902 -0.0278118 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743272 -0.0165234 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.726768 -0.00656677 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715864 -0.0385099 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70473 -0.0172649 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.699195 -0.0379196 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786629 -0.00415829 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.770845 0.0148294 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76531 -0.0058253 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.781094 -0.024813 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759776 -0.02648 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.706291 0.107813 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.689001 0.0909853 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701434 0.0896851 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.730141 0.101422 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.725284 0.0832945 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.736701 0.0782041 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717709 0.102723 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.724268 0.0795043 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.700418 0.0858949 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.740802 0.0511556 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718185 0.043171 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.730397 0.0580833 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.760455 0.0427273 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.750049 0.0496549 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.757489 0.0263144 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.748242 0.027815 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.745277 0.0114021 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.725625 0.0198304 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.650692 0.0721382 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645053 0.0564414 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663167 0.072935 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671925 0.0696112 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.6844 0.070408 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.68752 0.0513875 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.653812 0.0531177 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.669407 0.034894 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648173 0.0374209 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.672341 -0.123995 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.666199 -0.120057 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651943 -0.134313 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680334 -0.146243 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.659936 -0.156561 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.682184 -0.164554 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.69459 -0.131987 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696439 -0.150298 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.688447 -0.12805 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.731779 -0.136231 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.712305 -0.141449 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.70911 -0.129524 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.734974 -0.148156 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.712305 -0.141449 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718696 -0.165299 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.738169 -0.160081 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.721891 -0.177224 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.718696 -0.165299 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.656415 -0.0783272 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639272 -0.0946054 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651197 -0.0978007 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.680265 -0.0847178 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.675047 -0.104191 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.686972 -0.107387 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.66834 -0.0815225 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.675047 -0.104191 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651197 -0.0978007 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.60298 -0.154189 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.622115 -0.166695 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.617912 -0.143431 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583506 -0.148971 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.598439 -0.138214 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583168 -0.156259 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587708 -0.172234 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58737 -0.179523 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.606843 -0.184741 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.577317 -0.105912 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582843 -0.128897 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600302 -0.111438 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586046 -0.0971825 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609032 -0.102708 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600302 -0.111438 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.568587 -0.114642 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.582843 -0.128897 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.574113 -0.137627 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.549732 -0.185011 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569205 -0.179793 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.56601 -0.167868 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.552927 -0.196936 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569205 -0.179793 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575596 -0.203643 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556122 -0.208861 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.578791 -0.215568 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.575596 -0.203643 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.653756 -0.23668 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636974 -0.229127 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660237 -0.233329 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671802 -0.221409 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678283 -0.218058 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.673065 -0.198584 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648538 -0.217207 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.649801 -0.194382 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631756 -0.209653 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.607636 -0.260374 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600929 -0.237705 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612854 -0.240901 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.631486 -0.266765 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636704 -0.247291 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648629 -0.250487 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619561 -0.26357 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.636704 -0.247291 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612854 -0.240901 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.710584 -0.23918 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687599 -0.233654 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.705059 -0.216195 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719314 -0.23045 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.713788 -0.207465 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.705059 -0.216195 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.701855 -0.24791 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687599 -0.233654 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.678869 -0.242384 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786005 -0.343435 8.51251e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.824791 -0.400556 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802599 -0.392663 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.821021 -0.376528 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.843843 -0.400347 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840073 -0.376319 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840701 -0.392245 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.82542 -0.416482 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.822279 -0.40838 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.803228 -0.408589 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.734271 -0.367981 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.731279 -0.362711 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.745269 -0.348136 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.756109 -0.376044 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.767107 -0.356199 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.774956 -0.378837 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.74212 -0.390619 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.760966 -0.393412 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.739128 -0.385349 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.80634 -0.308073 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.786996 -0.316395 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802721 -0.300378 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.829184 -0.315299 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.825565 -0.307605 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.832685 -0.330849 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.813459 -0.331317 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.81696 -0.346866 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.794116 -0.339639 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.878086 -0.365674 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.859887 -0.367962 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.863875 -0.346241 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.872736 -0.362827 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.858526 -0.343394 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.849188 -0.362269 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.868748 -0.384548 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.8452 -0.38399 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.85055 -0.386837 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.848999 -0.272611 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.828835 -0.281616 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.829121 -0.278432 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862893 -0.287278 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.843015 -0.293099 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.856621 -0.310951 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.862606 -0.290462 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.856335 -0.314135 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.842441 -0.299468 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.819591 -0.297057 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.814956 -0.293153 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.79807 -0.304244 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.823527 -0.320001 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.802007 -0.327188 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.822829 -0.339041 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.840413 -0.30891 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.839716 -0.32795 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.835779 -0.305006 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.793573 -0.436217 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.776294 -0.419454 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.796968 -0.420728 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.815094 -0.42903 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.818489 -0.413542 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.819335 -0.405081 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.79442 -0.427756 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.798662 -0.403807 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.777141 -0.410993 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.747522 -0.356966 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.759239 -0.339469 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.740618 -0.352002 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.750453 -0.380746 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.743549 -0.375782 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.765101 -0.387029 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.769074 -0.368213 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.783722 -0.374496 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.780791 -0.350716 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.704862 -0.392427 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.717401 -0.374248 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.714218 -0.373948 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.716744 -0.408767 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.726099 -0.390287 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.741164 -0.406927 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.719927 -0.409067 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.744347 -0.407227 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.732465 -0.390887 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.517869 -0.413579 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528508 -0.393219 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.525596 -0.395831 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.531404 -0.430134 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.539131 -0.412386 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555577 -0.426328 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534315 -0.427522 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558488 -0.423716 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544953 -0.407161 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499428 -0.347819 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.529037 -0.375068 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530412 -0.371406 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.542624 -0.356494 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548689 -0.383497 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562276 -0.364922 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569716 -0.388263 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536477 -0.398409 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.557504 -0.403175 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.537852 -0.394747 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.612625 -0.451897 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593593 -0.436515 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.614807 -0.432663 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632624 -0.444328 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.634806 -0.425094 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.633591 -0.421376 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.61141 -0.448179 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.612377 -0.425227 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.592379 -0.432797 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.620974 -0.402865 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600381 -0.39648 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618494 -0.379986 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642207 -0.405392 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639728 -0.382513 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.642848 -0.401533 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624094 -0.421886 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624734 -0.418027 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.603501 -0.4155 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681475 -0.396598 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.570335 -0.399584 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562269 -0.381987 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569167 -0.403942 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594185 -0.405974 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.593017 -0.410332 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.609969 -0.394768 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587286 -0.384019 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60307 -0.372813 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57922 -0.366422 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.64748 -0.317573 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643752 -0.316388 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.624481 -0.316758 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.641945 -0.338228 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618946 -0.337413 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.632683 -0.357697 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.661216 -0.337857 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.651954 -0.357326 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.657489 -0.336672 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.562847 -0.317033 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.561133 -0.338525 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.583171 -0.327827 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.568381 -0.296378 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.588706 -0.307172 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572202 -0.297216 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.546343 -0.307077 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550163 -0.307914 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544629 -0.328569 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.525642 -0.386849 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528407 -0.379645 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.538964 -0.366733 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.544812 -0.396323 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.558134 -0.376207 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566746 -0.398593 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.534255 -0.409235 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.556189 -0.411505 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.537019 -0.402031 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.504962 -0.327164 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.528125 -0.318612 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.522591 -0.339267 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.499428 -0.347819 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.517056 -0.359921 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.551072 -0.299647 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.545434 -0.315344 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563547 -0.29885 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.572306 -0.302174 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.584781 -0.301377 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587901 -0.320398 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.554192 -0.318667 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569787 -0.336891 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.548554 -0.334364 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.617918 -0.415912 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.597788 -0.406911 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616439 -0.39183 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.639257 -0.417292 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.637778 -0.39321 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.640465 -0.409671 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.620605 -0.432372 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621814 -0.424751 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.600475 -0.423371 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.641183 -0.320629 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.618565 -0.328614 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.630777 -0.313702 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660835 -0.329058 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65043 -0.32213 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.65787 -0.345471 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.648623 -0.34397 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.645657 -0.360383 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.626005 -0.351955 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.687009 -0.375943 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.671225 -0.356956 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.665691 -0.37761 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.681475 -0.396598 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.660156 -0.398265 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.55776 -0.446515 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5512 -0.423296 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.562617 -0.428387 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.58161 -0.452905 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.586467 -0.434777 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.5989 -0.436077 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.570193 -0.447815 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.587483 -0.430987 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563633 -0.424596 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.632748 -0.420252 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.61608 -0.419661 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638118 -0.408963 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.638282 -0.399597 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.643653 -0.388308 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.627149 -0.378352 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.616244 -0.410295 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.60511 -0.38905 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.599576 -0.409705 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.535334 -0.372012 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.555599 -0.35918 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.536327 -0.359551 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.529799 -0.392667 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.530793 -0.380205 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.54453 -0.400489 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.549071 -0.392296 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.563801 -0.400119 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.569335 -0.379464 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.299716 -0.354293 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.292196 -0.366989 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.279022 -0.347717 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287162 -0.355904 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266468 -0.349329 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267088 -0.370213 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.300337 -0.375177 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.280263 -0.389485 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.292817 -0.387873 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.289441 -0.362978 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.270044 -0.378255 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267771 -0.35549 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30046 -0.357187 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.278789 -0.349699 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29208 -0.366673 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302733 -0.379952 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294353 -0.389438 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.283335 -0.395229 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.250544 -0.304702 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259421 -0.327715 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238717 -0.32307 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.229788 -0.298875 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.21796 -0.317244 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217908 -0.316063 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250492 -0.30352 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.238612 -0.320707 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259369 -0.326533 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.228779 -0.378635 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.24293 -0.383364 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225483 -0.365937 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20493 -0.385029 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201634 -0.372331 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.195233 -0.396152 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.222377 -0.402455 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.21268 -0.413578 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236529 -0.407185 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.177083 -0.319723 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198298 -0.332294 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.189464 -0.325124 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.156889 -0.330475 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.16927 -0.335876 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.157909 -0.353797 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165722 -0.337645 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166743 -0.360967 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.186938 -0.350216 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.147477 -0.412573 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172167 -0.412448 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.15977 -0.39322 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13525 -0.414903 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.147543 -0.39555 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.147713 -0.417108 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.147647 -0.434131 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.16011 -0.436336 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172338 -0.434006 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.282991 -0.443285 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282046 -0.4302 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271991 -0.421181 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262424 -0.453417 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251423 -0.431313 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.240911 -0.450466 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27248 -0.462437 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.250967 -0.459485 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271534 -0.449353 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.204606 -0.486123 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223366 -0.470107 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.202946 -0.464339 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183578 -0.481368 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181918 -0.459584 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.18131 -0.460599 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.203998 -0.487137 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201729 -0.466367 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.222757 -0.471122 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.285685 -0.449273 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27701 -0.426189 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282528 -0.436139 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271573 -0.46728 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268416 -0.454146 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248787 -0.462204 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266055 -0.45733 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.243269 -0.452254 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257381 -0.434246 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.374298 -0.269898 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.362218 -0.291334 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.350338 -0.270045 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379235 -0.256525 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355276 -0.256671 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.372093 -0.264588 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.391115 -0.277815 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383973 -0.285878 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.379036 -0.299251 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.304189 -0.304189 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29042 -0.307879 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307879 -0.29042 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328039 -0.31058 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331729 -0.29681 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33812 -0.32066 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31058 -0.328039 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32066 -0.33812 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29681 -0.331729 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.305995 -0.235688 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321516 -0.245915 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312359 -0.259438 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282145 -0.242079 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288509 -0.265828 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273816 -0.258696 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291303 -0.228556 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282974 -0.245173 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306824 -0.238783 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.385852 -0.261966 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.38141 -0.278159 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.36581 -0.259422 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.371598 -0.261768 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351556 -0.259225 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.352901 -0.277764 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387198 -0.280504 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.368501 -0.2965 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382755 -0.296698 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.30415 -0.228803 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321516 -0.245915 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306824 -0.238783 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2803 -0.235194 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282974 -0.245173 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273816 -0.258696 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294992 -0.242326 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288509 -0.265828 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312359 -0.259438 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.32435 -0.304189 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33812 -0.307879 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32066 -0.29042 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3005 -0.31058 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29681 -0.29681 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29042 -0.32066 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317959 -0.328039 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307879 -0.33812 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331729 -0.331729 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.407156 -0.334762 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.388696 -0.326552 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.392275 -0.31686 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402218 -0.348135 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387337 -0.330233 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378821 -0.353299 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39864 -0.357827 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.375243 -0.362991 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.380181 -0.349618 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.346394 -0.386461 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.354723 -0.369843 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340031 -0.362711 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322544 -0.392851 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316181 -0.369102 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307023 -0.382624 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337237 -0.399983 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321715 -0.389757 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345565 -0.383366 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.348239 -0.393346 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.354723 -0.369843 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345565 -0.383366 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324389 -0.399736 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321715 -0.389757 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307023 -0.382624 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.333547 -0.386213 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316181 -0.369102 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.340031 -0.362711 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.221102 -0.115471 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.220766 -0.13987 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.200597 -0.126388 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208266 -0.10569 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187762 -0.116607 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.195095 -0.120308 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228435 -0.119172 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215264 -0.13379 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228099 -0.143571 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.243049 -0.18209 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218634 -0.185251 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227721 -0.168159 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.254834 -0.188974 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.239506 -0.175043 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242204 -0.199019 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.245747 -0.206066 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233117 -0.216111 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221332 -0.209227 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.180792 -0.15554 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.19323 -0.166926 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.171251 -0.17557 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.160236 -0.142909 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.150694 -0.162939 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152117 -0.141663 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.182215 -0.134265 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.174096 -0.133019 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.194652 -0.145651 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.14887 -0.105335 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.167242 -0.121723 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153943 -0.115741 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.125414 -0.112813 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.130487 -0.123219 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.120331 -0.136679 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.138714 -0.118795 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13363 -0.142661 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.157086 -0.135183 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0995811 -0.130858 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.113639 -0.134736 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.123725 -0.135326 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0944715 -0.149528 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.118615 -0.153997 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.10342 -0.172078 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0843858 -0.148938 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0933338 -0.171487 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0984435 -0.152816 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0897843 -0.179968 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.114103 -0.183804 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.105492 -0.166467 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0778128 -0.186523 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0935207 -0.173022 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0901597 -0.196914 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0864233 -0.20386 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0987702 -0.214251 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.110742 -0.207696 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.219088 -0.151829 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.221861 -0.163068 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205084 -0.14514 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.19876 -0.155801 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.184756 -0.149113 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181204 -0.171014 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215537 -0.173729 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.197981 -0.188942 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.218309 -0.184969 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.167942 -0.229756 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183484 -0.223214 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.16569 -0.207683 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.144336 -0.234741 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.142084 -0.212668 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.13627 -0.233184 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.162129 -0.250271 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.154064 -0.248714 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177671 -0.243729 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.248268 -0.22829 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2391 -0.216949 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234532 -0.207937 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.233189 -0.240428 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219453 -0.220075 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208942 -0.241225 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.237756 -0.249439 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.213509 -0.250236 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.228589 -0.238098 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.01504 -0.435909 0.823149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0289993 -0.440694 0.803352 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0115452 -0.423265 0.802231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00881065 -0.442297 0.823273 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0123054 -0.429652 0.802355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0187019 -0.453468 0.8036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00864346 -0.459725 0.824394 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0012478 -0.470897 0.804721 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0226028 -0.46451 0.804597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0903221 -0.426942 0.766429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0806307 -0.435083 0.745229 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0699989 -0.416328 0.757266 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.078568 -0.431037 0.787754 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0582447 -0.420423 0.77859 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0571224 -0.443274 0.787878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0891998 -0.449792 0.775717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0677542 -0.462029 0.775841 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0795084 -0.457933 0.754517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0293677 -0.364644 0.76191 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0401449 -0.385352 0.753867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0213457 -0.375512 0.741241 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0065032 -0.36543 0.771198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00151881 -0.376298 0.750529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00558411 -0.386924 0.772443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0253024 -0.37527 0.783824 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0132151 -0.396764 0.785069 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0360796 -0.395978 0.775781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0707378 -0.451803 0.786236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0461991 -0.454158 0.787639 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0561039 -0.435761 0.774481 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0824157 -0.456685 0.765035 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0677817 -0.440643 0.753281 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0695548 -0.46392 0.745238 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0725109 -0.475081 0.778193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.05965 -0.482316 0.758396 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0479721 -0.477435 0.779597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0495643 -0.373728 0.724997 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0306825 -0.382672 0.738155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.030137 -0.383722 0.713492 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.064627 -0.389151 0.71296 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0451997 -0.399146 0.701455 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.060808 -0.41352 0.714081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0651725 -0.388102 0.737623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0613535 -0.41247 0.738744 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0462908 -0.397047 0.750781 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.081612 -0.459563 0.692603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0696122 -0.463589 0.713804 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0665888 -0.442243 0.701767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0691745 -0.459069 0.671279 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0541513 -0.441749 0.680442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0447373 -0.4626 0.671155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0721979 -0.480415 0.683315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0477607 -0.483946 0.683192 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0601982 -0.48444 0.704516 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.000557006 -0.523883 0.790755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0165974 -0.51057 0.779001 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00208214 -0.49924 0.790506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0234352 -0.525392 0.781591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0249603 -0.500749 0.781342 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.029159 -0.513588 0.760673 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00475566 -0.536722 0.770086 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0104794 -0.524918 0.749168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0123987 -0.523409 0.758332 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00154892 -0.540463 0.697123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0156462 -0.524673 0.705165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00538221 -0.52751 0.717791 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0227737 -0.531924 0.687835 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.026607 -0.518971 0.708504 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0268034 -0.507596 0.68659 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00174531 -0.529087 0.675209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00577498 -0.504759 0.673964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0154498 -0.513298 0.683251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0817008 -0.508666 0.734036 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0732807 -0.489545 0.720878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0722467 -0.488971 0.745541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0658672 -0.523298 0.746073 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0564131 -0.503602 0.757577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0416134 -0.518808 0.744951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0669012 -0.523872 0.72141 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0426474 -0.519382 0.720288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.058481 -0.504751 0.708251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0522053 -0.160406 0.690965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0358698 -0.178533 0.687193 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0513956 -0.171954 0.669156 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0762577 -0.165658 0.692853 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.075448 -0.177206 0.671044 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0839747 -0.189036 0.690969 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0607319 -0.172236 0.71089 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0684488 -0.195615 0.709006 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0443964 -0.190363 0.707118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0258737 -0.20044 0.690591 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0203763 -0.215612 0.671903 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00551963 -0.196602 0.677151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0122285 -0.200749 0.711167 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00812553 -0.196911 0.697727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00691403 -0.21623 0.713055 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0270852 -0.21976 0.705919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00794264 -0.235241 0.707807 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0215878 -0.234932 0.687231 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00705049 -0.176731 0.608675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00352517 -0.200733 0.613272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.025725 -0.192673 0.60607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.020811 -0.163117 0.624003 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0394855 -0.179058 0.621398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0310463 -0.173504 0.643928 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00138875 -0.171177 0.631205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00884647 -0.181564 0.65113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00491406 -0.195179 0.635801 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.127519 -0.195663 0.655816 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.108803 -0.201738 0.670732 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104303 -0.194866 0.647447 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.133744 -0.210551 0.637128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110528 -0.209754 0.628759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121254 -0.231514 0.633356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138245 -0.217423 0.660413 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.125754 -0.238386 0.656641 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119529 -0.223497 0.675329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0673141 -0.20388 0.573526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0609052 -0.198742 0.596811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0490355 -0.216456 0.584361 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0788008 -0.225098 0.568278 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0605222 -0.237674 0.579113 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0838786 -0.241177 0.586315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0906706 -0.207384 0.580727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0957484 -0.223463 0.598764 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0842617 -0.202246 0.604012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.126206 -0.291073 0.620293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110246 -0.293457 0.638981 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119897 -0.271345 0.633733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119442 -0.279219 0.599717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113132 -0.25949 0.613157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0967168 -0.269749 0.597829 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10979 -0.301332 0.604965 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0870656 -0.291862 0.603077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0938302 -0.303716 0.623653 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0942304 -0.234308 0.737733 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0714204 -0.238704 0.729364 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0854464 -0.221514 0.718528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113822 -0.241032 0.724292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.105038 -0.228237 0.705088 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110603 -0.252152 0.702483 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0997955 -0.258223 0.735128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0965768 -0.269343 0.713318 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0769856 -0.262619 0.726759 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0817333 -0.324811 0.702209 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0603366 -0.313378 0.697613 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0800146 -0.300317 0.704814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100861 -0.321838 0.686881 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0991425 -0.297345 0.689486 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0985923 -0.307433 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0811832 -0.334899 0.67968 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0789143 -0.320493 0.659755 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0597864 -0.323466 0.675083 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0076281 -0.275459 0.737359 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00142185 -0.270078 0.714074 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0167139 -0.255218 0.726523 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0305645 -0.282946 0.742607 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0396503 -0.262704 0.731771 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0472946 -0.285051 0.72457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0152725 -0.297806 0.730157 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0320026 -0.299911 0.71212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00906621 -0.292425 0.706872 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.190929 -0.412497 0.599471 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.16674 -0.417001 0.601529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.174844 -0.400273 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203175 -0.419795 0.57931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.18709 -0.407571 0.565115 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191231 -0.431597 0.561208 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195071 -0.436523 0.595564 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.183127 -0.448325 0.577461 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.170881 -0.441027 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.10495 -0.41922 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0911807 -0.42291 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10864 -0.40545 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128801 -0.425611 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13249 -0.411841 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138881 -0.435691 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111341 -0.44307 0.638566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121421 -0.45315 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0975713 -0.44676 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.12515 -0.343834 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107784 -0.360946 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122476 -0.353814 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149 -0.350225 0.585275 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.146326 -0.360204 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155484 -0.373727 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134308 -0.357357 0.603794 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.140792 -0.380859 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116942 -0.374468 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.200165 -0.411775 0.505236 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189948 -0.415187 0.527454 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179342 -0.399922 0.511201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189202 -0.420888 0.485076 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168379 -0.409035 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168023 -0.433412 0.487134 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.199808 -0.436152 0.501329 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178629 -0.448677 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189591 -0.439564 0.523547 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.123305 -0.350719 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107784 -0.360946 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116942 -0.374468 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.147155 -0.357109 0.491041 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.140792 -0.380859 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155484 -0.373727 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.137998 -0.343587 0.509559 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.146326 -0.360204 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122476 -0.353814 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.125111 -0.41922 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138881 -0.42291 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.121421 -0.40545 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.101261 -0.425611 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0975713 -0.411841 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0911807 -0.435691 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11872 -0.44307 0.450097 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10864 -0.45315 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13249 -0.44676 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.174264 -0.502603 0.558526 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.15142 -0.495376 0.564491 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.170327 -0.479659 0.566757 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.185226 -0.49349 0.538366 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.18129 -0.470546 0.546597 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173345 -0.477151 0.524171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166319 -0.509207 0.536101 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154437 -0.492868 0.521905 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143475 -0.501981 0.542066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0810612 -0.508376 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0745774 -0.484874 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0837352 -0.498397 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104911 -0.514767 0.503387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107585 -0.504787 0.525813 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122277 -0.497655 0.507294 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0957534 -0.501244 0.484868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11312 -0.484132 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0892696 -0.477742 0.488775 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.082906 -0.501491 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0745774 -0.484874 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0892696 -0.477742 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.106756 -0.507882 0.597621 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11312 -0.484132 0.599887 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122277 -0.497655 0.581368 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0920638 -0.515014 0.579103 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107585 -0.504787 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0837352 -0.498397 0.56285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.225282 -0.612732 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.22113 -0.60221 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.212428 -0.591695 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206686 -0.62329 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193832 -0.602253 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.183939 -0.623325 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215388 -0.633805 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.192641 -0.63384 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.211236 -0.623283 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.243024 -0.542885 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219861 -0.534333 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.243024 -0.542885 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219861 -0.534333 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248559 -0.563539 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23093 -0.575642 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.23093 -0.575642 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.200547 -0.527458 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205161 -0.540303 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187702 -0.522843 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.179472 -0.531074 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.166627 -0.526459 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.163011 -0.547535 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.196931 -0.548533 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.18047 -0.564994 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201546 -0.561378 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.132649 -0.643128 0.680674 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.152367 -0.631785 0.671072 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.133263 -0.618482 0.679302 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.111266 -0.643283 0.668328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11188 -0.618637 0.666956 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.109601 -0.632094 0.64638 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.130371 -0.656585 0.660098 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128706 -0.645397 0.63815 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.150088 -0.645242 0.650495 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.11011 -0.549659 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.132596 -0.555684 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.118927 -0.53924 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.09005 -0.557065 0.687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0988668 -0.546646 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0924762 -0.570497 0.666541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.103719 -0.573509 0.699462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.106145 -0.58694 0.678886 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.126205 -0.579534 0.691232 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0609772 -0.591664 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.643096 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.076761 -0.572676 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0609772 -0.591664 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.076761 -0.572676 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.593714 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0665116 -0.612319 0.618405 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0878298 -0.613986 0.606059 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0878298 -0.613986 0.630751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.189742 -0.660425 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.196144 -0.636618 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.185725 -0.645434 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.165892 -0.666816 0.599616 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.161875 -0.651825 0.618821 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.148444 -0.649399 0.598245 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.17631 -0.657999 0.57904 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.158862 -0.640582 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.182712 -0.634191 0.577669 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.107144 -0.620861 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.119989 -0.625475 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102529 -0.608016 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.11076 -0.599785 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.106145 -0.58694 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.127221 -0.583324 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.128219 -0.617245 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.14468 -0.600784 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.141064 -0.621859 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.203972 -0.574809 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.181486 -0.568784 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.201546 -0.561378 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.217641 -0.591253 0.549693 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.215215 -0.577822 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.208824 -0.601672 0.57027 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.197581 -0.598659 0.537348 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.188764 -0.609078 0.557924 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.175095 -0.592634 0.545578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0316054 -0.646362 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0478 -0.627981 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0287309 -0.625173 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00868865 -0.644258 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00581415 -0.623069 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00196644 -0.623773 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0277577 -0.647066 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0210355 -0.62658 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0439523 -0.628685 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.105299 -0.593994 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.100664 -0.582384 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0926585 -0.572783 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0869303 -0.604941 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0742898 -0.58373 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0639267 -0.604278 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0949359 -0.614541 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0719323 -0.613879 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.090301 -0.602932 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0177119 -0.584898 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0364224 -0.580268 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0185345 -0.56353 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00489609 -0.589197 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00407348 -0.567829 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00879364 -0.588867 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0129918 -0.605935 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00909422 -0.605605 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0317022 -0.601305 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0473753 -0.5935 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0308315 -0.595617 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0399691 -0.57344 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0409921 -0.582752 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0335859 -0.562692 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0180651 -0.574121 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0318545 -0.604929 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00892756 -0.596298 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0153107 -0.607046 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0495897 -0.530389 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0261165 -0.53532 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.031221 -0.519442 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0589904 -0.538628 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0406217 -0.527681 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0449178 -0.551799 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0538859 -0.554507 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0398133 -0.567678 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0304127 -0.559438 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0212225 -0.48882 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00896145 -0.491256 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00194055 -0.497372 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0286287 -0.50888 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00546563 -0.517432 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0237738 -0.531375 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0395307 -0.502764 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0346758 -0.525259 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0272696 -0.505199 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0604766 -0.607302 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0678827 -0.587242 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0604766 -0.607302 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0366265 -0.613693 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0366265 -0.613693 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0201827 -0.600023 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0440327 -0.593633 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0275889 -0.579964 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0514389 -0.573573 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0542684 -0.523344 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0591566 -0.541988 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0358996 -0.534291 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0472252 -0.501435 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0288565 -0.512382 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0450702 -0.49817 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0704822 -0.509132 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0683272 -0.505868 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0753703 -0.527777 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.118381 -0.551884 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0944221 -0.550745 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.103361 -0.536664 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.125404 -0.562225 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.110383 -0.547006 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.108468 -0.571428 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.116465 -0.576307 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0995293 -0.58551 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0925065 -0.575168 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.326876 -0.484182 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302705 -0.488171 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310432 -0.470513 0.39372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337778 -0.490299 0.402668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321334 -0.476629 0.415013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.324509 -0.500404 0.420874 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330051 -0.507957 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316783 -0.518062 0.405442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.305881 -0.511946 0.384149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.279233 -0.426389 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286276 -0.448298 0.383837 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263449 -0.445377 0.37489 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262789 -0.41272 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.247006 -0.431707 0.387235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.253389 -0.420959 0.408529 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.285616 -0.415641 0.396183 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.276216 -0.42388 0.417476 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29266 -0.43755 0.40513 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.320401 -0.436971 0.454201 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3148 -0.455413 0.438769 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29902 -0.436675 0.441856 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30814 -0.434535 0.475494 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286759 -0.434239 0.463149 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290278 -0.450543 0.481355 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32392 -0.453274 0.472408 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306057 -0.469281 0.478269 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318318 -0.471717 0.456976 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.314604 -0.562288 0.439705 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.310183 -0.541186 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.306499 -0.542501 0.45205 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.29581 -0.575569 0.448652 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287705 -0.555781 0.460998 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.272595 -0.567748 0.445566 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299494 -0.574255 0.424272 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.276279 -0.566433 0.421186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295073 -0.553152 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.298839 -0.507811 0.512531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.302049 -0.505577 0.488152 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.287442 -0.489718 0.500186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27711 -0.515392 0.521479 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.265714 -0.497299 0.509133 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258591 -0.520738 0.506047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291716 -0.531251 0.509445 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273198 -0.536597 0.494013 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294927 -0.529016 0.485065 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.227186 -0.567359 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.246777 -0.555283 0.482603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.227528 -0.54267 0.49155 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.205805 -0.567063 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.206147 -0.542374 0.479204 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.204014 -0.554691 0.457911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.225054 -0.579676 0.470257 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.223263 -0.567305 0.448964 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.244644 -0.567601 0.46131 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.275127 -0.549787 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282533 -0.529727 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275127 -0.549787 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251277 -0.556177 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.251277 -0.556177 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.234833 -0.542508 0.372739 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.258683 -0.536117 0.348047 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.242239 -0.522448 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.266089 -0.516058 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.17251 -0.549603 0.412239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.191778 -0.549105 0.427671 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.177908 -0.528912 0.424584 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.173421 -0.537136 0.390945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.178819 -0.516445 0.403291 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193601 -0.524171 0.385084 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.187292 -0.557329 0.394032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.207471 -0.544363 0.388171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.20656 -0.556831 0.409464 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.209819 -0.457868 0.353908 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.210053 -0.453963 0.378288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2312 -0.458164 0.366254 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.214674 -0.480363 0.344961 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.236055 -0.480659 0.357307 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.219763 -0.498954 0.360393 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193527 -0.476163 0.356995 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.198616 -0.494753 0.372427 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.193761 -0.472258 0.381374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.102403 -0.871334 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100577 -0.862937 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113406 -0.850164 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.123961 -0.880044 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.134964 -0.858873 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143694 -0.880356 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111133 -0.892817 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.130866 -0.893129 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.109307 -0.884419 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0654286 -0.811594 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0820122 -0.820516 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0876595 -0.80102 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0688817 -0.814468 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0911125 -0.803895 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0889183 -0.826265 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0632344 -0.833964 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.083271 -0.845761 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.079818 -0.842886 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.120908 -0.781177 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113462 -0.795477 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13149 -0.778973 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143095 -0.784778 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153678 -0.782573 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.157836 -0.802678 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.125067 -0.801282 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.139808 -0.819182 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.11762 -0.815582 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.197746 -0.891905 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.175383 -0.884286 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.193701 -0.867957 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216576 -0.89169 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212531 -0.867741 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.213043 -0.883856 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.198259 -0.908019 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194726 -0.900186 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.175896 -0.900401 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.212743 -0.794108 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.189621 -0.802328 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.199907 -0.788345 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.230849 -0.803282 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.218012 -0.797518 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225832 -0.820676 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220563 -0.817265 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215547 -0.83466 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.197441 -0.825486 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.25245 -0.843832 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233837 -0.846687 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.235043 -0.826426 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248234 -0.845385 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.230827 -0.827978 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225404 -0.849792 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.247028 -0.865646 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224198 -0.870053 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.228415 -0.868501 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.128672 -0.926643 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.1198 -0.904034 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.133221 -0.90826 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.152902 -0.930993 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.157451 -0.912609 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.16826 -0.912733 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.139481 -0.926768 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154838 -0.908508 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.130608 -0.904159 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.188167 -0.894035 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172046 -0.89378 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195141 -0.885777 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195558 -0.872807 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.202532 -0.864549 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.186828 -0.851325 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172463 -0.880811 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163733 -0.859328 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.156342 -0.880556 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0905999 -0.853284 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111382 -0.840233 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0940331 -0.839638 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.086577 -0.873178 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0900102 -0.859532 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103336 -0.880022 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.103926 -0.873773 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120685 -0.880618 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124708 -0.860723 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.103063 -0.66171 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0876683 -0.673446 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0800983 -0.653258 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0992478 -0.662574 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0762832 -0.654121 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0800382 -0.675172 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.106818 -0.682761 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0876083 -0.69536 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0914233 -0.694497 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0547519 -0.662466 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0439578 -0.682791 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0332597 -0.660752 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0647085 -0.645962 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0432164 -0.644249 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0638711 -0.649783 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0754066 -0.668 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0745692 -0.671821 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0646126 -0.688325 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0239663 -0.599047 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0608821 -0.693716 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0652402 -0.694884 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0496759 -0.677932 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0389272 -0.700615 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.027721 -0.684831 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0213304 -0.708681 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0544915 -0.717566 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0368947 -0.725632 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0588496 -0.718734 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00328338 -0.628657 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0152909 -0.642244 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.000378614 -0.630031 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.026624 -0.636097 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.022962 -0.637471 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0313903 -0.657124 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0117117 -0.648309 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.016478 -0.669336 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.00686255 -0.661896 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0310802 -0.720593 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00820099 -0.718114 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0246945 -0.7 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0501007 -0.723713 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.043715 -0.70312 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.046242 -0.724354 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0336072 -0.741827 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0297485 -0.742467 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.010728 -0.739347 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0887955 -0.750021 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0813312 -0.732161 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.078459 -0.729506 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0721458 -0.763719 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0618093 -0.743204 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0480318 -0.759557 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.075018 -0.766375 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.050904 -0.762212 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0675537 -0.748514 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.024813 -0.781094 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0542122 -0.747099 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0550267 -0.7241 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0553974 -0.743371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0339282 -0.760836 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0351134 -0.757108 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0144587 -0.751574 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0335575 -0.741565 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.014088 -0.732303 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0343719 -0.718566 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.125845 -0.597249 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.12123 -0.610094 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138689 -0.592635 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14692 -0.600865 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.159765 -0.596251 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.163381 -0.617326 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.12946 -0.618324 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.145921 -0.634785 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124846 -0.631169 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0833673 -0.612676 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10653 -0.604124 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0833673 -0.612676 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10653 -0.604124 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.624779 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0778329 -0.633331 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0954616 -0.645433 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0954616 -0.645433 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.141271 -0.554772 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13272 -0.577935 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.161926 -0.549237 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.174029 -0.566866 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.174029 -0.566866 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141271 -0.554772 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.5724 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.13272 -0.577935 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.216282 -0.61945 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.193796 -0.625476 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207465 -0.609032 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.236341 -0.626857 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.227525 -0.616438 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233915 -0.640288 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.222672 -0.6433 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220246 -0.656732 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200186 -0.649326 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.2291 -0.567237 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209804 -0.576452 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.209804 -0.576452 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.24422 -0.582357 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240045 -0.606693 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.24422 -0.582357 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240045 -0.606693 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.591572 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.265414 -0.661455 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.249631 -0.642468 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.265414 -0.661455 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.249631 -0.642468 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.663122 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.25988 -0.68211 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238562 -0.683777 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.238562 -0.683777 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.148046 -0.687686 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.137627 -0.678869 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.154071 -0.6652 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171896 -0.694077 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177921 -0.671591 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.185327 -0.691651 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.155452 -0.707746 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.168883 -0.70532 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.145033 -0.698929 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.190051 -0.736819 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171063 -0.721035 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210706 -0.731284 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212373 -0.709966 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.212373 -0.709966 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.190051 -0.736819 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.715501 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171063 -0.721035 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.095832 -0.700504 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.105047 -0.681209 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.105047 -0.681209 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110952 -0.715624 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135288 -0.711449 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.110952 -0.715624 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135288 -0.711449 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.696329 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343435 -0.786005 8.51251e-17 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.400556 -0.824791 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376528 -0.821021 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392663 -0.802599 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.416482 -0.82542 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408589 -0.803228 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.40838 -0.822279 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400347 -0.843843 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392245 -0.840701 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376319 -0.840073 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.308073 -0.80634 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.300378 -0.802721 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316395 -0.786996 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.331317 -0.813459 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339639 -0.794116 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.346866 -0.81696 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.315299 -0.829184 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.330849 -0.832685 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307605 -0.825565 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.367981 -0.734271 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.348136 -0.745269 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362711 -0.731279 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390619 -0.74212 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.385349 -0.739128 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.393412 -0.760966 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376044 -0.756109 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378837 -0.774956 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356199 -0.767107 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.436217 -0.793573 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.420728 -0.796968 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419454 -0.776294 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427756 -0.79442 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410993 -0.777141 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403807 -0.798662 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.42903 -0.815094 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405081 -0.819335 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.413542 -0.818489 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.392427 -0.704862 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.373948 -0.714218 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374248 -0.717401 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409067 -0.719927 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390887 -0.732465 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407227 -0.744347 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408767 -0.716744 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406927 -0.741164 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.390287 -0.726099 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.356966 -0.747522 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.352002 -0.740618 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339469 -0.759239 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.368213 -0.769074 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.350716 -0.780791 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.374496 -0.783722 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380746 -0.750453 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.387029 -0.765101 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375782 -0.743549 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.365674 -0.878086 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.346241 -0.863875 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.367962 -0.859887 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384548 -0.868748 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.386837 -0.85055 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.38399 -0.8452 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362827 -0.872736 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.362269 -0.849188 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.343394 -0.858526 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.297057 -0.819591 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.304244 -0.79807 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293153 -0.814956 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.30891 -0.840413 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.305006 -0.835779 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32795 -0.839716 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320001 -0.823527 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339041 -0.822829 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327188 -0.802007 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.272611 -0.848999 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.278432 -0.829121 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.281616 -0.828835 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.290462 -0.862606 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.299468 -0.842441 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.314135 -0.856335 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.287278 -0.862893 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.310951 -0.856621 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.293099 -0.843015 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.386849 -0.525642 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366733 -0.538964 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379645 -0.528407 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409235 -0.534255 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.402031 -0.537019 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.411505 -0.556189 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396323 -0.544812 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398593 -0.566746 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.376207 -0.558134 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.299647 -0.551072 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.29885 -0.563547 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.315344 -0.545434 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318667 -0.554192 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.334364 -0.548554 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.336891 -0.569787 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.302174 -0.572306 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.320398 -0.587901 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.301377 -0.584781 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.347819 -0.499428 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.446515 -0.55776 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428387 -0.562617 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423296 -0.5512 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.447815 -0.570193 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.424596 -0.563633 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.430987 -0.587483 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.452905 -0.58161 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436077 -0.5989 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.434777 -0.586467 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.372012 -0.535334 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359551 -0.536327 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.35918 -0.555599 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392296 -0.549071 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379464 -0.569335 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400119 -0.563801 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.392667 -0.529799 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.400489 -0.54453 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.380205 -0.530793 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.420252 -0.632748 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408963 -0.638118 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.419661 -0.61608 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410295 -0.616244 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409705 -0.599576 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.38905 -0.60511 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399597 -0.638282 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.378352 -0.627149 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388308 -0.643653 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.415912 -0.617918 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39183 -0.616439 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.406911 -0.597788 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.432372 -0.620605 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423371 -0.600475 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.424751 -0.621814 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.417292 -0.639257 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.409671 -0.640465 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39321 -0.637778 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396598 -0.681475 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.320629 -0.641183 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.313702 -0.630777 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328614 -0.618565 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.34397 -0.648623 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.351955 -0.626005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.360383 -0.645657 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.329058 -0.660835 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.345471 -0.65787 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.32213 -0.65043 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.413579 -0.517869 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.395831 -0.525596 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.393219 -0.528508 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.427522 -0.534315 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.407161 -0.544953 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.423716 -0.558488 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.430134 -0.531404 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.426328 -0.555577 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.412386 -0.539131 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.375068 -0.529037 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356494 -0.542624 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.371406 -0.530412 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398409 -0.536477 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.394747 -0.537852 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403175 -0.557504 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.383497 -0.548689 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388263 -0.569716 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.364922 -0.562276 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.347819 -0.499428 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.359921 -0.517056 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327164 -0.504962 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.339267 -0.522591 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.318612 -0.528125 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.399584 -0.570335 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.403942 -0.569167 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.381987 -0.562269 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.384019 -0.587286 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.366422 -0.57922 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.372813 -0.60307 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405974 -0.594185 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.394768 -0.609969 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.410332 -0.593017 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.317033 -0.562847 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.327827 -0.583171 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338525 -0.561133 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307077 -0.546343 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.328569 -0.544629 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307914 -0.550163 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.296378 -0.568381 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.297216 -0.572202 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.307172 -0.588706 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.317573 -0.64748 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316758 -0.624481 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.316388 -0.643752 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337857 -0.661216 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.336672 -0.657489 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357326 -0.651954 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.338228 -0.641945 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.357697 -0.632683 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.337413 -0.618946 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.451897 -0.612625 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.432663 -0.614807 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.436515 -0.593593 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.448179 -0.61141 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.432797 -0.592379 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425227 -0.612377 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.444328 -0.632624 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.421376 -0.633591 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.425094 -0.634806 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.396598 -0.681475 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.398265 -0.660156 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.375943 -0.687009 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.37761 -0.665691 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.356956 -0.671225 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.402865 -0.620974 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.379986 -0.618494 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.39648 -0.600381 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.421886 -0.624094 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.4155 -0.603501 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.418027 -0.624734 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.405392 -0.642207 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.401533 -0.642848 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.382513 -0.639728 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0977075 -0.909872 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0997803 -0.886771 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104052 -0.891613 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.117896 -0.922453 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124241 -0.904194 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.140158 -0.911935 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.113625 -0.917612 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135886 -0.907093 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115698 -0.894512 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0627848 -0.826973 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0805529 -0.830202 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.083104 -0.81296 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0666419 -0.833656 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0869612 -0.819643 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0882673 -0.843568 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0640908 -0.850898 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0857161 -0.860809 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0818589 -0.854126 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.11253 -0.867758 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107566 -0.860854 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.122142 -0.846864 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135168 -0.875606 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.14478 -0.854713 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.152843 -0.876551 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120593 -0.889596 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.138267 -0.890541 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115629 -0.882692 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.201143 -0.920038 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.17991 -0.910616 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.201384 -0.900209 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.214335 -0.907705 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.214576 -0.887876 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.206294 -0.88595 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192861 -0.918112 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.18482 -0.896357 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.171628 -0.90869 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.209658 -0.868948 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.186008 -0.865773 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.202239 -0.84746 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.226988 -0.870808 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.219569 -0.84932 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.220667 -0.869493 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210757 -0.889121 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.204436 -0.887806 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.187106 -0.885946 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.252002 -0.824206 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.234336 -0.827952 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.231282 -0.810793 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.248342 -0.830999 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.227621 -0.817586 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.227016 -0.841538 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.251396 -0.848158 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.23007 -0.858698 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.23373 -0.851905 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.130609 -0.876203 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.124356 -0.857385 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128522 -0.879733 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153561 -0.885283 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.151474 -0.888813 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.170259 -0.875546 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.149395 -0.862935 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.166093 -0.853198 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.143141 -0.844117 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.180723 -0.785723 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.173028 -0.782104 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.161937 -0.798991 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.192576 -0.806546 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.17379 -0.819813 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196734 -0.82375 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203667 -0.78966 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207825 -0.806864 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.195972 -0.786041 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.108311 -0.798532 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.119537 -0.819589 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131037 -0.797989 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100522 -0.78294 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.123249 -0.782397 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.10396 -0.788405 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0890219 -0.80454 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0924597 -0.810005 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100248 -0.825597 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.200937 -0.595399 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.194794 -0.591462 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.180539 -0.605717 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.208929 -0.617647 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188531 -0.627965 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.210779 -0.635958 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.223185 -0.603392 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.225035 -0.621702 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.217042 -0.599454 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.260374 -0.607636 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240901 -0.612854 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.237705 -0.600929 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.26357 -0.619561 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.240901 -0.612854 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.247291 -0.636704 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.266765 -0.631486 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.250487 -0.648629 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.247291 -0.636704 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.185011 -0.549732 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.167868 -0.56601 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179793 -0.569205 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.208861 -0.556122 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203643 -0.575596 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.215568 -0.578791 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.196936 -0.552927 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.203643 -0.575596 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.179793 -0.569205 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.131575 -0.625593 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.15071 -0.6381 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.146508 -0.614836 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.112102 -0.620375 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.127034 -0.609618 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111763 -0.627664 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.116304 -0.643639 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.115965 -0.650927 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.135439 -0.656145 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.105912 -0.577317 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111438 -0.600302 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128897 -0.582843 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.114642 -0.568587 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.137627 -0.574113 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.128897 -0.582843 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0971825 -0.586046 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.111438 -0.600302 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.102708 -0.609032 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0783272 -0.656415 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0978007 -0.651197 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0946054 -0.639272 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0815225 -0.66834 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0978007 -0.651197 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104191 -0.675047 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0847178 -0.680265 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.107387 -0.686972 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.104191 -0.675047 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.182351 -0.708085 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165569 -0.700531 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.188833 -0.704733 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.200397 -0.692813 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.206879 -0.689462 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.201661 -0.669989 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177134 -0.688611 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.178397 -0.665787 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.160351 -0.681058 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.136231 -0.731779 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.129524 -0.70911 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141449 -0.712305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.160081 -0.738169 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165299 -0.718696 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.177224 -0.721891 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.148156 -0.734974 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.165299 -0.718696 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.141449 -0.712305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.23918 -0.710584 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216195 -0.705059 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233654 -0.687599 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.24791 -0.701855 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.242384 -0.678869 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.233654 -0.687599 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.23045 -0.719314 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.216195 -0.705059 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.207465 -0.713788 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0667914 -0.661946 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0511945 -0.680354 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0452771 -0.65711 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0787954 -0.650366 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0572811 -0.64553 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0752026 -0.657195 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0847128 -0.673611 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.08112 -0.680439 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.069116 -0.692019 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.000226782 -0.634953 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0122343 -0.635947 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.012605 -0.655218 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0205108 -0.64869 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00767898 -0.668955 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0283337 -0.66342 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0208815 -0.629419 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0287044 -0.644149 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00842045 -0.630413 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0239663 -0.599047 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0118635 -0.616676 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0446211 -0.604582 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0325183 -0.62221 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.053173 -0.627745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.107813 -0.706291 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0896851 -0.701434 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0909853 -0.689001 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.102723 -0.717709 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0858949 -0.700418 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0795043 -0.724268 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.101422 -0.730141 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0782041 -0.736701 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0832945 -0.725284 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0721382 -0.650692 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.072935 -0.663167 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0564414 -0.645053 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0531177 -0.653812 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0374209 -0.648173 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.034894 -0.669407 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0696112 -0.671925 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0513875 -0.68752 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.070408 -0.6844 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0511556 -0.740802 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0580833 -0.730397 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.043171 -0.718185 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.027815 -0.748242 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0198304 -0.725625 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0114021 -0.745277 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0427273 -0.760455 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0263144 -0.757489 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0496549 -0.750049 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.0650768 -0.746894 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0607735 -0.723153 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0653796 -0.739183 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.04833 -0.764065 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0486329 -0.756355 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.02728 -0.757496 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0437239 -0.748035 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0226739 -0.741466 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0394207 -0.724295 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.024813 -0.781094 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.02648 -0.759776 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00415829 -0.786629 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0058253 -0.76531 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.0148294 -0.770845 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER -0.0484665 -0.732368 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0371781 -0.737738 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0478762 -0.715699 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0385099 -0.715864 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0379196 -0.699195 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0172649 -0.70473 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0278118 -0.737902 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.00656677 -0.726768 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER -0.0165234 -0.743272 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 
+   txt002 
+ SPHERE CENTER 0.690426 -0.508983 1.83812e-16 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.767658 -0.47411 -0.0436186 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.749038 -0.489758 -0.0478724 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.744501 -0.467528 -0.0381316 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.774562 -0.469146 -0.0204376 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.751405 -0.462564 -0.0149506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.762845 -0.47983 -0.00151032 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.779098 -0.491377 -0.0301783 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.767382 -0.502061 -0.0112511 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760478 -0.507025 -0.0344321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.703418 -0.481931 -0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.716184 -0.491475 -0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.694124 -0.500827 -0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682902 -0.46889 -0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.673608 -0.487786 -0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675152 -0.465393 -0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704962 -0.459538 -0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697211 -0.456041 -0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.717727 -0.469082 -0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.714226 -0.418941 -0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.724842 -0.44101 -0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.704751 -0.43889 -0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.692283 -0.414215 -0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682808 -0.434163 -0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680957 -0.431557 0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.712374 -0.416335 0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701048 -0.433677 0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.722991 -0.438403 0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.773394 -0.506594 0.0468401 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.764807 -0.507924 0.0237283 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755462 -0.491321 0.0394341 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.759287 -0.514012 0.065698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.741355 -0.49874 0.058292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.736593 -0.522762 0.0614442 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.768632 -0.530616 0.0499923 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.745938 -0.539365 0.0457385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760045 -0.531946 0.0268805 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.709346 -0.447385 0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.721188 -0.46231 0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.703286 -0.447429 0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.685816 -0.451907 0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.679757 -0.451951 0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674129 -0.471354 0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.703718 -0.466788 0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.692031 -0.486235 0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.71556 -0.481713 0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.693658 -0.538818 0.0904587 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.708875 -0.534075 0.0716007 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.691194 -0.517905 0.0775657 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669969 -0.544274 0.0861356 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.667505 -0.523361 0.0732426 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661495 -0.544988 0.0629546 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.687649 -0.560445 0.0801706 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.679176 -0.561158 0.0569896 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.702866 -0.555702 0.0613127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.767402 -0.560084 -0.0233819 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755145 -0.53997 -0.0307879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.760285 -0.543179 -0.00685171 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.755725 -0.577608 -0.0104889 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.748608 -0.560703 0.00604126 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.731791 -0.575017 -0.00500196 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.750585 -0.574398 -0.0344251 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.726651 -0.571808 -0.0289382 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.738328 -0.554284 -0.0418311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.682851 -0.601808 0.0202367 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.700216 -0.58454 0.0170845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680568 -0.579842 0.0312799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.660588 -0.59895 0.00994863 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.658304 -0.576984 0.0209919 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65569 -0.578824 -0.00349164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680237 -0.603648 -0.0042468 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675339 -0.583522 -0.0176871 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697602 -0.58638 -0.00739901 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.687731 -0.573364 -0.070222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.703871 -0.56324 -0.0545162 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682033 -0.571303 -0.0462858 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.667055 -0.561258 -0.076187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661356 -0.559196 -0.0522508 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.662518 -0.539027 -0.0664462 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.688893 -0.553195 -0.0844174 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.684356 -0.530964 -0.0746767 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.705033 -0.543071 -0.0687117 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.626214 -0.316595 -0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624401 -0.335868 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606941 -0.318408 -0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.631217 -0.294133 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.611945 -0.295946 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634407 -0.290942 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.648676 -0.311592 -0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651867 -0.308402 -0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.646863 -0.330864 -0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.623201 -0.403702 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.635431 -0.385946 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62031 -0.401066 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.598766 -0.401947 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.595876 -0.399312 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586561 -0.382437 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.613886 -0.386827 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.601681 -0.367317 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626116 -0.369071 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.539107 -0.319608 -0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541743 -0.322499 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.556863 -0.307378 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555982 -0.328923 -0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.573738 -0.316693 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575492 -0.341128 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.540862 -0.344043 -0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560372 -0.356248 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.543497 -0.346933 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.637402 -0.248969 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.646193 -0.271807 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625088 -0.268363 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617105 -0.241698 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604791 -0.261092 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605598 -0.257264 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638209 -0.245142 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626702 -0.260708 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647 -0.267979 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.550934 -0.258608 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.613271 -0.265398 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627912 -0.281225 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610787 -0.26842 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.589337 -0.270625 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.586853 -0.273647 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.580045 -0.291679 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.606463 -0.283431 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.59717 -0.304484 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621104 -0.299257 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.69384 -0.305407 -0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674446 -0.317721 -0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671002 -0.296616 -0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.697667 -0.3046 -0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.67483 -0.295809 -0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.682101 -0.316107 -0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.701111 -0.325704 -0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.685545 -0.337211 -0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681717 -0.338018 -0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.677411 -0.329538 -0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674389 -0.332022 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.661584 -0.314897 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659378 -0.336346 -0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.643552 -0.321705 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.638325 -0.345639 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.672184 -0.353472 -0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.65113 -0.362764 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669162 -0.355956 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684201 -0.391875 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.672915 -0.269894 0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666987 -0.293281 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.649528 -0.275822 0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665573 -0.259777 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.642185 -0.265705 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.652302 -0.273047 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.683032 -0.277236 0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669762 -0.290507 0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.677104 -0.300624 0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.663448 -0.328536 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.639482 -0.329516 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.654603 -0.314396 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.680322 -0.33785 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.671477 -0.32371 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.673232 -0.348145 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.665202 -0.35297 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.658111 -0.363265 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.641237 -0.353951 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.614273 -0.279361 0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628413 -0.288206 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.613293 -0.303327 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.589839 -0.277607 0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588858 -0.301572 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.579544 -0.284698 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604959 -0.262487 0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.594664 -0.269578 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.619099 -0.271332 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.621535 -0.258061 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634468 -0.275921 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616678 -0.264057 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.597842 -0.261795 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.592985 -0.267791 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587082 -0.28339 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.615632 -0.27366 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604872 -0.295255 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628565 -0.29152 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.550934 -0.258608 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570229 -0.267823 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535813 -0.273728 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539989 -0.298064 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555109 -0.282943 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.55307 -0.320611 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57665 -0.325005 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.563845 -0.30788 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535038 -0.327419 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.545813 -0.314688 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.540585 -0.338621 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547843 -0.344544 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.553391 -0.355747 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571423 -0.348938 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684748 -0.321274 0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.678752 -0.326131 0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.666888 -0.308341 0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669149 -0.327177 0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.651289 -0.314244 0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.647554 -0.337937 0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.681014 -0.344967 0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659419 -0.355727 0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.675018 -0.349824 0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.622198 -0.389739 0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.63493 -0.378964 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617804 -0.366159 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.598265 -0.394966 0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593871 -0.371386 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587062 -0.389418 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61539 -0.407771 0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.604188 -0.402224 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628121 -0.396997 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.684201 -0.391875 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.674986 -0.37258 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.669081 -0.406996 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.644745 -0.40282 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.659866 -0.3877 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.633406 -0.663938 0.160875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626429 -0.65892 0.137727 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617928 -0.64522 0.156428 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617206 -0.673539 0.176845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.601728 -0.654822 0.172398 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.59403 -0.678123 0.169668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625707 -0.687239 0.158144 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602531 -0.691822 0.150967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.61873 -0.682221 0.134996 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.63767 -0.608008 0.0834188 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.620102 -0.623239 0.0751099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.613891 -0.601637 0.0853287 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.640545 -0.604555 0.107698 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616766 -0.598184 0.109608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.625852 -0.616334 0.123668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.646756 -0.626157 0.0974792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.632063 -0.637936 0.113449 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.629188 -0.641389 0.0891702 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.601562 -0.580238 0.162601 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605914 -0.59781 0.14581 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.587563 -0.581665 0.142311 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.581295 -0.581346 0.176661 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.567297 -0.582773 0.156372 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.565381 -0.600026 0.173931 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.599646 -0.597491 0.18016 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.583732 -0.616171 0.177429 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.603999 -0.615063 0.163369 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.547376 -0.70016 0.188567 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.564621 -0.690564 0.173728 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546319 -0.676324 0.182211 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.524351 -0.703396 0.180258 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523294 -0.679561 0.173902 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.518571 -0.697037 0.157111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542652 -0.717636 0.171776 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536873 -0.711276 0.148628 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.559898 -0.70804 0.156937 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.516313 -0.60809 0.190293 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538029 -0.616221 0.181811 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.524375 -0.60089 0.168094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495298 -0.616065 0.180075 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.50336 -0.608865 0.157875 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495999 -0.632172 0.161374 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508952 -0.631397 0.193792 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.509653 -0.647504 0.175091 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.530668 -0.639529 0.18531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.466887 -0.67091 0.138803 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490138 -0.671107 0.147112 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480853 -0.650637 0.136894 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46246 -0.670147 0.114524 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.476425 -0.649874 0.112614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.481283 -0.669581 0.0985541 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471745 -0.690617 0.124743 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490567 -0.690052 0.108773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.494995 -0.690815 0.133052 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.597914 -0.729812 0.109385 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602084 -0.70632 0.103028 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.592661 -0.711617 0.125228 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.574755 -0.738161 0.111295 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.569503 -0.719965 0.127138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.555767 -0.723017 0.106848 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.584178 -0.732864 0.0890951 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.565189 -0.71772 0.0846485 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.588348 -0.709372 0.0827387 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.511567 -0.712906 0.0596212 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529503 -0.710453 0.0764123 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.507717 -0.699372 0.079911 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.505104 -0.693665 0.0455609 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.501254 -0.680131 0.0658506 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.516576 -0.671972 0.0482916 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.526889 -0.704747 0.0420622 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538362 -0.683054 0.044793 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.544826 -0.702295 0.0588533 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.605761 -0.658095 0.0319289 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.58746 -0.643855 0.0404111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.607672 -0.647455 0.0541285 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609975 -0.680174 0.0421477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.611885 -0.669535 0.0643473 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.595887 -0.688013 0.0608487 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.589763 -0.676573 0.0284303 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575674 -0.684413 0.0471312 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571461 -0.662334 0.0369125 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.518106 -0.424703 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.522721 -0.437548 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.505261 -0.420089 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497031 -0.428319 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484186 -0.423704 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48057 -0.44478 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.51449 -0.445778 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498029 -0.462239 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.519105 -0.458623 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.560583 -0.44013 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.53742 -0.431578 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560583 -0.44013 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.53742 -0.431578 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.452233 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.566118 -0.460785 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548489 -0.472887 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.548489 -0.472887 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.502679 -0.382226 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.511231 -0.405389 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.482024 -0.376691 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.469922 -0.39432 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.469922 -0.39432 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.502679 -0.382226 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.399854 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.511231 -0.405389 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.427669 -0.446904 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.450155 -0.45293 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436486 -0.436486 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.407609 -0.454311 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.416426 -0.443892 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410035 -0.467742 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.421278 -0.470754 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.423704 -0.484186 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.443764 -0.47678 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.414851 -0.39469 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434147 -0.403906 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.434147 -0.403906 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399731 -0.409811 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403906 -0.434147 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399731 -0.409811 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.403906 -0.434147 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.419026 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.378536 -0.488909 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39432 -0.469922 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378536 -0.488909 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.39432 -0.469922 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.490576 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384071 -0.509564 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405389 -0.511231 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.405389 -0.511231 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.495905 -0.51514 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506323 -0.506323 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.48988 -0.492654 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472055 -0.521531 0.30328 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46603 -0.499045 0.295049 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.458623 -0.519105 0.282703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.488498 -0.5352 0.290934 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.475067 -0.532774 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498917 -0.526383 0.270358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.4539 -0.564273 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472887 -0.548489 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433245 -0.558738 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.431578 -0.53742 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.431578 -0.53742 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4539 -0.564273 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.542955 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.472887 -0.548489 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.548119 -0.527958 0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538903 -0.508662 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.538903 -0.508662 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532998 -0.543078 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.246914 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508662 -0.538903 0.234568 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532998 -0.543078 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508662 -0.538903 0.209877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.523783 0.197531 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.316595 -0.626214 0.202664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335868 -0.624401 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318408 -0.606941 0.187336 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.294133 -0.631217 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295946 -0.611945 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290942 -0.634407 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.311592 -0.648676 0.193717 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308402 -0.651867 0.169441 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.330864 -0.646863 0.178389 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.405245 -0.601704 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.402224 -0.604188 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.389418 -0.587062 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.387213 -0.608512 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.371386 -0.593871 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.366159 -0.617804 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.400018 -0.625637 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.378964 -0.63493 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396997 -0.628121 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.341105 -0.537564 0.175614 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355747 -0.553391 0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338621 -0.540585 0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317172 -0.542791 0.178701 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.314688 -0.545813 0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.30788 -0.563845 0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.334297 -0.555596 0.191046 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.325005 -0.57665 0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.348938 -0.571423 0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.245336 -0.623429 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268271 -0.624736 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.260997 -0.604627 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2416 -0.624589 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.257262 -0.605787 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.2608 -0.627055 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.248874 -0.644697 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268073 -0.647163 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271809 -0.646004 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.278768 -0.530773 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.266942 -0.591774 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269578 -0.594664 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.284698 -0.579544 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.283817 -0.601088 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.301572 -0.588858 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.303327 -0.613293 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.268696 -0.616209 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.288206 -0.628413 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.271332 -0.619099 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.31938 -0.697473 0.138161 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.338182 -0.681812 0.134867 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.318074 -0.674538 0.147213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298112 -0.693935 0.126127 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.296805 -0.671 0.135179 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295646 -0.674736 0.110799 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.31822 -0.701209 0.113782 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.315754 -0.682009 0.0984536 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.337022 -0.685547 0.110488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.351035 -0.675867 0.0466081 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.363265 -0.658111 0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.348145 -0.673232 0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3266 -0.674113 0.0435217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.32371 -0.671477 0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.314396 -0.654603 0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.341721 -0.658993 0.031176 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.329516 -0.639482 0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.353951 -0.641237 0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.412036 -0.664041 0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.639472 -0.678928 -0.137375 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.621631 -0.664108 -0.145845 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.629767 -0.661636 -0.122663 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.634214 -0.696205 -0.120537 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.624508 -0.678912 -0.105825 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.611115 -0.698662 -0.112168 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.626079 -0.698678 -0.143718 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.602979 -0.701135 -0.135349 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.608237 -0.683858 -0.152187 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.63057 -0.595495 -0.139672 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.617371 -0.615286 -0.146288 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605919 -0.594239 -0.140323 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.630343 -0.587782 -0.116217 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605692 -0.586526 -0.116868 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616917 -0.59986 -0.0993785 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.641795 -0.608828 -0.122182 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628369 -0.620906 -0.105343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.628595 -0.628619 -0.128798 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.631982 -0.640648 -0.0560094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.62585 -0.64267 -0.0798417 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.614812 -0.625749 -0.0656463 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.616044 -0.647702 -0.0385197 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.598874 -0.632802 -0.0481565 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.593974 -0.656777 -0.0448623 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.627081 -0.664623 -0.0527151 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.605012 -0.673698 -0.0590577 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.620949 -0.666645 -0.0765474 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.563328 -0.73992 -0.108814 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.577348 -0.719679 -0.110668 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.559693 -0.720935 -0.0934517 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539553 -0.739118 -0.115431 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.535918 -0.720133 -0.100068 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529798 -0.718076 -0.1239 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.557208 -0.737863 -0.132647 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547453 -0.716821 -0.141116 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571228 -0.717623 -0.1345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.554862 -0.690713 -0.0274488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.570641 -0.682694 -0.0446649 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.552739 -0.667813 -0.0364345 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531333 -0.695235 -0.0334138 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.52921 -0.672335 -0.0423994 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523582 -0.691738 -0.0565949 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549235 -0.710116 -0.0416443 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541484 -0.706619 -0.0648253 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.565014 -0.702097 -0.0588603 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.474542 -0.688647 -0.0825505 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498226 -0.686417 -0.0759343 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.485132 -0.666351 -0.0818993 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.46786 -0.684788 -0.106005 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.47845 -0.662492 -0.105354 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484862 -0.678699 -0.122844 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.480953 -0.704854 -0.10004 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497955 -0.698765 -0.116879 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.504637 -0.702624 -0.093424 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.57563 -0.689897 -0.192477 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.585222 -0.673115 -0.177114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.575587 -0.693998 -0.168128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.551213 -0.693509 -0.193128 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.55117 -0.69761 -0.16878 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536388 -0.680339 -0.178416 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560848 -0.672626 -0.202114 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546023 -0.659456 -0.187402 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.57044 -0.655844 -0.186751 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.478525 -0.627785 -0.166213 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.484234 -0.630799 -0.142381 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497935 -0.615951 -0.156576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493066 -0.637394 -0.183703 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.512476 -0.62556 -0.174066 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.513317 -0.650016 -0.17736 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.479365 -0.652241 -0.169507 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.499616 -0.664864 -0.163165 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.485075 -0.655255 -0.145675 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.570049 -0.602201 -0.194773 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.582252 -0.615021 -0.177557 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.560414 -0.623084 -0.185788 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549372 -0.590095 -0.188808 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539737 -0.610978 -0.179823 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.540899 -0.590808 -0.165627 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.571211 -0.582032 -0.180578 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562738 -0.582745 -0.157397 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.583414 -0.594852 -0.163362 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.269894 -0.672915 -0.0882695 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.293281 -0.666987 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275822 -0.649528 -0.0830215 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.259777 -0.665573 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.265705 -0.642185 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273047 -0.652302 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.277236 -0.683032 -0.109563 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.290507 -0.669762 -0.125608 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.300624 -0.677104 -0.104315 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.350033 -0.661904 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.362764 -0.65113 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.345639 -0.638325 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.326099 -0.667131 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.321705 -0.643552 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.314897 -0.661584 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.343224 -0.679937 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332022 -0.674389 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355956 -0.669162 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.280905 -0.592776 -0.0342624 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.304484 -0.59717 -0.0401235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.291679 -0.580045 -0.0524691 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.262872 -0.599585 -0.0496945 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273647 -0.586853 -0.0679012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26842 -0.610787 -0.0709877 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.275678 -0.61671 -0.0373488 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.281225 -0.627912 -0.058642 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.299257 -0.621104 -0.0432099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.256944 -0.602632 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.26347 -0.606749 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.273158 -0.587686 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.27313 -0.606658 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.289344 -0.591712 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.295841 -0.614801 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263442 -0.62572 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.286153 -0.633864 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.269968 -0.629838 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.278768 -0.530773 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.298064 -0.539989 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.263648 -0.545894 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.267823 -0.570229 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.282943 -0.555109 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.342108 -0.551527 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.356248 -0.560372 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.341128 -0.575492 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317673 -0.549772 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.316693 -0.573738 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.307378 -0.556863 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332793 -0.534652 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.322499 -0.541743 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.346933 -0.543497 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.340177 -0.685865 -0.165118 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.355123 -0.669651 -0.154009 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.33606 -0.679339 -0.141664 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.317089 -0.679367 -0.170979 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.312971 -0.672841 -0.147525 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.308945 -0.656656 -0.165731 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.336151 -0.669679 -0.183325 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.328008 -0.646968 -0.178077 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.351097 -0.653465 -0.172216 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.391282 -0.600701 -0.18796 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.367317 -0.601681 -0.182099 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.382437 -0.586561 -0.169753 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.408157 -0.610016 -0.172528 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399312 -0.595876 -0.154321 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401066 -0.62031 -0.151235 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393037 -0.625136 -0.184873 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.385946 -0.635431 -0.16358 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.369071 -0.626116 -0.179012 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.412036 -0.664041 -0.111111 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40282 -0.644745 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.0864198 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 -0.0987654 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396915 -0.679161 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.37258 -0.674986 -0.123457 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.3877 -0.659866 -0.135802 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 
+   txt002 
+ SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.443014 -0.422853 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.449156 -0.418916 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.463412 -0.433171 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.435021 -0.445101 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455419 -0.455419 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.433171 -0.463412 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.420766 -0.430846 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.418916 -0.449156 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.426908 -0.426908 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.383576 -0.43509 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40305 -0.440308 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.406245 -0.428383 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.380381 -0.447015 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.40305 -0.440308 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396659 -0.464158 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.377186 -0.45894 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.393464 -0.476083 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396659 -0.464158 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.45894 -0.377186 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.476083 -0.393464 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.464158 -0.396659 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.43509 -0.383576 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440308 -0.40305 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.428383 -0.406245 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.447015 -0.380381 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.440308 -0.40305 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.464158 -0.396659 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.512375 -0.453047 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.493241 -0.465554 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.497443 -0.44229 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.531849 -0.447829 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.516916 -0.437072 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532187 -0.455118 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527647 -0.471093 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.527985 -0.478381 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.508512 -0.483599 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.538038 -0.404771 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532513 -0.427756 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.515053 -0.410297 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.529309 -0.396041 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.506323 -0.401567 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.515053 -0.410297 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.546768 -0.4135 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.532513 -0.427756 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.541242 -0.436486 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.565623 -0.483869 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.54615 -0.478651 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.549345 -0.466726 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.562428 -0.495794 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.54615 -0.478651 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539759 -0.502501 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.559233 -0.507719 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.536564 -0.514426 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.539759 -0.502501 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.461599 -0.535539 -0.292037 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478381 -0.527985 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.455118 -0.532187 -0.268448 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.443553 -0.520267 -0.299164 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.437072 -0.516916 -0.275576 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.44229 -0.497443 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.466817 -0.516065 -0.306292 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.465554 -0.493241 -0.296959 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.483599 -0.508512 -0.289831 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.507719 -0.559233 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.514426 -0.536564 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.502501 -0.539759 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.483869 -0.565623 -0.215094 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478651 -0.54615 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.466726 -0.549345 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.495794 -0.562428 -0.236478 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.478651 -0.54615 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.502501 -0.539759 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 
+   txt002 
+ SPHERE CENTER 0.404771 -0.538038 -0.207967 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.427756 -0.532513 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410297 -0.515053 -0.200839 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.396041 -0.529309 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.401567 -0.506323 -0.222222 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.410297 -0.515053 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.4135 -0.546768 -0.22935 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.427756 -0.532513 -0.243606 RAD 0.00617284 
+   txt002 
+ SPHERE CENTER 0.436486 -0.541242 -0.222222 RAD 0.00617284 
+   txt002 
+
+END_SCENE
diff --git a/examples/parallel_for/tacheon/dat/lattice.dat b/examples/parallel_for/tacheon/dat/lattice.dat
new file mode 100644
index 0000000..fc40ed8
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/lattice.dat
@@ -0,0 +1,18012 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 512 512 
+  VERBOSE 0
+
+CAMERA
+  ZOOM 1.0
+  ASPECTRATIO 1.0
+  ANTIALIASING 0
+  RAYDEPTH 8
+  CENTER 0.5625 1 0.9375
+  VIEWDIR 0 -0.707107 -0.707107
+  UPDIR 0.272166 0.680414 -0.680414
+
+END_CAMERA 
+
+LIGHT CENTER 2 0.5 0.5 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER -1 0.5 0.5 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 0.5 2 0.5 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 0.5 -1 0.5 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 0.5 0.5 2 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 0.5 0.5 -1 RAD 0.002 COLOR 0.5 0.5 0.5
+
+TEXDEF txt001 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0 RAD 0.03125 
+   txt001 
+TEXDEF txt002 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0 APEX 0.109531 0 0 RAD 0.0078125
+   txt002 
+TEXDEF txt003 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0 APEX 0 0.109531 0 RAD 0.0078125
+   txt003 
+TEXDEF txt004 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.0154687 APEX 0 0 0.109531 RAD 0.0078125
+   txt004 
+TEXDEF txt005 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.125 RAD 0.03125 
+   txt005 
+TEXDEF txt006 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.125 APEX 0.109531 0 0.125 RAD 0.0078125
+   txt006 
+TEXDEF txt007 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.125 APEX 0 0.109531 0.125 RAD 0.0078125
+   txt007 
+TEXDEF txt008 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.140469 APEX 0 0 0.234531 RAD 0.0078125
+   txt008 
+TEXDEF txt009 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.25 RAD 0.03125 
+   txt009 
+TEXDEF txt010 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.25 APEX 0.109531 0 0.25 RAD 0.0078125
+   txt010 
+TEXDEF txt011 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.25 APEX 0 0.109531 0.25 RAD 0.0078125
+   txt011 
+TEXDEF txt012 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.265469 APEX 0 0 0.359531 RAD 0.0078125
+   txt012 
+TEXDEF txt013 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.375 RAD 0.03125 
+   txt013 
+TEXDEF txt014 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.375 APEX 0.109531 0 0.375 RAD 0.0078125
+   txt014 
+TEXDEF txt015 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.375 APEX 0 0.109531 0.375 RAD 0.0078125
+   txt015 
+TEXDEF txt016 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.390469 APEX 0 0 0.484531 RAD 0.0078125
+   txt016 
+TEXDEF txt017 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.5 RAD 0.03125 
+   txt017 
+TEXDEF txt018 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.5 APEX 0.109531 0 0.5 RAD 0.0078125
+   txt018 
+TEXDEF txt019 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.5 APEX 0 0.109531 0.5 RAD 0.0078125
+   txt019 
+TEXDEF txt020 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.515469 APEX 0 0 0.609531 RAD 0.0078125
+   txt020 
+TEXDEF txt021 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.625 RAD 0.03125 
+   txt021 
+TEXDEF txt022 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.625 APEX 0.109531 0 0.625 RAD 0.0078125
+   txt022 
+TEXDEF txt023 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.625 APEX 0 0.109531 0.625 RAD 0.0078125
+   txt023 
+TEXDEF txt024 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.640469 APEX 0 0 0.734531 RAD 0.0078125
+   txt024 
+TEXDEF txt025 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.75 RAD 0.03125 
+   txt025 
+TEXDEF txt026 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.75 APEX 0.109531 0 0.75 RAD 0.0078125
+   txt026 
+TEXDEF txt027 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.75 APEX 0 0.109531 0.75 RAD 0.0078125
+   txt027 
+TEXDEF txt028 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.765469 APEX 0 0 0.859531 RAD 0.0078125
+   txt028 
+TEXDEF txt029 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 0.875 RAD 0.03125 
+   txt029 
+TEXDEF txt030 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 0.875 APEX 0.109531 0 0.875 RAD 0.0078125
+   txt030 
+TEXDEF txt031 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 0.875 APEX 0 0.109531 0.875 RAD 0.0078125
+   txt031 
+TEXDEF txt032 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0 0.890469 APEX 0 0 0.984531 RAD 0.0078125
+   txt032 
+TEXDEF txt033 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0 1 RAD 0.03125 
+   txt033 
+TEXDEF txt034 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0 1 APEX 0.109531 0 1 RAD 0.0078125
+   txt034 
+TEXDEF txt035 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.0154687 1 APEX 0 0.109531 1 RAD 0.0078125
+   txt035 
+TEXDEF txt036 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0 RAD 0.03125 
+   txt036 
+TEXDEF txt037 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0 APEX 0.109531 0.125 0 RAD 0.0078125
+   txt037 
+TEXDEF txt038 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0 APEX 0 0.234531 0 RAD 0.0078125
+   txt038 
+TEXDEF txt039 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.0154687 APEX 0 0.125 0.109531 RAD 0.0078125
+   txt039 
+TEXDEF txt040 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.125 RAD 0.03125 
+   txt040 
+TEXDEF txt041 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.125 APEX 0.109531 0.125 0.125 RAD 0.0078125
+   txt041 
+TEXDEF txt042 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.125 APEX 0 0.234531 0.125 RAD 0.0078125
+   txt042 
+TEXDEF txt043 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.140469 APEX 0 0.125 0.234531 RAD 0.0078125
+   txt043 
+TEXDEF txt044 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.25 RAD 0.03125 
+   txt044 
+TEXDEF txt045 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.25 APEX 0.109531 0.125 0.25 RAD 0.0078125
+   txt045 
+TEXDEF txt046 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.25 APEX 0 0.234531 0.25 RAD 0.0078125
+   txt046 
+TEXDEF txt047 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.265469 APEX 0 0.125 0.359531 RAD 0.0078125
+   txt047 
+TEXDEF txt048 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.375 RAD 0.03125 
+   txt048 
+TEXDEF txt049 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.375 APEX 0.109531 0.125 0.375 RAD 0.0078125
+   txt049 
+TEXDEF txt050 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.375 APEX 0 0.234531 0.375 RAD 0.0078125
+   txt050 
+TEXDEF txt051 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.390469 APEX 0 0.125 0.484531 RAD 0.0078125
+   txt051 
+TEXDEF txt052 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.5 RAD 0.03125 
+   txt052 
+TEXDEF txt053 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.5 APEX 0.109531 0.125 0.5 RAD 0.0078125
+   txt053 
+TEXDEF txt054 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.5 APEX 0 0.234531 0.5 RAD 0.0078125
+   txt054 
+TEXDEF txt055 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.515469 APEX 0 0.125 0.609531 RAD 0.0078125
+   txt055 
+TEXDEF txt056 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.625 RAD 0.03125 
+   txt056 
+TEXDEF txt057 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.625 APEX 0.109531 0.125 0.625 RAD 0.0078125
+   txt057 
+TEXDEF txt058 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.625 APEX 0 0.234531 0.625 RAD 0.0078125
+   txt058 
+TEXDEF txt059 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.640469 APEX 0 0.125 0.734531 RAD 0.0078125
+   txt059 
+TEXDEF txt060 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.75 RAD 0.03125 
+   txt060 
+TEXDEF txt061 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.75 APEX 0.109531 0.125 0.75 RAD 0.0078125
+   txt061 
+TEXDEF txt062 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.75 APEX 0 0.234531 0.75 RAD 0.0078125
+   txt062 
+TEXDEF txt063 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.765469 APEX 0 0.125 0.859531 RAD 0.0078125
+   txt063 
+TEXDEF txt064 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 0.875 RAD 0.03125 
+   txt064 
+TEXDEF txt065 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 0.875 APEX 0.109531 0.125 0.875 RAD 0.0078125
+   txt065 
+TEXDEF txt066 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 0.875 APEX 0 0.234531 0.875 RAD 0.0078125
+   txt066 
+TEXDEF txt067 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.125 0.890469 APEX 0 0.125 0.984531 RAD 0.0078125
+   txt067 
+TEXDEF txt068 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.125 1 RAD 0.03125 
+   txt068 
+TEXDEF txt069 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.125 1 APEX 0.109531 0.125 1 RAD 0.0078125
+   txt069 
+TEXDEF txt070 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.140469 1 APEX 0 0.234531 1 RAD 0.0078125
+   txt070 
+TEXDEF txt071 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0 RAD 0.03125 
+   txt071 
+TEXDEF txt072 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0 APEX 0.109531 0.25 0 RAD 0.0078125
+   txt072 
+TEXDEF txt073 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0 APEX 0 0.359531 0 RAD 0.0078125
+   txt073 
+TEXDEF txt074 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.0154687 APEX 0 0.25 0.109531 RAD 0.0078125
+   txt074 
+TEXDEF txt075 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.125 RAD 0.03125 
+   txt075 
+TEXDEF txt076 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.125 APEX 0.109531 0.25 0.125 RAD 0.0078125
+   txt076 
+TEXDEF txt077 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.125 APEX 0 0.359531 0.125 RAD 0.0078125
+   txt077 
+TEXDEF txt078 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.140469 APEX 0 0.25 0.234531 RAD 0.0078125
+   txt078 
+TEXDEF txt079 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.25 RAD 0.03125 
+   txt079 
+TEXDEF txt080 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.25 APEX 0.109531 0.25 0.25 RAD 0.0078125
+   txt080 
+TEXDEF txt081 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.25 APEX 0 0.359531 0.25 RAD 0.0078125
+   txt081 
+TEXDEF txt082 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.265469 APEX 0 0.25 0.359531 RAD 0.0078125
+   txt082 
+TEXDEF txt083 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.375 RAD 0.03125 
+   txt083 
+TEXDEF txt084 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.375 APEX 0.109531 0.25 0.375 RAD 0.0078125
+   txt084 
+TEXDEF txt085 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.375 APEX 0 0.359531 0.375 RAD 0.0078125
+   txt085 
+TEXDEF txt086 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.390469 APEX 0 0.25 0.484531 RAD 0.0078125
+   txt086 
+TEXDEF txt087 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.5 RAD 0.03125 
+   txt087 
+TEXDEF txt088 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.5 APEX 0.109531 0.25 0.5 RAD 0.0078125
+   txt088 
+TEXDEF txt089 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.5 APEX 0 0.359531 0.5 RAD 0.0078125
+   txt089 
+TEXDEF txt090 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.515469 APEX 0 0.25 0.609531 RAD 0.0078125
+   txt090 
+TEXDEF txt091 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.625 RAD 0.03125 
+   txt091 
+TEXDEF txt092 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.625 APEX 0.109531 0.25 0.625 RAD 0.0078125
+   txt092 
+TEXDEF txt093 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.625 APEX 0 0.359531 0.625 RAD 0.0078125
+   txt093 
+TEXDEF txt094 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.640469 APEX 0 0.25 0.734531 RAD 0.0078125
+   txt094 
+TEXDEF txt095 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.75 RAD 0.03125 
+   txt095 
+TEXDEF txt096 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.75 APEX 0.109531 0.25 0.75 RAD 0.0078125
+   txt096 
+TEXDEF txt097 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.75 APEX 0 0.359531 0.75 RAD 0.0078125
+   txt097 
+TEXDEF txt098 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.765469 APEX 0 0.25 0.859531 RAD 0.0078125
+   txt098 
+TEXDEF txt099 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 0.875 RAD 0.03125 
+   txt099 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 0.875 APEX 0.109531 0.25 0.875 RAD 0.0078125
+   txt100 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 0.875 APEX 0 0.359531 0.875 RAD 0.0078125
+   txt101 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.25 0.890469 APEX 0 0.25 0.984531 RAD 0.0078125
+   txt102 
+TEXDEF txt103 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.25 1 RAD 0.03125 
+   txt103 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.25 1 APEX 0.109531 0.25 1 RAD 0.0078125
+   txt104 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.265469 1 APEX 0 0.359531 1 RAD 0.0078125
+   txt105 
+TEXDEF txt106 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0 RAD 0.03125 
+   txt106 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0 APEX 0.109531 0.375 0 RAD 0.0078125
+   txt107 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0 APEX 0 0.484531 0 RAD 0.0078125
+   txt108 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.0154687 APEX 0 0.375 0.109531 RAD 0.0078125
+   txt109 
+TEXDEF txt110 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.125 RAD 0.03125 
+   txt110 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.125 APEX 0.109531 0.375 0.125 RAD 0.0078125
+   txt111 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.125 APEX 0 0.484531 0.125 RAD 0.0078125
+   txt112 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.140469 APEX 0 0.375 0.234531 RAD 0.0078125
+   txt113 
+TEXDEF txt114 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.25 RAD 0.03125 
+   txt114 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.25 APEX 0.109531 0.375 0.25 RAD 0.0078125
+   txt115 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.25 APEX 0 0.484531 0.25 RAD 0.0078125
+   txt116 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.265469 APEX 0 0.375 0.359531 RAD 0.0078125
+   txt117 
+TEXDEF txt118 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.375 RAD 0.03125 
+   txt118 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.375 APEX 0.109531 0.375 0.375 RAD 0.0078125
+   txt119 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.375 APEX 0 0.484531 0.375 RAD 0.0078125
+   txt120 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.390469 APEX 0 0.375 0.484531 RAD 0.0078125
+   txt121 
+TEXDEF txt122 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.5 RAD 0.03125 
+   txt122 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.5 APEX 0.109531 0.375 0.5 RAD 0.0078125
+   txt123 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.5 APEX 0 0.484531 0.5 RAD 0.0078125
+   txt124 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.515469 APEX 0 0.375 0.609531 RAD 0.0078125
+   txt125 
+TEXDEF txt126 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.625 RAD 0.03125 
+   txt126 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.625 APEX 0.109531 0.375 0.625 RAD 0.0078125
+   txt127 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.625 APEX 0 0.484531 0.625 RAD 0.0078125
+   txt128 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.640469 APEX 0 0.375 0.734531 RAD 0.0078125
+   txt129 
+TEXDEF txt130 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.75 RAD 0.03125 
+   txt130 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.75 APEX 0.109531 0.375 0.75 RAD 0.0078125
+   txt131 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.75 APEX 0 0.484531 0.75 RAD 0.0078125
+   txt132 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.765469 APEX 0 0.375 0.859531 RAD 0.0078125
+   txt133 
+TEXDEF txt134 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 0.875 RAD 0.03125 
+   txt134 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 0.875 APEX 0.109531 0.375 0.875 RAD 0.0078125
+   txt135 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 0.875 APEX 0 0.484531 0.875 RAD 0.0078125
+   txt136 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.375 0.890469 APEX 0 0.375 0.984531 RAD 0.0078125
+   txt137 
+TEXDEF txt138 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.375 1 RAD 0.03125 
+   txt138 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.375 1 APEX 0.109531 0.375 1 RAD 0.0078125
+   txt139 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.390469 1 APEX 0 0.484531 1 RAD 0.0078125
+   txt140 
+TEXDEF txt141 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0 RAD 0.03125 
+   txt141 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0 APEX 0.109531 0.5 0 RAD 0.0078125
+   txt142 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0 APEX 0 0.609531 0 RAD 0.0078125
+   txt143 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.0154687 APEX 0 0.5 0.109531 RAD 0.0078125
+   txt144 
+TEXDEF txt145 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.125 RAD 0.03125 
+   txt145 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.125 APEX 0.109531 0.5 0.125 RAD 0.0078125
+   txt146 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.125 APEX 0 0.609531 0.125 RAD 0.0078125
+   txt147 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.140469 APEX 0 0.5 0.234531 RAD 0.0078125
+   txt148 
+TEXDEF txt149 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.25 RAD 0.03125 
+   txt149 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.25 APEX 0.109531 0.5 0.25 RAD 0.0078125
+   txt150 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.25 APEX 0 0.609531 0.25 RAD 0.0078125
+   txt151 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.265469 APEX 0 0.5 0.359531 RAD 0.0078125
+   txt152 
+TEXDEF txt153 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.375 RAD 0.03125 
+   txt153 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.375 APEX 0.109531 0.5 0.375 RAD 0.0078125
+   txt154 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.375 APEX 0 0.609531 0.375 RAD 0.0078125
+   txt155 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.390469 APEX 0 0.5 0.484531 RAD 0.0078125
+   txt156 
+TEXDEF txt157 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.5 RAD 0.03125 
+   txt157 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.5 APEX 0.109531 0.5 0.5 RAD 0.0078125
+   txt158 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.5 APEX 0 0.609531 0.5 RAD 0.0078125
+   txt159 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.515469 APEX 0 0.5 0.609531 RAD 0.0078125
+   txt160 
+TEXDEF txt161 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.625 RAD 0.03125 
+   txt161 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.625 APEX 0.109531 0.5 0.625 RAD 0.0078125
+   txt162 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.625 APEX 0 0.609531 0.625 RAD 0.0078125
+   txt163 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.640469 APEX 0 0.5 0.734531 RAD 0.0078125
+   txt164 
+TEXDEF txt165 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.75 RAD 0.03125 
+   txt165 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.75 APEX 0.109531 0.5 0.75 RAD 0.0078125
+   txt166 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.75 APEX 0 0.609531 0.75 RAD 0.0078125
+   txt167 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.765469 APEX 0 0.5 0.859531 RAD 0.0078125
+   txt168 
+TEXDEF txt169 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 0.875 RAD 0.03125 
+   txt169 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 0.875 APEX 0.109531 0.5 0.875 RAD 0.0078125
+   txt170 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 0.875 APEX 0 0.609531 0.875 RAD 0.0078125
+   txt171 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.5 0.890469 APEX 0 0.5 0.984531 RAD 0.0078125
+   txt172 
+TEXDEF txt173 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.5 1 RAD 0.03125 
+   txt173 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.5 1 APEX 0.109531 0.5 1 RAD 0.0078125
+   txt174 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.515469 1 APEX 0 0.609531 1 RAD 0.0078125
+   txt175 
+TEXDEF txt176 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0 RAD 0.03125 
+   txt176 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0 APEX 0.109531 0.625 0 RAD 0.0078125
+   txt177 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0 APEX 0 0.734531 0 RAD 0.0078125
+   txt178 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.0154687 APEX 0 0.625 0.109531 RAD 0.0078125
+   txt179 
+TEXDEF txt180 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.125 RAD 0.03125 
+   txt180 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.125 APEX 0.109531 0.625 0.125 RAD 0.0078125
+   txt181 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.125 APEX 0 0.734531 0.125 RAD 0.0078125
+   txt182 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.140469 APEX 0 0.625 0.234531 RAD 0.0078125
+   txt183 
+TEXDEF txt184 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.25 RAD 0.03125 
+   txt184 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.25 APEX 0.109531 0.625 0.25 RAD 0.0078125
+   txt185 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.25 APEX 0 0.734531 0.25 RAD 0.0078125
+   txt186 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.265469 APEX 0 0.625 0.359531 RAD 0.0078125
+   txt187 
+TEXDEF txt188 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.375 RAD 0.03125 
+   txt188 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.375 APEX 0.109531 0.625 0.375 RAD 0.0078125
+   txt189 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.375 APEX 0 0.734531 0.375 RAD 0.0078125
+   txt190 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.390469 APEX 0 0.625 0.484531 RAD 0.0078125
+   txt191 
+TEXDEF txt192 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.5 RAD 0.03125 
+   txt192 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.5 APEX 0.109531 0.625 0.5 RAD 0.0078125
+   txt193 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.5 APEX 0 0.734531 0.5 RAD 0.0078125
+   txt194 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.515469 APEX 0 0.625 0.609531 RAD 0.0078125
+   txt195 
+TEXDEF txt196 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.625 RAD 0.03125 
+   txt196 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.625 APEX 0.109531 0.625 0.625 RAD 0.0078125
+   txt197 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.625 APEX 0 0.734531 0.625 RAD 0.0078125
+   txt198 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.640469 APEX 0 0.625 0.734531 RAD 0.0078125
+   txt199 
+TEXDEF txt200 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.75 RAD 0.03125 
+   txt200 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.75 APEX 0.109531 0.625 0.75 RAD 0.0078125
+   txt201 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.75 APEX 0 0.734531 0.75 RAD 0.0078125
+   txt202 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.765469 APEX 0 0.625 0.859531 RAD 0.0078125
+   txt203 
+TEXDEF txt204 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 0.875 RAD 0.03125 
+   txt204 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 0.875 APEX 0.109531 0.625 0.875 RAD 0.0078125
+   txt205 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 0.875 APEX 0 0.734531 0.875 RAD 0.0078125
+   txt206 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.625 0.890469 APEX 0 0.625 0.984531 RAD 0.0078125
+   txt207 
+TEXDEF txt208 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.625 1 RAD 0.03125 
+   txt208 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.625 1 APEX 0.109531 0.625 1 RAD 0.0078125
+   txt209 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.640469 1 APEX 0 0.734531 1 RAD 0.0078125
+   txt210 
+TEXDEF txt211 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0 RAD 0.03125 
+   txt211 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0 APEX 0.109531 0.75 0 RAD 0.0078125
+   txt212 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0 APEX 0 0.859531 0 RAD 0.0078125
+   txt213 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.0154687 APEX 0 0.75 0.109531 RAD 0.0078125
+   txt214 
+TEXDEF txt215 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.125 RAD 0.03125 
+   txt215 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.125 APEX 0.109531 0.75 0.125 RAD 0.0078125
+   txt216 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.125 APEX 0 0.859531 0.125 RAD 0.0078125
+   txt217 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.140469 APEX 0 0.75 0.234531 RAD 0.0078125
+   txt218 
+TEXDEF txt219 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.25 RAD 0.03125 
+   txt219 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.25 APEX 0.109531 0.75 0.25 RAD 0.0078125
+   txt220 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.25 APEX 0 0.859531 0.25 RAD 0.0078125
+   txt221 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.265469 APEX 0 0.75 0.359531 RAD 0.0078125
+   txt222 
+TEXDEF txt223 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.375 RAD 0.03125 
+   txt223 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.375 APEX 0.109531 0.75 0.375 RAD 0.0078125
+   txt224 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.375 APEX 0 0.859531 0.375 RAD 0.0078125
+   txt225 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.390469 APEX 0 0.75 0.484531 RAD 0.0078125
+   txt226 
+TEXDEF txt227 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.5 RAD 0.03125 
+   txt227 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.5 APEX 0.109531 0.75 0.5 RAD 0.0078125
+   txt228 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.5 APEX 0 0.859531 0.5 RAD 0.0078125
+   txt229 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.515469 APEX 0 0.75 0.609531 RAD 0.0078125
+   txt230 
+TEXDEF txt231 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.625 RAD 0.03125 
+   txt231 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.625 APEX 0.109531 0.75 0.625 RAD 0.0078125
+   txt232 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.625 APEX 0 0.859531 0.625 RAD 0.0078125
+   txt233 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.640469 APEX 0 0.75 0.734531 RAD 0.0078125
+   txt234 
+TEXDEF txt235 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.75 RAD 0.03125 
+   txt235 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.75 APEX 0.109531 0.75 0.75 RAD 0.0078125
+   txt236 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.75 APEX 0 0.859531 0.75 RAD 0.0078125
+   txt237 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.765469 APEX 0 0.75 0.859531 RAD 0.0078125
+   txt238 
+TEXDEF txt239 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 0.875 RAD 0.03125 
+   txt239 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 0.875 APEX 0.109531 0.75 0.875 RAD 0.0078125
+   txt240 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 0.875 APEX 0 0.859531 0.875 RAD 0.0078125
+   txt241 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.75 0.890469 APEX 0 0.75 0.984531 RAD 0.0078125
+   txt242 
+TEXDEF txt243 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.75 1 RAD 0.03125 
+   txt243 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.75 1 APEX 0.109531 0.75 1 RAD 0.0078125
+   txt244 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.765469 1 APEX 0 0.859531 1 RAD 0.0078125
+   txt245 
+TEXDEF txt246 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0 RAD 0.03125 
+   txt246 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0 APEX 0.109531 0.875 0 RAD 0.0078125
+   txt247 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0 APEX 0 0.984531 0 RAD 0.0078125
+   txt248 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.0154687 APEX 0 0.875 0.109531 RAD 0.0078125
+   txt249 
+TEXDEF txt250 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.125 RAD 0.03125 
+   txt250 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.125 APEX 0.109531 0.875 0.125 RAD 0.0078125
+   txt251 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.125 APEX 0 0.984531 0.125 RAD 0.0078125
+   txt252 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.140469 APEX 0 0.875 0.234531 RAD 0.0078125
+   txt253 
+TEXDEF txt254 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.25 RAD 0.03125 
+   txt254 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.25 APEX 0.109531 0.875 0.25 RAD 0.0078125
+   txt255 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.25 APEX 0 0.984531 0.25 RAD 0.0078125
+   txt256 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.265469 APEX 0 0.875 0.359531 RAD 0.0078125
+   txt257 
+TEXDEF txt258 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.375 RAD 0.03125 
+   txt258 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.375 APEX 0.109531 0.875 0.375 RAD 0.0078125
+   txt259 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.375 APEX 0 0.984531 0.375 RAD 0.0078125
+   txt260 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.390469 APEX 0 0.875 0.484531 RAD 0.0078125
+   txt261 
+TEXDEF txt262 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.5 RAD 0.03125 
+   txt262 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.5 APEX 0.109531 0.875 0.5 RAD 0.0078125
+   txt263 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.5 APEX 0 0.984531 0.5 RAD 0.0078125
+   txt264 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.515469 APEX 0 0.875 0.609531 RAD 0.0078125
+   txt265 
+TEXDEF txt266 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.625 RAD 0.03125 
+   txt266 
+TEXDEF txt267 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.625 APEX 0.109531 0.875 0.625 RAD 0.0078125
+   txt267 
+TEXDEF txt268 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.625 APEX 0 0.984531 0.625 RAD 0.0078125
+   txt268 
+TEXDEF txt269 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.640469 APEX 0 0.875 0.734531 RAD 0.0078125
+   txt269 
+TEXDEF txt270 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.75 RAD 0.03125 
+   txt270 
+TEXDEF txt271 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.75 APEX 0.109531 0.875 0.75 RAD 0.0078125
+   txt271 
+TEXDEF txt272 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.75 APEX 0 0.984531 0.75 RAD 0.0078125
+   txt272 
+TEXDEF txt273 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.765469 APEX 0 0.875 0.859531 RAD 0.0078125
+   txt273 
+TEXDEF txt274 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 0.875 RAD 0.03125 
+   txt274 
+TEXDEF txt275 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 0.875 APEX 0.109531 0.875 0.875 RAD 0.0078125
+   txt275 
+TEXDEF txt276 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 0.875 APEX 0 0.984531 0.875 RAD 0.0078125
+   txt276 
+TEXDEF txt277 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.875 0.890469 APEX 0 0.875 0.984531 RAD 0.0078125
+   txt277 
+TEXDEF txt278 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 0.875 1 RAD 0.03125 
+   txt278 
+TEXDEF txt279 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 0.875 1 APEX 0.109531 0.875 1 RAD 0.0078125
+   txt279 
+TEXDEF txt280 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 0.890469 1 APEX 0 0.984531 1 RAD 0.0078125
+   txt280 
+TEXDEF txt281 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0 RAD 0.03125 
+   txt281 
+TEXDEF txt282 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0 APEX 0.109531 1 0 RAD 0.0078125
+   txt282 
+TEXDEF txt283 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.0154687 APEX 0 1 0.109531 RAD 0.0078125
+   txt283 
+TEXDEF txt284 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.125 RAD 0.03125 
+   txt284 
+TEXDEF txt285 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.125 APEX 0.109531 1 0.125 RAD 0.0078125
+   txt285 
+TEXDEF txt286 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.140469 APEX 0 1 0.234531 RAD 0.0078125
+   txt286 
+TEXDEF txt287 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.25 RAD 0.03125 
+   txt287 
+TEXDEF txt288 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.25 APEX 0.109531 1 0.25 RAD 0.0078125
+   txt288 
+TEXDEF txt289 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.265469 APEX 0 1 0.359531 RAD 0.0078125
+   txt289 
+TEXDEF txt290 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.375 RAD 0.03125 
+   txt290 
+TEXDEF txt291 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.375 APEX 0.109531 1 0.375 RAD 0.0078125
+   txt291 
+TEXDEF txt292 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.390469 APEX 0 1 0.484531 RAD 0.0078125
+   txt292 
+TEXDEF txt293 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.5 RAD 0.03125 
+   txt293 
+TEXDEF txt294 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.5 APEX 0.109531 1 0.5 RAD 0.0078125
+   txt294 
+TEXDEF txt295 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.515469 APEX 0 1 0.609531 RAD 0.0078125
+   txt295 
+TEXDEF txt296 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.625 RAD 0.03125 
+   txt296 
+TEXDEF txt297 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.625 APEX 0.109531 1 0.625 RAD 0.0078125
+   txt297 
+TEXDEF txt298 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.640469 APEX 0 1 0.734531 RAD 0.0078125
+   txt298 
+TEXDEF txt299 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.75 RAD 0.03125 
+   txt299 
+TEXDEF txt300 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.75 APEX 0.109531 1 0.75 RAD 0.0078125
+   txt300 
+TEXDEF txt301 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.765469 APEX 0 1 0.859531 RAD 0.0078125
+   txt301 
+TEXDEF txt302 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 0.875 RAD 0.03125 
+   txt302 
+TEXDEF txt303 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 0.875 APEX 0.109531 1 0.875 RAD 0.0078125
+   txt303 
+TEXDEF txt304 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0 1 0.890469 APEX 0 1 0.984531 RAD 0.0078125
+   txt304 
+TEXDEF txt305 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0 1 1 RAD 0.03125 
+   txt305 
+TEXDEF txt306 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.0154687 1 1 APEX 0.109531 1 1 RAD 0.0078125
+   txt306 
+TEXDEF txt307 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0 RAD 0.03125 
+   txt307 
+TEXDEF txt308 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0 APEX 0.234531 0 0 RAD 0.0078125
+   txt308 
+TEXDEF txt309 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0 APEX 0.125 0.109531 0 RAD 0.0078125
+   txt309 
+TEXDEF txt310 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.0154687 APEX 0.125 0 0.109531 RAD 0.0078125
+   txt310 
+TEXDEF txt311 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.125 RAD 0.03125 
+   txt311 
+TEXDEF txt312 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.125 APEX 0.234531 0 0.125 RAD 0.0078125
+   txt312 
+TEXDEF txt313 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.125 APEX 0.125 0.109531 0.125 RAD 0.0078125
+   txt313 
+TEXDEF txt314 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.140469 APEX 0.125 0 0.234531 RAD 0.0078125
+   txt314 
+TEXDEF txt315 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.25 RAD 0.03125 
+   txt315 
+TEXDEF txt316 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.25 APEX 0.234531 0 0.25 RAD 0.0078125
+   txt316 
+TEXDEF txt317 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.25 APEX 0.125 0.109531 0.25 RAD 0.0078125
+   txt317 
+TEXDEF txt318 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.265469 APEX 0.125 0 0.359531 RAD 0.0078125
+   txt318 
+TEXDEF txt319 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.375 RAD 0.03125 
+   txt319 
+TEXDEF txt320 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.375 APEX 0.234531 0 0.375 RAD 0.0078125
+   txt320 
+TEXDEF txt321 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.375 APEX 0.125 0.109531 0.375 RAD 0.0078125
+   txt321 
+TEXDEF txt322 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.390469 APEX 0.125 0 0.484531 RAD 0.0078125
+   txt322 
+TEXDEF txt323 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.5 RAD 0.03125 
+   txt323 
+TEXDEF txt324 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.5 APEX 0.234531 0 0.5 RAD 0.0078125
+   txt324 
+TEXDEF txt325 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.5 APEX 0.125 0.109531 0.5 RAD 0.0078125
+   txt325 
+TEXDEF txt326 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.515469 APEX 0.125 0 0.609531 RAD 0.0078125
+   txt326 
+TEXDEF txt327 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.625 RAD 0.03125 
+   txt327 
+TEXDEF txt328 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.625 APEX 0.234531 0 0.625 RAD 0.0078125
+   txt328 
+TEXDEF txt329 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.625 APEX 0.125 0.109531 0.625 RAD 0.0078125
+   txt329 
+TEXDEF txt330 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.640469 APEX 0.125 0 0.734531 RAD 0.0078125
+   txt330 
+TEXDEF txt331 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.75 RAD 0.03125 
+   txt331 
+TEXDEF txt332 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.75 APEX 0.234531 0 0.75 RAD 0.0078125
+   txt332 
+TEXDEF txt333 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.75 APEX 0.125 0.109531 0.75 RAD 0.0078125
+   txt333 
+TEXDEF txt334 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.765469 APEX 0.125 0 0.859531 RAD 0.0078125
+   txt334 
+TEXDEF txt335 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 0.875 RAD 0.03125 
+   txt335 
+TEXDEF txt336 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 0.875 APEX 0.234531 0 0.875 RAD 0.0078125
+   txt336 
+TEXDEF txt337 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 0.875 APEX 0.125 0.109531 0.875 RAD 0.0078125
+   txt337 
+TEXDEF txt338 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0 0.890469 APEX 0.125 0 0.984531 RAD 0.0078125
+   txt338 
+TEXDEF txt339 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0 1 RAD 0.03125 
+   txt339 
+TEXDEF txt340 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0 1 APEX 0.234531 0 1 RAD 0.0078125
+   txt340 
+TEXDEF txt341 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.0154687 1 APEX 0.125 0.109531 1 RAD 0.0078125
+   txt341 
+TEXDEF txt342 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0 RAD 0.03125 
+   txt342 
+TEXDEF txt343 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0 APEX 0.234531 0.125 0 RAD 0.0078125
+   txt343 
+TEXDEF txt344 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0 APEX 0.125 0.234531 0 RAD 0.0078125
+   txt344 
+TEXDEF txt345 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.0154687 APEX 0.125 0.125 0.109531 RAD 0.0078125
+   txt345 
+TEXDEF txt346 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.125 RAD 0.03125 
+   txt346 
+TEXDEF txt347 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.125 APEX 0.234531 0.125 0.125 RAD 0.0078125
+   txt347 
+TEXDEF txt348 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.125 APEX 0.125 0.234531 0.125 RAD 0.0078125
+   txt348 
+TEXDEF txt349 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.140469 APEX 0.125 0.125 0.234531 RAD 0.0078125
+   txt349 
+TEXDEF txt350 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.25 RAD 0.03125 
+   txt350 
+TEXDEF txt351 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.25 APEX 0.234531 0.125 0.25 RAD 0.0078125
+   txt351 
+TEXDEF txt352 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.25 APEX 0.125 0.234531 0.25 RAD 0.0078125
+   txt352 
+TEXDEF txt353 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.265469 APEX 0.125 0.125 0.359531 RAD 0.0078125
+   txt353 
+TEXDEF txt354 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.375 RAD 0.03125 
+   txt354 
+TEXDEF txt355 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.375 APEX 0.234531 0.125 0.375 RAD 0.0078125
+   txt355 
+TEXDEF txt356 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.375 APEX 0.125 0.234531 0.375 RAD 0.0078125
+   txt356 
+TEXDEF txt357 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.390469 APEX 0.125 0.125 0.484531 RAD 0.0078125
+   txt357 
+TEXDEF txt358 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.5 RAD 0.03125 
+   txt358 
+TEXDEF txt359 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.5 APEX 0.234531 0.125 0.5 RAD 0.0078125
+   txt359 
+TEXDEF txt360 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.5 APEX 0.125 0.234531 0.5 RAD 0.0078125
+   txt360 
+TEXDEF txt361 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.515469 APEX 0.125 0.125 0.609531 RAD 0.0078125
+   txt361 
+TEXDEF txt362 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.625 RAD 0.03125 
+   txt362 
+TEXDEF txt363 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.625 APEX 0.234531 0.125 0.625 RAD 0.0078125
+   txt363 
+TEXDEF txt364 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.625 APEX 0.125 0.234531 0.625 RAD 0.0078125
+   txt364 
+TEXDEF txt365 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.640469 APEX 0.125 0.125 0.734531 RAD 0.0078125
+   txt365 
+TEXDEF txt366 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.75 RAD 0.03125 
+   txt366 
+TEXDEF txt367 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.75 APEX 0.234531 0.125 0.75 RAD 0.0078125
+   txt367 
+TEXDEF txt368 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.75 APEX 0.125 0.234531 0.75 RAD 0.0078125
+   txt368 
+TEXDEF txt369 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.765469 APEX 0.125 0.125 0.859531 RAD 0.0078125
+   txt369 
+TEXDEF txt370 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 0.875 RAD 0.03125 
+   txt370 
+TEXDEF txt371 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 0.875 APEX 0.234531 0.125 0.875 RAD 0.0078125
+   txt371 
+TEXDEF txt372 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 0.875 APEX 0.125 0.234531 0.875 RAD 0.0078125
+   txt372 
+TEXDEF txt373 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.125 0.890469 APEX 0.125 0.125 0.984531 RAD 0.0078125
+   txt373 
+TEXDEF txt374 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.125 1 RAD 0.03125 
+   txt374 
+TEXDEF txt375 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.125 1 APEX 0.234531 0.125 1 RAD 0.0078125
+   txt375 
+TEXDEF txt376 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.140469 1 APEX 0.125 0.234531 1 RAD 0.0078125
+   txt376 
+TEXDEF txt377 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0 RAD 0.03125 
+   txt377 
+TEXDEF txt378 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0 APEX 0.234531 0.25 0 RAD 0.0078125
+   txt378 
+TEXDEF txt379 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0 APEX 0.125 0.359531 0 RAD 0.0078125
+   txt379 
+TEXDEF txt380 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.0154687 APEX 0.125 0.25 0.109531 RAD 0.0078125
+   txt380 
+TEXDEF txt381 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.125 RAD 0.03125 
+   txt381 
+TEXDEF txt382 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.125 APEX 0.234531 0.25 0.125 RAD 0.0078125
+   txt382 
+TEXDEF txt383 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.125 APEX 0.125 0.359531 0.125 RAD 0.0078125
+   txt383 
+TEXDEF txt384 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.140469 APEX 0.125 0.25 0.234531 RAD 0.0078125
+   txt384 
+TEXDEF txt385 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.25 RAD 0.03125 
+   txt385 
+TEXDEF txt386 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.25 APEX 0.234531 0.25 0.25 RAD 0.0078125
+   txt386 
+TEXDEF txt387 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.25 APEX 0.125 0.359531 0.25 RAD 0.0078125
+   txt387 
+TEXDEF txt388 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.265469 APEX 0.125 0.25 0.359531 RAD 0.0078125
+   txt388 
+TEXDEF txt389 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.375 RAD 0.03125 
+   txt389 
+TEXDEF txt390 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.375 APEX 0.234531 0.25 0.375 RAD 0.0078125
+   txt390 
+TEXDEF txt391 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.375 APEX 0.125 0.359531 0.375 RAD 0.0078125
+   txt391 
+TEXDEF txt392 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.390469 APEX 0.125 0.25 0.484531 RAD 0.0078125
+   txt392 
+TEXDEF txt393 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.5 RAD 0.03125 
+   txt393 
+TEXDEF txt394 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.5 APEX 0.234531 0.25 0.5 RAD 0.0078125
+   txt394 
+TEXDEF txt395 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.5 APEX 0.125 0.359531 0.5 RAD 0.0078125
+   txt395 
+TEXDEF txt396 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.515469 APEX 0.125 0.25 0.609531 RAD 0.0078125
+   txt396 
+TEXDEF txt397 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.625 RAD 0.03125 
+   txt397 
+TEXDEF txt398 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.625 APEX 0.234531 0.25 0.625 RAD 0.0078125
+   txt398 
+TEXDEF txt399 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.625 APEX 0.125 0.359531 0.625 RAD 0.0078125
+   txt399 
+TEXDEF txt400 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.640469 APEX 0.125 0.25 0.734531 RAD 0.0078125
+   txt400 
+TEXDEF txt401 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.75 RAD 0.03125 
+   txt401 
+TEXDEF txt402 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.75 APEX 0.234531 0.25 0.75 RAD 0.0078125
+   txt402 
+TEXDEF txt403 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.75 APEX 0.125 0.359531 0.75 RAD 0.0078125
+   txt403 
+TEXDEF txt404 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.765469 APEX 0.125 0.25 0.859531 RAD 0.0078125
+   txt404 
+TEXDEF txt405 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 0.875 RAD 0.03125 
+   txt405 
+TEXDEF txt406 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 0.875 APEX 0.234531 0.25 0.875 RAD 0.0078125
+   txt406 
+TEXDEF txt407 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 0.875 APEX 0.125 0.359531 0.875 RAD 0.0078125
+   txt407 
+TEXDEF txt408 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.25 0.890469 APEX 0.125 0.25 0.984531 RAD 0.0078125
+   txt408 
+TEXDEF txt409 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.25 1 RAD 0.03125 
+   txt409 
+TEXDEF txt410 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.25 1 APEX 0.234531 0.25 1 RAD 0.0078125
+   txt410 
+TEXDEF txt411 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.265469 1 APEX 0.125 0.359531 1 RAD 0.0078125
+   txt411 
+TEXDEF txt412 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0 RAD 0.03125 
+   txt412 
+TEXDEF txt413 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0 APEX 0.234531 0.375 0 RAD 0.0078125
+   txt413 
+TEXDEF txt414 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0 APEX 0.125 0.484531 0 RAD 0.0078125
+   txt414 
+TEXDEF txt415 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.0154687 APEX 0.125 0.375 0.109531 RAD 0.0078125
+   txt415 
+TEXDEF txt416 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.125 RAD 0.03125 
+   txt416 
+TEXDEF txt417 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.125 APEX 0.234531 0.375 0.125 RAD 0.0078125
+   txt417 
+TEXDEF txt418 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.125 APEX 0.125 0.484531 0.125 RAD 0.0078125
+   txt418 
+TEXDEF txt419 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.140469 APEX 0.125 0.375 0.234531 RAD 0.0078125
+   txt419 
+TEXDEF txt420 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.25 RAD 0.03125 
+   txt420 
+TEXDEF txt421 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.25 APEX 0.234531 0.375 0.25 RAD 0.0078125
+   txt421 
+TEXDEF txt422 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.25 APEX 0.125 0.484531 0.25 RAD 0.0078125
+   txt422 
+TEXDEF txt423 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.265469 APEX 0.125 0.375 0.359531 RAD 0.0078125
+   txt423 
+TEXDEF txt424 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.375 RAD 0.03125 
+   txt424 
+TEXDEF txt425 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.375 APEX 0.234531 0.375 0.375 RAD 0.0078125
+   txt425 
+TEXDEF txt426 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.375 APEX 0.125 0.484531 0.375 RAD 0.0078125
+   txt426 
+TEXDEF txt427 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.390469 APEX 0.125 0.375 0.484531 RAD 0.0078125
+   txt427 
+TEXDEF txt428 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.5 RAD 0.03125 
+   txt428 
+TEXDEF txt429 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.5 APEX 0.234531 0.375 0.5 RAD 0.0078125
+   txt429 
+TEXDEF txt430 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.5 APEX 0.125 0.484531 0.5 RAD 0.0078125
+   txt430 
+TEXDEF txt431 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.515469 APEX 0.125 0.375 0.609531 RAD 0.0078125
+   txt431 
+TEXDEF txt432 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.625 RAD 0.03125 
+   txt432 
+TEXDEF txt433 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.625 APEX 0.234531 0.375 0.625 RAD 0.0078125
+   txt433 
+TEXDEF txt434 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.625 APEX 0.125 0.484531 0.625 RAD 0.0078125
+   txt434 
+TEXDEF txt435 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.640469 APEX 0.125 0.375 0.734531 RAD 0.0078125
+   txt435 
+TEXDEF txt436 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.75 RAD 0.03125 
+   txt436 
+TEXDEF txt437 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.75 APEX 0.234531 0.375 0.75 RAD 0.0078125
+   txt437 
+TEXDEF txt438 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.75 APEX 0.125 0.484531 0.75 RAD 0.0078125
+   txt438 
+TEXDEF txt439 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.765469 APEX 0.125 0.375 0.859531 RAD 0.0078125
+   txt439 
+TEXDEF txt440 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 0.875 RAD 0.03125 
+   txt440 
+TEXDEF txt441 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 0.875 APEX 0.234531 0.375 0.875 RAD 0.0078125
+   txt441 
+TEXDEF txt442 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 0.875 APEX 0.125 0.484531 0.875 RAD 0.0078125
+   txt442 
+TEXDEF txt443 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.375 0.890469 APEX 0.125 0.375 0.984531 RAD 0.0078125
+   txt443 
+TEXDEF txt444 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.375 1 RAD 0.03125 
+   txt444 
+TEXDEF txt445 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.375 1 APEX 0.234531 0.375 1 RAD 0.0078125
+   txt445 
+TEXDEF txt446 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.390469 1 APEX 0.125 0.484531 1 RAD 0.0078125
+   txt446 
+TEXDEF txt447 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0 RAD 0.03125 
+   txt447 
+TEXDEF txt448 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0 APEX 0.234531 0.5 0 RAD 0.0078125
+   txt448 
+TEXDEF txt449 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0 APEX 0.125 0.609531 0 RAD 0.0078125
+   txt449 
+TEXDEF txt450 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.0154687 APEX 0.125 0.5 0.109531 RAD 0.0078125
+   txt450 
+TEXDEF txt451 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.125 RAD 0.03125 
+   txt451 
+TEXDEF txt452 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.125 APEX 0.234531 0.5 0.125 RAD 0.0078125
+   txt452 
+TEXDEF txt453 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.125 APEX 0.125 0.609531 0.125 RAD 0.0078125
+   txt453 
+TEXDEF txt454 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.140469 APEX 0.125 0.5 0.234531 RAD 0.0078125
+   txt454 
+TEXDEF txt455 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.25 RAD 0.03125 
+   txt455 
+TEXDEF txt456 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.25 APEX 0.234531 0.5 0.25 RAD 0.0078125
+   txt456 
+TEXDEF txt457 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.25 APEX 0.125 0.609531 0.25 RAD 0.0078125
+   txt457 
+TEXDEF txt458 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.265469 APEX 0.125 0.5 0.359531 RAD 0.0078125
+   txt458 
+TEXDEF txt459 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.375 RAD 0.03125 
+   txt459 
+TEXDEF txt460 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.375 APEX 0.234531 0.5 0.375 RAD 0.0078125
+   txt460 
+TEXDEF txt461 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.375 APEX 0.125 0.609531 0.375 RAD 0.0078125
+   txt461 
+TEXDEF txt462 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.390469 APEX 0.125 0.5 0.484531 RAD 0.0078125
+   txt462 
+TEXDEF txt463 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.5 RAD 0.03125 
+   txt463 
+TEXDEF txt464 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.5 APEX 0.234531 0.5 0.5 RAD 0.0078125
+   txt464 
+TEXDEF txt465 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.5 APEX 0.125 0.609531 0.5 RAD 0.0078125
+   txt465 
+TEXDEF txt466 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.515469 APEX 0.125 0.5 0.609531 RAD 0.0078125
+   txt466 
+TEXDEF txt467 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.625 RAD 0.03125 
+   txt467 
+TEXDEF txt468 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.625 APEX 0.234531 0.5 0.625 RAD 0.0078125
+   txt468 
+TEXDEF txt469 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.625 APEX 0.125 0.609531 0.625 RAD 0.0078125
+   txt469 
+TEXDEF txt470 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.640469 APEX 0.125 0.5 0.734531 RAD 0.0078125
+   txt470 
+TEXDEF txt471 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.75 RAD 0.03125 
+   txt471 
+TEXDEF txt472 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.75 APEX 0.234531 0.5 0.75 RAD 0.0078125
+   txt472 
+TEXDEF txt473 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.75 APEX 0.125 0.609531 0.75 RAD 0.0078125
+   txt473 
+TEXDEF txt474 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.765469 APEX 0.125 0.5 0.859531 RAD 0.0078125
+   txt474 
+TEXDEF txt475 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 0.875 RAD 0.03125 
+   txt475 
+TEXDEF txt476 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 0.875 APEX 0.234531 0.5 0.875 RAD 0.0078125
+   txt476 
+TEXDEF txt477 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 0.875 APEX 0.125 0.609531 0.875 RAD 0.0078125
+   txt477 
+TEXDEF txt478 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.5 0.890469 APEX 0.125 0.5 0.984531 RAD 0.0078125
+   txt478 
+TEXDEF txt479 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.5 1 RAD 0.03125 
+   txt479 
+TEXDEF txt480 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.5 1 APEX 0.234531 0.5 1 RAD 0.0078125
+   txt480 
+TEXDEF txt481 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.515469 1 APEX 0.125 0.609531 1 RAD 0.0078125
+   txt481 
+TEXDEF txt482 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0 RAD 0.03125 
+   txt482 
+TEXDEF txt483 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0 APEX 0.234531 0.625 0 RAD 0.0078125
+   txt483 
+TEXDEF txt484 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0 APEX 0.125 0.734531 0 RAD 0.0078125
+   txt484 
+TEXDEF txt485 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.0154687 APEX 0.125 0.625 0.109531 RAD 0.0078125
+   txt485 
+TEXDEF txt486 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.125 RAD 0.03125 
+   txt486 
+TEXDEF txt487 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.125 APEX 0.234531 0.625 0.125 RAD 0.0078125
+   txt487 
+TEXDEF txt488 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.125 APEX 0.125 0.734531 0.125 RAD 0.0078125
+   txt488 
+TEXDEF txt489 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.140469 APEX 0.125 0.625 0.234531 RAD 0.0078125
+   txt489 
+TEXDEF txt490 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.25 RAD 0.03125 
+   txt490 
+TEXDEF txt491 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.25 APEX 0.234531 0.625 0.25 RAD 0.0078125
+   txt491 
+TEXDEF txt492 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.25 APEX 0.125 0.734531 0.25 RAD 0.0078125
+   txt492 
+TEXDEF txt493 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.265469 APEX 0.125 0.625 0.359531 RAD 0.0078125
+   txt493 
+TEXDEF txt494 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.375 RAD 0.03125 
+   txt494 
+TEXDEF txt495 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.375 APEX 0.234531 0.625 0.375 RAD 0.0078125
+   txt495 
+TEXDEF txt496 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.375 APEX 0.125 0.734531 0.375 RAD 0.0078125
+   txt496 
+TEXDEF txt497 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.390469 APEX 0.125 0.625 0.484531 RAD 0.0078125
+   txt497 
+TEXDEF txt498 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.5 RAD 0.03125 
+   txt498 
+TEXDEF txt499 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.5 APEX 0.234531 0.625 0.5 RAD 0.0078125
+   txt499 
+TEXDEF txt500 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.5 APEX 0.125 0.734531 0.5 RAD 0.0078125
+   txt500 
+TEXDEF txt501 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.515469 APEX 0.125 0.625 0.609531 RAD 0.0078125
+   txt501 
+TEXDEF txt502 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.625 RAD 0.03125 
+   txt502 
+TEXDEF txt503 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.625 APEX 0.234531 0.625 0.625 RAD 0.0078125
+   txt503 
+TEXDEF txt504 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.625 APEX 0.125 0.734531 0.625 RAD 0.0078125
+   txt504 
+TEXDEF txt505 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.640469 APEX 0.125 0.625 0.734531 RAD 0.0078125
+   txt505 
+TEXDEF txt506 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.75 RAD 0.03125 
+   txt506 
+TEXDEF txt507 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.75 APEX 0.234531 0.625 0.75 RAD 0.0078125
+   txt507 
+TEXDEF txt508 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.75 APEX 0.125 0.734531 0.75 RAD 0.0078125
+   txt508 
+TEXDEF txt509 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.765469 APEX 0.125 0.625 0.859531 RAD 0.0078125
+   txt509 
+TEXDEF txt510 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 0.875 RAD 0.03125 
+   txt510 
+TEXDEF txt511 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 0.875 APEX 0.234531 0.625 0.875 RAD 0.0078125
+   txt511 
+TEXDEF txt512 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 0.875 APEX 0.125 0.734531 0.875 RAD 0.0078125
+   txt512 
+TEXDEF txt513 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.625 0.890469 APEX 0.125 0.625 0.984531 RAD 0.0078125
+   txt513 
+TEXDEF txt514 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.625 1 RAD 0.03125 
+   txt514 
+TEXDEF txt515 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.625 1 APEX 0.234531 0.625 1 RAD 0.0078125
+   txt515 
+TEXDEF txt516 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.640469 1 APEX 0.125 0.734531 1 RAD 0.0078125
+   txt516 
+TEXDEF txt517 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0 RAD 0.03125 
+   txt517 
+TEXDEF txt518 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0 APEX 0.234531 0.75 0 RAD 0.0078125
+   txt518 
+TEXDEF txt519 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0 APEX 0.125 0.859531 0 RAD 0.0078125
+   txt519 
+TEXDEF txt520 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.0154687 APEX 0.125 0.75 0.109531 RAD 0.0078125
+   txt520 
+TEXDEF txt521 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.125 RAD 0.03125 
+   txt521 
+TEXDEF txt522 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.125 APEX 0.234531 0.75 0.125 RAD 0.0078125
+   txt522 
+TEXDEF txt523 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.125 APEX 0.125 0.859531 0.125 RAD 0.0078125
+   txt523 
+TEXDEF txt524 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.140469 APEX 0.125 0.75 0.234531 RAD 0.0078125
+   txt524 
+TEXDEF txt525 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.25 RAD 0.03125 
+   txt525 
+TEXDEF txt526 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.25 APEX 0.234531 0.75 0.25 RAD 0.0078125
+   txt526 
+TEXDEF txt527 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.25 APEX 0.125 0.859531 0.25 RAD 0.0078125
+   txt527 
+TEXDEF txt528 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.265469 APEX 0.125 0.75 0.359531 RAD 0.0078125
+   txt528 
+TEXDEF txt529 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.375 RAD 0.03125 
+   txt529 
+TEXDEF txt530 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.375 APEX 0.234531 0.75 0.375 RAD 0.0078125
+   txt530 
+TEXDEF txt531 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.375 APEX 0.125 0.859531 0.375 RAD 0.0078125
+   txt531 
+TEXDEF txt532 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.390469 APEX 0.125 0.75 0.484531 RAD 0.0078125
+   txt532 
+TEXDEF txt533 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.5 RAD 0.03125 
+   txt533 
+TEXDEF txt534 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.5 APEX 0.234531 0.75 0.5 RAD 0.0078125
+   txt534 
+TEXDEF txt535 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.5 APEX 0.125 0.859531 0.5 RAD 0.0078125
+   txt535 
+TEXDEF txt536 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.515469 APEX 0.125 0.75 0.609531 RAD 0.0078125
+   txt536 
+TEXDEF txt537 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.625 RAD 0.03125 
+   txt537 
+TEXDEF txt538 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.625 APEX 0.234531 0.75 0.625 RAD 0.0078125
+   txt538 
+TEXDEF txt539 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.625 APEX 0.125 0.859531 0.625 RAD 0.0078125
+   txt539 
+TEXDEF txt540 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.640469 APEX 0.125 0.75 0.734531 RAD 0.0078125
+   txt540 
+TEXDEF txt541 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.75 RAD 0.03125 
+   txt541 
+TEXDEF txt542 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.75 APEX 0.234531 0.75 0.75 RAD 0.0078125
+   txt542 
+TEXDEF txt543 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.75 APEX 0.125 0.859531 0.75 RAD 0.0078125
+   txt543 
+TEXDEF txt544 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.765469 APEX 0.125 0.75 0.859531 RAD 0.0078125
+   txt544 
+TEXDEF txt545 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 0.875 RAD 0.03125 
+   txt545 
+TEXDEF txt546 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 0.875 APEX 0.234531 0.75 0.875 RAD 0.0078125
+   txt546 
+TEXDEF txt547 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 0.875 APEX 0.125 0.859531 0.875 RAD 0.0078125
+   txt547 
+TEXDEF txt548 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.75 0.890469 APEX 0.125 0.75 0.984531 RAD 0.0078125
+   txt548 
+TEXDEF txt549 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.75 1 RAD 0.03125 
+   txt549 
+TEXDEF txt550 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.75 1 APEX 0.234531 0.75 1 RAD 0.0078125
+   txt550 
+TEXDEF txt551 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.765469 1 APEX 0.125 0.859531 1 RAD 0.0078125
+   txt551 
+TEXDEF txt552 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0 RAD 0.03125 
+   txt552 
+TEXDEF txt553 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0 APEX 0.234531 0.875 0 RAD 0.0078125
+   txt553 
+TEXDEF txt554 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0 APEX 0.125 0.984531 0 RAD 0.0078125
+   txt554 
+TEXDEF txt555 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.0154687 APEX 0.125 0.875 0.109531 RAD 0.0078125
+   txt555 
+TEXDEF txt556 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.125 RAD 0.03125 
+   txt556 
+TEXDEF txt557 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.125 APEX 0.234531 0.875 0.125 RAD 0.0078125
+   txt557 
+TEXDEF txt558 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.125 APEX 0.125 0.984531 0.125 RAD 0.0078125
+   txt558 
+TEXDEF txt559 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.140469 APEX 0.125 0.875 0.234531 RAD 0.0078125
+   txt559 
+TEXDEF txt560 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.25 RAD 0.03125 
+   txt560 
+TEXDEF txt561 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.25 APEX 0.234531 0.875 0.25 RAD 0.0078125
+   txt561 
+TEXDEF txt562 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.25 APEX 0.125 0.984531 0.25 RAD 0.0078125
+   txt562 
+TEXDEF txt563 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.265469 APEX 0.125 0.875 0.359531 RAD 0.0078125
+   txt563 
+TEXDEF txt564 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.375 RAD 0.03125 
+   txt564 
+TEXDEF txt565 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.375 APEX 0.234531 0.875 0.375 RAD 0.0078125
+   txt565 
+TEXDEF txt566 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.375 APEX 0.125 0.984531 0.375 RAD 0.0078125
+   txt566 
+TEXDEF txt567 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.390469 APEX 0.125 0.875 0.484531 RAD 0.0078125
+   txt567 
+TEXDEF txt568 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.5 RAD 0.03125 
+   txt568 
+TEXDEF txt569 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.5 APEX 0.234531 0.875 0.5 RAD 0.0078125
+   txt569 
+TEXDEF txt570 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.5 APEX 0.125 0.984531 0.5 RAD 0.0078125
+   txt570 
+TEXDEF txt571 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.515469 APEX 0.125 0.875 0.609531 RAD 0.0078125
+   txt571 
+TEXDEF txt572 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.625 RAD 0.03125 
+   txt572 
+TEXDEF txt573 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.625 APEX 0.234531 0.875 0.625 RAD 0.0078125
+   txt573 
+TEXDEF txt574 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.625 APEX 0.125 0.984531 0.625 RAD 0.0078125
+   txt574 
+TEXDEF txt575 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.640469 APEX 0.125 0.875 0.734531 RAD 0.0078125
+   txt575 
+TEXDEF txt576 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.75 RAD 0.03125 
+   txt576 
+TEXDEF txt577 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.75 APEX 0.234531 0.875 0.75 RAD 0.0078125
+   txt577 
+TEXDEF txt578 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.75 APEX 0.125 0.984531 0.75 RAD 0.0078125
+   txt578 
+TEXDEF txt579 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.765469 APEX 0.125 0.875 0.859531 RAD 0.0078125
+   txt579 
+TEXDEF txt580 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 0.875 RAD 0.03125 
+   txt580 
+TEXDEF txt581 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 0.875 APEX 0.234531 0.875 0.875 RAD 0.0078125
+   txt581 
+TEXDEF txt582 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 0.875 APEX 0.125 0.984531 0.875 RAD 0.0078125
+   txt582 
+TEXDEF txt583 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.875 0.890469 APEX 0.125 0.875 0.984531 RAD 0.0078125
+   txt583 
+TEXDEF txt584 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 0.875 1 RAD 0.03125 
+   txt584 
+TEXDEF txt585 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 0.875 1 APEX 0.234531 0.875 1 RAD 0.0078125
+   txt585 
+TEXDEF txt586 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 0.890469 1 APEX 0.125 0.984531 1 RAD 0.0078125
+   txt586 
+TEXDEF txt587 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0 RAD 0.03125 
+   txt587 
+TEXDEF txt588 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0 APEX 0.234531 1 0 RAD 0.0078125
+   txt588 
+TEXDEF txt589 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.0154687 APEX 0.125 1 0.109531 RAD 0.0078125
+   txt589 
+TEXDEF txt590 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.125 RAD 0.03125 
+   txt590 
+TEXDEF txt591 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.125 APEX 0.234531 1 0.125 RAD 0.0078125
+   txt591 
+TEXDEF txt592 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.140469 APEX 0.125 1 0.234531 RAD 0.0078125
+   txt592 
+TEXDEF txt593 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.25 RAD 0.03125 
+   txt593 
+TEXDEF txt594 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.25 APEX 0.234531 1 0.25 RAD 0.0078125
+   txt594 
+TEXDEF txt595 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.265469 APEX 0.125 1 0.359531 RAD 0.0078125
+   txt595 
+TEXDEF txt596 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.375 RAD 0.03125 
+   txt596 
+TEXDEF txt597 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.375 APEX 0.234531 1 0.375 RAD 0.0078125
+   txt597 
+TEXDEF txt598 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.390469 APEX 0.125 1 0.484531 RAD 0.0078125
+   txt598 
+TEXDEF txt599 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.5 RAD 0.03125 
+   txt599 
+TEXDEF txt600 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.5 APEX 0.234531 1 0.5 RAD 0.0078125
+   txt600 
+TEXDEF txt601 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.515469 APEX 0.125 1 0.609531 RAD 0.0078125
+   txt601 
+TEXDEF txt602 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.625 RAD 0.03125 
+   txt602 
+TEXDEF txt603 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.625 APEX 0.234531 1 0.625 RAD 0.0078125
+   txt603 
+TEXDEF txt604 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.640469 APEX 0.125 1 0.734531 RAD 0.0078125
+   txt604 
+TEXDEF txt605 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.75 RAD 0.03125 
+   txt605 
+TEXDEF txt606 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.75 APEX 0.234531 1 0.75 RAD 0.0078125
+   txt606 
+TEXDEF txt607 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.765469 APEX 0.125 1 0.859531 RAD 0.0078125
+   txt607 
+TEXDEF txt608 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 0.875 RAD 0.03125 
+   txt608 
+TEXDEF txt609 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 0.875 APEX 0.234531 1 0.875 RAD 0.0078125
+   txt609 
+TEXDEF txt610 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.125 1 0.890469 APEX 0.125 1 0.984531 RAD 0.0078125
+   txt610 
+TEXDEF txt611 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.125 1 1 RAD 0.03125 
+   txt611 
+TEXDEF txt612 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.140469 1 1 APEX 0.234531 1 1 RAD 0.0078125
+   txt612 
+TEXDEF txt613 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0 RAD 0.03125 
+   txt613 
+TEXDEF txt614 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0 APEX 0.359531 0 0 RAD 0.0078125
+   txt614 
+TEXDEF txt615 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0 APEX 0.25 0.109531 0 RAD 0.0078125
+   txt615 
+TEXDEF txt616 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.0154687 APEX 0.25 0 0.109531 RAD 0.0078125
+   txt616 
+TEXDEF txt617 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.125 RAD 0.03125 
+   txt617 
+TEXDEF txt618 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.125 APEX 0.359531 0 0.125 RAD 0.0078125
+   txt618 
+TEXDEF txt619 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.125 APEX 0.25 0.109531 0.125 RAD 0.0078125
+   txt619 
+TEXDEF txt620 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.140469 APEX 0.25 0 0.234531 RAD 0.0078125
+   txt620 
+TEXDEF txt621 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.25 RAD 0.03125 
+   txt621 
+TEXDEF txt622 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.25 APEX 0.359531 0 0.25 RAD 0.0078125
+   txt622 
+TEXDEF txt623 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.25 APEX 0.25 0.109531 0.25 RAD 0.0078125
+   txt623 
+TEXDEF txt624 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.265469 APEX 0.25 0 0.359531 RAD 0.0078125
+   txt624 
+TEXDEF txt625 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.375 RAD 0.03125 
+   txt625 
+TEXDEF txt626 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.375 APEX 0.359531 0 0.375 RAD 0.0078125
+   txt626 
+TEXDEF txt627 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.375 APEX 0.25 0.109531 0.375 RAD 0.0078125
+   txt627 
+TEXDEF txt628 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.390469 APEX 0.25 0 0.484531 RAD 0.0078125
+   txt628 
+TEXDEF txt629 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.5 RAD 0.03125 
+   txt629 
+TEXDEF txt630 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.5 APEX 0.359531 0 0.5 RAD 0.0078125
+   txt630 
+TEXDEF txt631 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.5 APEX 0.25 0.109531 0.5 RAD 0.0078125
+   txt631 
+TEXDEF txt632 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.515469 APEX 0.25 0 0.609531 RAD 0.0078125
+   txt632 
+TEXDEF txt633 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.625 RAD 0.03125 
+   txt633 
+TEXDEF txt634 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.625 APEX 0.359531 0 0.625 RAD 0.0078125
+   txt634 
+TEXDEF txt635 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.625 APEX 0.25 0.109531 0.625 RAD 0.0078125
+   txt635 
+TEXDEF txt636 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.640469 APEX 0.25 0 0.734531 RAD 0.0078125
+   txt636 
+TEXDEF txt637 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.75 RAD 0.03125 
+   txt637 
+TEXDEF txt638 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.75 APEX 0.359531 0 0.75 RAD 0.0078125
+   txt638 
+TEXDEF txt639 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.75 APEX 0.25 0.109531 0.75 RAD 0.0078125
+   txt639 
+TEXDEF txt640 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.765469 APEX 0.25 0 0.859531 RAD 0.0078125
+   txt640 
+TEXDEF txt641 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 0.875 RAD 0.03125 
+   txt641 
+TEXDEF txt642 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 0.875 APEX 0.359531 0 0.875 RAD 0.0078125
+   txt642 
+TEXDEF txt643 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 0.875 APEX 0.25 0.109531 0.875 RAD 0.0078125
+   txt643 
+TEXDEF txt644 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0 0.890469 APEX 0.25 0 0.984531 RAD 0.0078125
+   txt644 
+TEXDEF txt645 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0 1 RAD 0.03125 
+   txt645 
+TEXDEF txt646 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0 1 APEX 0.359531 0 1 RAD 0.0078125
+   txt646 
+TEXDEF txt647 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.0154687 1 APEX 0.25 0.109531 1 RAD 0.0078125
+   txt647 
+TEXDEF txt648 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0 RAD 0.03125 
+   txt648 
+TEXDEF txt649 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0 APEX 0.359531 0.125 0 RAD 0.0078125
+   txt649 
+TEXDEF txt650 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0 APEX 0.25 0.234531 0 RAD 0.0078125
+   txt650 
+TEXDEF txt651 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.0154687 APEX 0.25 0.125 0.109531 RAD 0.0078125
+   txt651 
+TEXDEF txt652 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.125 RAD 0.03125 
+   txt652 
+TEXDEF txt653 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.125 APEX 0.359531 0.125 0.125 RAD 0.0078125
+   txt653 
+TEXDEF txt654 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.125 APEX 0.25 0.234531 0.125 RAD 0.0078125
+   txt654 
+TEXDEF txt655 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.140469 APEX 0.25 0.125 0.234531 RAD 0.0078125
+   txt655 
+TEXDEF txt656 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.25 RAD 0.03125 
+   txt656 
+TEXDEF txt657 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.25 APEX 0.359531 0.125 0.25 RAD 0.0078125
+   txt657 
+TEXDEF txt658 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.25 APEX 0.25 0.234531 0.25 RAD 0.0078125
+   txt658 
+TEXDEF txt659 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.265469 APEX 0.25 0.125 0.359531 RAD 0.0078125
+   txt659 
+TEXDEF txt660 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.375 RAD 0.03125 
+   txt660 
+TEXDEF txt661 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.375 APEX 0.359531 0.125 0.375 RAD 0.0078125
+   txt661 
+TEXDEF txt662 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.375 APEX 0.25 0.234531 0.375 RAD 0.0078125
+   txt662 
+TEXDEF txt663 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.390469 APEX 0.25 0.125 0.484531 RAD 0.0078125
+   txt663 
+TEXDEF txt664 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.5 RAD 0.03125 
+   txt664 
+TEXDEF txt665 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.5 APEX 0.359531 0.125 0.5 RAD 0.0078125
+   txt665 
+TEXDEF txt666 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.5 APEX 0.25 0.234531 0.5 RAD 0.0078125
+   txt666 
+TEXDEF txt667 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.515469 APEX 0.25 0.125 0.609531 RAD 0.0078125
+   txt667 
+TEXDEF txt668 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.625 RAD 0.03125 
+   txt668 
+TEXDEF txt669 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.625 APEX 0.359531 0.125 0.625 RAD 0.0078125
+   txt669 
+TEXDEF txt670 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.625 APEX 0.25 0.234531 0.625 RAD 0.0078125
+   txt670 
+TEXDEF txt671 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.640469 APEX 0.25 0.125 0.734531 RAD 0.0078125
+   txt671 
+TEXDEF txt672 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.75 RAD 0.03125 
+   txt672 
+TEXDEF txt673 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.75 APEX 0.359531 0.125 0.75 RAD 0.0078125
+   txt673 
+TEXDEF txt674 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.75 APEX 0.25 0.234531 0.75 RAD 0.0078125
+   txt674 
+TEXDEF txt675 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.765469 APEX 0.25 0.125 0.859531 RAD 0.0078125
+   txt675 
+TEXDEF txt676 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 0.875 RAD 0.03125 
+   txt676 
+TEXDEF txt677 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 0.875 APEX 0.359531 0.125 0.875 RAD 0.0078125
+   txt677 
+TEXDEF txt678 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 0.875 APEX 0.25 0.234531 0.875 RAD 0.0078125
+   txt678 
+TEXDEF txt679 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.125 0.890469 APEX 0.25 0.125 0.984531 RAD 0.0078125
+   txt679 
+TEXDEF txt680 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.125 1 RAD 0.03125 
+   txt680 
+TEXDEF txt681 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.125 1 APEX 0.359531 0.125 1 RAD 0.0078125
+   txt681 
+TEXDEF txt682 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.140469 1 APEX 0.25 0.234531 1 RAD 0.0078125
+   txt682 
+TEXDEF txt683 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0 RAD 0.03125 
+   txt683 
+TEXDEF txt684 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0 APEX 0.359531 0.25 0 RAD 0.0078125
+   txt684 
+TEXDEF txt685 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0 APEX 0.25 0.359531 0 RAD 0.0078125
+   txt685 
+TEXDEF txt686 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.0154687 APEX 0.25 0.25 0.109531 RAD 0.0078125
+   txt686 
+TEXDEF txt687 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.125 RAD 0.03125 
+   txt687 
+TEXDEF txt688 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.125 APEX 0.359531 0.25 0.125 RAD 0.0078125
+   txt688 
+TEXDEF txt689 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.125 APEX 0.25 0.359531 0.125 RAD 0.0078125
+   txt689 
+TEXDEF txt690 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.140469 APEX 0.25 0.25 0.234531 RAD 0.0078125
+   txt690 
+TEXDEF txt691 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.25 RAD 0.03125 
+   txt691 
+TEXDEF txt692 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.25 APEX 0.359531 0.25 0.25 RAD 0.0078125
+   txt692 
+TEXDEF txt693 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.25 APEX 0.25 0.359531 0.25 RAD 0.0078125
+   txt693 
+TEXDEF txt694 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.265469 APEX 0.25 0.25 0.359531 RAD 0.0078125
+   txt694 
+TEXDEF txt695 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.375 RAD 0.03125 
+   txt695 
+TEXDEF txt696 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.375 APEX 0.359531 0.25 0.375 RAD 0.0078125
+   txt696 
+TEXDEF txt697 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.375 APEX 0.25 0.359531 0.375 RAD 0.0078125
+   txt697 
+TEXDEF txt698 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.390469 APEX 0.25 0.25 0.484531 RAD 0.0078125
+   txt698 
+TEXDEF txt699 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.5 RAD 0.03125 
+   txt699 
+TEXDEF txt700 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.5 APEX 0.359531 0.25 0.5 RAD 0.0078125
+   txt700 
+TEXDEF txt701 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.5 APEX 0.25 0.359531 0.5 RAD 0.0078125
+   txt701 
+TEXDEF txt702 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.515469 APEX 0.25 0.25 0.609531 RAD 0.0078125
+   txt702 
+TEXDEF txt703 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.625 RAD 0.03125 
+   txt703 
+TEXDEF txt704 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.625 APEX 0.359531 0.25 0.625 RAD 0.0078125
+   txt704 
+TEXDEF txt705 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.625 APEX 0.25 0.359531 0.625 RAD 0.0078125
+   txt705 
+TEXDEF txt706 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.640469 APEX 0.25 0.25 0.734531 RAD 0.0078125
+   txt706 
+TEXDEF txt707 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.75 RAD 0.03125 
+   txt707 
+TEXDEF txt708 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.75 APEX 0.359531 0.25 0.75 RAD 0.0078125
+   txt708 
+TEXDEF txt709 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.75 APEX 0.25 0.359531 0.75 RAD 0.0078125
+   txt709 
+TEXDEF txt710 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.765469 APEX 0.25 0.25 0.859531 RAD 0.0078125
+   txt710 
+TEXDEF txt711 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 0.875 RAD 0.03125 
+   txt711 
+TEXDEF txt712 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 0.875 APEX 0.359531 0.25 0.875 RAD 0.0078125
+   txt712 
+TEXDEF txt713 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 0.875 APEX 0.25 0.359531 0.875 RAD 0.0078125
+   txt713 
+TEXDEF txt714 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.25 0.890469 APEX 0.25 0.25 0.984531 RAD 0.0078125
+   txt714 
+TEXDEF txt715 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.25 1 RAD 0.03125 
+   txt715 
+TEXDEF txt716 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.25 1 APEX 0.359531 0.25 1 RAD 0.0078125
+   txt716 
+TEXDEF txt717 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.265469 1 APEX 0.25 0.359531 1 RAD 0.0078125
+   txt717 
+TEXDEF txt718 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0 RAD 0.03125 
+   txt718 
+TEXDEF txt719 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0 APEX 0.359531 0.375 0 RAD 0.0078125
+   txt719 
+TEXDEF txt720 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0 APEX 0.25 0.484531 0 RAD 0.0078125
+   txt720 
+TEXDEF txt721 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.0154687 APEX 0.25 0.375 0.109531 RAD 0.0078125
+   txt721 
+TEXDEF txt722 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.125 RAD 0.03125 
+   txt722 
+TEXDEF txt723 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.125 APEX 0.359531 0.375 0.125 RAD 0.0078125
+   txt723 
+TEXDEF txt724 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.125 APEX 0.25 0.484531 0.125 RAD 0.0078125
+   txt724 
+TEXDEF txt725 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.140469 APEX 0.25 0.375 0.234531 RAD 0.0078125
+   txt725 
+TEXDEF txt726 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.25 RAD 0.03125 
+   txt726 
+TEXDEF txt727 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.25 APEX 0.359531 0.375 0.25 RAD 0.0078125
+   txt727 
+TEXDEF txt728 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.25 APEX 0.25 0.484531 0.25 RAD 0.0078125
+   txt728 
+TEXDEF txt729 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.265469 APEX 0.25 0.375 0.359531 RAD 0.0078125
+   txt729 
+TEXDEF txt730 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.375 RAD 0.03125 
+   txt730 
+TEXDEF txt731 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.375 APEX 0.359531 0.375 0.375 RAD 0.0078125
+   txt731 
+TEXDEF txt732 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.375 APEX 0.25 0.484531 0.375 RAD 0.0078125
+   txt732 
+TEXDEF txt733 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.390469 APEX 0.25 0.375 0.484531 RAD 0.0078125
+   txt733 
+TEXDEF txt734 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.5 RAD 0.03125 
+   txt734 
+TEXDEF txt735 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.5 APEX 0.359531 0.375 0.5 RAD 0.0078125
+   txt735 
+TEXDEF txt736 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.5 APEX 0.25 0.484531 0.5 RAD 0.0078125
+   txt736 
+TEXDEF txt737 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.515469 APEX 0.25 0.375 0.609531 RAD 0.0078125
+   txt737 
+TEXDEF txt738 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.625 RAD 0.03125 
+   txt738 
+TEXDEF txt739 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.625 APEX 0.359531 0.375 0.625 RAD 0.0078125
+   txt739 
+TEXDEF txt740 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.625 APEX 0.25 0.484531 0.625 RAD 0.0078125
+   txt740 
+TEXDEF txt741 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.640469 APEX 0.25 0.375 0.734531 RAD 0.0078125
+   txt741 
+TEXDEF txt742 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.75 RAD 0.03125 
+   txt742 
+TEXDEF txt743 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.75 APEX 0.359531 0.375 0.75 RAD 0.0078125
+   txt743 
+TEXDEF txt744 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.75 APEX 0.25 0.484531 0.75 RAD 0.0078125
+   txt744 
+TEXDEF txt745 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.765469 APEX 0.25 0.375 0.859531 RAD 0.0078125
+   txt745 
+TEXDEF txt746 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 0.875 RAD 0.03125 
+   txt746 
+TEXDEF txt747 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 0.875 APEX 0.359531 0.375 0.875 RAD 0.0078125
+   txt747 
+TEXDEF txt748 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 0.875 APEX 0.25 0.484531 0.875 RAD 0.0078125
+   txt748 
+TEXDEF txt749 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.375 0.890469 APEX 0.25 0.375 0.984531 RAD 0.0078125
+   txt749 
+TEXDEF txt750 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.375 1 RAD 0.03125 
+   txt750 
+TEXDEF txt751 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.375 1 APEX 0.359531 0.375 1 RAD 0.0078125
+   txt751 
+TEXDEF txt752 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.390469 1 APEX 0.25 0.484531 1 RAD 0.0078125
+   txt752 
+TEXDEF txt753 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0 RAD 0.03125 
+   txt753 
+TEXDEF txt754 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0 APEX 0.359531 0.5 0 RAD 0.0078125
+   txt754 
+TEXDEF txt755 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0 APEX 0.25 0.609531 0 RAD 0.0078125
+   txt755 
+TEXDEF txt756 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.0154687 APEX 0.25 0.5 0.109531 RAD 0.0078125
+   txt756 
+TEXDEF txt757 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.125 RAD 0.03125 
+   txt757 
+TEXDEF txt758 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.125 APEX 0.359531 0.5 0.125 RAD 0.0078125
+   txt758 
+TEXDEF txt759 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.125 APEX 0.25 0.609531 0.125 RAD 0.0078125
+   txt759 
+TEXDEF txt760 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.140469 APEX 0.25 0.5 0.234531 RAD 0.0078125
+   txt760 
+TEXDEF txt761 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.25 RAD 0.03125 
+   txt761 
+TEXDEF txt762 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.25 APEX 0.359531 0.5 0.25 RAD 0.0078125
+   txt762 
+TEXDEF txt763 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.25 APEX 0.25 0.609531 0.25 RAD 0.0078125
+   txt763 
+TEXDEF txt764 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.265469 APEX 0.25 0.5 0.359531 RAD 0.0078125
+   txt764 
+TEXDEF txt765 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.375 RAD 0.03125 
+   txt765 
+TEXDEF txt766 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.375 APEX 0.359531 0.5 0.375 RAD 0.0078125
+   txt766 
+TEXDEF txt767 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.375 APEX 0.25 0.609531 0.375 RAD 0.0078125
+   txt767 
+TEXDEF txt768 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.390469 APEX 0.25 0.5 0.484531 RAD 0.0078125
+   txt768 
+TEXDEF txt769 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.5 RAD 0.03125 
+   txt769 
+TEXDEF txt770 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.5 APEX 0.359531 0.5 0.5 RAD 0.0078125
+   txt770 
+TEXDEF txt771 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.5 APEX 0.25 0.609531 0.5 RAD 0.0078125
+   txt771 
+TEXDEF txt772 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.515469 APEX 0.25 0.5 0.609531 RAD 0.0078125
+   txt772 
+TEXDEF txt773 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.625 RAD 0.03125 
+   txt773 
+TEXDEF txt774 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.625 APEX 0.359531 0.5 0.625 RAD 0.0078125
+   txt774 
+TEXDEF txt775 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.625 APEX 0.25 0.609531 0.625 RAD 0.0078125
+   txt775 
+TEXDEF txt776 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.640469 APEX 0.25 0.5 0.734531 RAD 0.0078125
+   txt776 
+TEXDEF txt777 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.75 RAD 0.03125 
+   txt777 
+TEXDEF txt778 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.75 APEX 0.359531 0.5 0.75 RAD 0.0078125
+   txt778 
+TEXDEF txt779 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.75 APEX 0.25 0.609531 0.75 RAD 0.0078125
+   txt779 
+TEXDEF txt780 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.765469 APEX 0.25 0.5 0.859531 RAD 0.0078125
+   txt780 
+TEXDEF txt781 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 0.875 RAD 0.03125 
+   txt781 
+TEXDEF txt782 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 0.875 APEX 0.359531 0.5 0.875 RAD 0.0078125
+   txt782 
+TEXDEF txt783 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 0.875 APEX 0.25 0.609531 0.875 RAD 0.0078125
+   txt783 
+TEXDEF txt784 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.5 0.890469 APEX 0.25 0.5 0.984531 RAD 0.0078125
+   txt784 
+TEXDEF txt785 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.5 1 RAD 0.03125 
+   txt785 
+TEXDEF txt786 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.5 1 APEX 0.359531 0.5 1 RAD 0.0078125
+   txt786 
+TEXDEF txt787 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.515469 1 APEX 0.25 0.609531 1 RAD 0.0078125
+   txt787 
+TEXDEF txt788 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0 RAD 0.03125 
+   txt788 
+TEXDEF txt789 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0 APEX 0.359531 0.625 0 RAD 0.0078125
+   txt789 
+TEXDEF txt790 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0 APEX 0.25 0.734531 0 RAD 0.0078125
+   txt790 
+TEXDEF txt791 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.0154687 APEX 0.25 0.625 0.109531 RAD 0.0078125
+   txt791 
+TEXDEF txt792 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.125 RAD 0.03125 
+   txt792 
+TEXDEF txt793 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.125 APEX 0.359531 0.625 0.125 RAD 0.0078125
+   txt793 
+TEXDEF txt794 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.125 APEX 0.25 0.734531 0.125 RAD 0.0078125
+   txt794 
+TEXDEF txt795 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.140469 APEX 0.25 0.625 0.234531 RAD 0.0078125
+   txt795 
+TEXDEF txt796 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.25 RAD 0.03125 
+   txt796 
+TEXDEF txt797 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.25 APEX 0.359531 0.625 0.25 RAD 0.0078125
+   txt797 
+TEXDEF txt798 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.25 APEX 0.25 0.734531 0.25 RAD 0.0078125
+   txt798 
+TEXDEF txt799 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.265469 APEX 0.25 0.625 0.359531 RAD 0.0078125
+   txt799 
+TEXDEF txt800 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.375 RAD 0.03125 
+   txt800 
+TEXDEF txt801 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.375 APEX 0.359531 0.625 0.375 RAD 0.0078125
+   txt801 
+TEXDEF txt802 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.375 APEX 0.25 0.734531 0.375 RAD 0.0078125
+   txt802 
+TEXDEF txt803 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.390469 APEX 0.25 0.625 0.484531 RAD 0.0078125
+   txt803 
+TEXDEF txt804 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.5 RAD 0.03125 
+   txt804 
+TEXDEF txt805 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.5 APEX 0.359531 0.625 0.5 RAD 0.0078125
+   txt805 
+TEXDEF txt806 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.5 APEX 0.25 0.734531 0.5 RAD 0.0078125
+   txt806 
+TEXDEF txt807 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.515469 APEX 0.25 0.625 0.609531 RAD 0.0078125
+   txt807 
+TEXDEF txt808 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.625 RAD 0.03125 
+   txt808 
+TEXDEF txt809 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.625 APEX 0.359531 0.625 0.625 RAD 0.0078125
+   txt809 
+TEXDEF txt810 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.625 APEX 0.25 0.734531 0.625 RAD 0.0078125
+   txt810 
+TEXDEF txt811 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.640469 APEX 0.25 0.625 0.734531 RAD 0.0078125
+   txt811 
+TEXDEF txt812 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.75 RAD 0.03125 
+   txt812 
+TEXDEF txt813 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.75 APEX 0.359531 0.625 0.75 RAD 0.0078125
+   txt813 
+TEXDEF txt814 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.75 APEX 0.25 0.734531 0.75 RAD 0.0078125
+   txt814 
+TEXDEF txt815 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.765469 APEX 0.25 0.625 0.859531 RAD 0.0078125
+   txt815 
+TEXDEF txt816 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 0.875 RAD 0.03125 
+   txt816 
+TEXDEF txt817 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 0.875 APEX 0.359531 0.625 0.875 RAD 0.0078125
+   txt817 
+TEXDEF txt818 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 0.875 APEX 0.25 0.734531 0.875 RAD 0.0078125
+   txt818 
+TEXDEF txt819 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.625 0.890469 APEX 0.25 0.625 0.984531 RAD 0.0078125
+   txt819 
+TEXDEF txt820 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.625 1 RAD 0.03125 
+   txt820 
+TEXDEF txt821 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.625 1 APEX 0.359531 0.625 1 RAD 0.0078125
+   txt821 
+TEXDEF txt822 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.640469 1 APEX 0.25 0.734531 1 RAD 0.0078125
+   txt822 
+TEXDEF txt823 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0 RAD 0.03125 
+   txt823 
+TEXDEF txt824 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0 APEX 0.359531 0.75 0 RAD 0.0078125
+   txt824 
+TEXDEF txt825 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0 APEX 0.25 0.859531 0 RAD 0.0078125
+   txt825 
+TEXDEF txt826 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.0154687 APEX 0.25 0.75 0.109531 RAD 0.0078125
+   txt826 
+TEXDEF txt827 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.125 RAD 0.03125 
+   txt827 
+TEXDEF txt828 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.125 APEX 0.359531 0.75 0.125 RAD 0.0078125
+   txt828 
+TEXDEF txt829 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.125 APEX 0.25 0.859531 0.125 RAD 0.0078125
+   txt829 
+TEXDEF txt830 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.140469 APEX 0.25 0.75 0.234531 RAD 0.0078125
+   txt830 
+TEXDEF txt831 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.25 RAD 0.03125 
+   txt831 
+TEXDEF txt832 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.25 APEX 0.359531 0.75 0.25 RAD 0.0078125
+   txt832 
+TEXDEF txt833 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.25 APEX 0.25 0.859531 0.25 RAD 0.0078125
+   txt833 
+TEXDEF txt834 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.265469 APEX 0.25 0.75 0.359531 RAD 0.0078125
+   txt834 
+TEXDEF txt835 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.375 RAD 0.03125 
+   txt835 
+TEXDEF txt836 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.375 APEX 0.359531 0.75 0.375 RAD 0.0078125
+   txt836 
+TEXDEF txt837 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.375 APEX 0.25 0.859531 0.375 RAD 0.0078125
+   txt837 
+TEXDEF txt838 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.390469 APEX 0.25 0.75 0.484531 RAD 0.0078125
+   txt838 
+TEXDEF txt839 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.5 RAD 0.03125 
+   txt839 
+TEXDEF txt840 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.5 APEX 0.359531 0.75 0.5 RAD 0.0078125
+   txt840 
+TEXDEF txt841 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.5 APEX 0.25 0.859531 0.5 RAD 0.0078125
+   txt841 
+TEXDEF txt842 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.515469 APEX 0.25 0.75 0.609531 RAD 0.0078125
+   txt842 
+TEXDEF txt843 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.625 RAD 0.03125 
+   txt843 
+TEXDEF txt844 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.625 APEX 0.359531 0.75 0.625 RAD 0.0078125
+   txt844 
+TEXDEF txt845 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.625 APEX 0.25 0.859531 0.625 RAD 0.0078125
+   txt845 
+TEXDEF txt846 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.640469 APEX 0.25 0.75 0.734531 RAD 0.0078125
+   txt846 
+TEXDEF txt847 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.75 RAD 0.03125 
+   txt847 
+TEXDEF txt848 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.75 APEX 0.359531 0.75 0.75 RAD 0.0078125
+   txt848 
+TEXDEF txt849 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.75 APEX 0.25 0.859531 0.75 RAD 0.0078125
+   txt849 
+TEXDEF txt850 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.765469 APEX 0.25 0.75 0.859531 RAD 0.0078125
+   txt850 
+TEXDEF txt851 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 0.875 RAD 0.03125 
+   txt851 
+TEXDEF txt852 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 0.875 APEX 0.359531 0.75 0.875 RAD 0.0078125
+   txt852 
+TEXDEF txt853 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 0.875 APEX 0.25 0.859531 0.875 RAD 0.0078125
+   txt853 
+TEXDEF txt854 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.75 0.890469 APEX 0.25 0.75 0.984531 RAD 0.0078125
+   txt854 
+TEXDEF txt855 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.75 1 RAD 0.03125 
+   txt855 
+TEXDEF txt856 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.75 1 APEX 0.359531 0.75 1 RAD 0.0078125
+   txt856 
+TEXDEF txt857 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.765469 1 APEX 0.25 0.859531 1 RAD 0.0078125
+   txt857 
+TEXDEF txt858 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0 RAD 0.03125 
+   txt858 
+TEXDEF txt859 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0 APEX 0.359531 0.875 0 RAD 0.0078125
+   txt859 
+TEXDEF txt860 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0 APEX 0.25 0.984531 0 RAD 0.0078125
+   txt860 
+TEXDEF txt861 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.0154687 APEX 0.25 0.875 0.109531 RAD 0.0078125
+   txt861 
+TEXDEF txt862 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.125 RAD 0.03125 
+   txt862 
+TEXDEF txt863 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.125 APEX 0.359531 0.875 0.125 RAD 0.0078125
+   txt863 
+TEXDEF txt864 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.125 APEX 0.25 0.984531 0.125 RAD 0.0078125
+   txt864 
+TEXDEF txt865 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.140469 APEX 0.25 0.875 0.234531 RAD 0.0078125
+   txt865 
+TEXDEF txt866 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.25 RAD 0.03125 
+   txt866 
+TEXDEF txt867 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.25 APEX 0.359531 0.875 0.25 RAD 0.0078125
+   txt867 
+TEXDEF txt868 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.25 APEX 0.25 0.984531 0.25 RAD 0.0078125
+   txt868 
+TEXDEF txt869 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.265469 APEX 0.25 0.875 0.359531 RAD 0.0078125
+   txt869 
+TEXDEF txt870 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.375 RAD 0.03125 
+   txt870 
+TEXDEF txt871 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.375 APEX 0.359531 0.875 0.375 RAD 0.0078125
+   txt871 
+TEXDEF txt872 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.375 APEX 0.25 0.984531 0.375 RAD 0.0078125
+   txt872 
+TEXDEF txt873 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.390469 APEX 0.25 0.875 0.484531 RAD 0.0078125
+   txt873 
+TEXDEF txt874 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.5 RAD 0.03125 
+   txt874 
+TEXDEF txt875 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.5 APEX 0.359531 0.875 0.5 RAD 0.0078125
+   txt875 
+TEXDEF txt876 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.5 APEX 0.25 0.984531 0.5 RAD 0.0078125
+   txt876 
+TEXDEF txt877 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.515469 APEX 0.25 0.875 0.609531 RAD 0.0078125
+   txt877 
+TEXDEF txt878 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.625 RAD 0.03125 
+   txt878 
+TEXDEF txt879 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.625 APEX 0.359531 0.875 0.625 RAD 0.0078125
+   txt879 
+TEXDEF txt880 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.625 APEX 0.25 0.984531 0.625 RAD 0.0078125
+   txt880 
+TEXDEF txt881 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.640469 APEX 0.25 0.875 0.734531 RAD 0.0078125
+   txt881 
+TEXDEF txt882 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.75 RAD 0.03125 
+   txt882 
+TEXDEF txt883 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.75 APEX 0.359531 0.875 0.75 RAD 0.0078125
+   txt883 
+TEXDEF txt884 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.75 APEX 0.25 0.984531 0.75 RAD 0.0078125
+   txt884 
+TEXDEF txt885 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.765469 APEX 0.25 0.875 0.859531 RAD 0.0078125
+   txt885 
+TEXDEF txt886 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 0.875 RAD 0.03125 
+   txt886 
+TEXDEF txt887 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 0.875 APEX 0.359531 0.875 0.875 RAD 0.0078125
+   txt887 
+TEXDEF txt888 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 0.875 APEX 0.25 0.984531 0.875 RAD 0.0078125
+   txt888 
+TEXDEF txt889 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.875 0.890469 APEX 0.25 0.875 0.984531 RAD 0.0078125
+   txt889 
+TEXDEF txt890 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 0.875 1 RAD 0.03125 
+   txt890 
+TEXDEF txt891 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 0.875 1 APEX 0.359531 0.875 1 RAD 0.0078125
+   txt891 
+TEXDEF txt892 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 0.890469 1 APEX 0.25 0.984531 1 RAD 0.0078125
+   txt892 
+TEXDEF txt893 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0 RAD 0.03125 
+   txt893 
+TEXDEF txt894 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0 APEX 0.359531 1 0 RAD 0.0078125
+   txt894 
+TEXDEF txt895 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.0154687 APEX 0.25 1 0.109531 RAD 0.0078125
+   txt895 
+TEXDEF txt896 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.125 RAD 0.03125 
+   txt896 
+TEXDEF txt897 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.125 APEX 0.359531 1 0.125 RAD 0.0078125
+   txt897 
+TEXDEF txt898 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.140469 APEX 0.25 1 0.234531 RAD 0.0078125
+   txt898 
+TEXDEF txt899 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.25 RAD 0.03125 
+   txt899 
+TEXDEF txt900 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.25 APEX 0.359531 1 0.25 RAD 0.0078125
+   txt900 
+TEXDEF txt901 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.265469 APEX 0.25 1 0.359531 RAD 0.0078125
+   txt901 
+TEXDEF txt902 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.375 RAD 0.03125 
+   txt902 
+TEXDEF txt903 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.375 APEX 0.359531 1 0.375 RAD 0.0078125
+   txt903 
+TEXDEF txt904 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.390469 APEX 0.25 1 0.484531 RAD 0.0078125
+   txt904 
+TEXDEF txt905 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.5 RAD 0.03125 
+   txt905 
+TEXDEF txt906 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.5 APEX 0.359531 1 0.5 RAD 0.0078125
+   txt906 
+TEXDEF txt907 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.515469 APEX 0.25 1 0.609531 RAD 0.0078125
+   txt907 
+TEXDEF txt908 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.625 RAD 0.03125 
+   txt908 
+TEXDEF txt909 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.625 APEX 0.359531 1 0.625 RAD 0.0078125
+   txt909 
+TEXDEF txt910 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.640469 APEX 0.25 1 0.734531 RAD 0.0078125
+   txt910 
+TEXDEF txt911 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.75 RAD 0.03125 
+   txt911 
+TEXDEF txt912 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.75 APEX 0.359531 1 0.75 RAD 0.0078125
+   txt912 
+TEXDEF txt913 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.765469 APEX 0.25 1 0.859531 RAD 0.0078125
+   txt913 
+TEXDEF txt914 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 0.875 RAD 0.03125 
+   txt914 
+TEXDEF txt915 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 0.875 APEX 0.359531 1 0.875 RAD 0.0078125
+   txt915 
+TEXDEF txt916 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.25 1 0.890469 APEX 0.25 1 0.984531 RAD 0.0078125
+   txt916 
+TEXDEF txt917 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.25 1 1 RAD 0.03125 
+   txt917 
+TEXDEF txt918 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.265469 1 1 APEX 0.359531 1 1 RAD 0.0078125
+   txt918 
+TEXDEF txt919 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0 RAD 0.03125 
+   txt919 
+TEXDEF txt920 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0 APEX 0.484531 0 0 RAD 0.0078125
+   txt920 
+TEXDEF txt921 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0 APEX 0.375 0.109531 0 RAD 0.0078125
+   txt921 
+TEXDEF txt922 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.0154687 APEX 0.375 0 0.109531 RAD 0.0078125
+   txt922 
+TEXDEF txt923 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.125 RAD 0.03125 
+   txt923 
+TEXDEF txt924 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.125 APEX 0.484531 0 0.125 RAD 0.0078125
+   txt924 
+TEXDEF txt925 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.125 APEX 0.375 0.109531 0.125 RAD 0.0078125
+   txt925 
+TEXDEF txt926 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.140469 APEX 0.375 0 0.234531 RAD 0.0078125
+   txt926 
+TEXDEF txt927 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.25 RAD 0.03125 
+   txt927 
+TEXDEF txt928 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.25 APEX 0.484531 0 0.25 RAD 0.0078125
+   txt928 
+TEXDEF txt929 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.25 APEX 0.375 0.109531 0.25 RAD 0.0078125
+   txt929 
+TEXDEF txt930 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.265469 APEX 0.375 0 0.359531 RAD 0.0078125
+   txt930 
+TEXDEF txt931 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.375 RAD 0.03125 
+   txt931 
+TEXDEF txt932 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.375 APEX 0.484531 0 0.375 RAD 0.0078125
+   txt932 
+TEXDEF txt933 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.375 APEX 0.375 0.109531 0.375 RAD 0.0078125
+   txt933 
+TEXDEF txt934 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.390469 APEX 0.375 0 0.484531 RAD 0.0078125
+   txt934 
+TEXDEF txt935 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.5 RAD 0.03125 
+   txt935 
+TEXDEF txt936 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.5 APEX 0.484531 0 0.5 RAD 0.0078125
+   txt936 
+TEXDEF txt937 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.5 APEX 0.375 0.109531 0.5 RAD 0.0078125
+   txt937 
+TEXDEF txt938 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.515469 APEX 0.375 0 0.609531 RAD 0.0078125
+   txt938 
+TEXDEF txt939 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.625 RAD 0.03125 
+   txt939 
+TEXDEF txt940 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.625 APEX 0.484531 0 0.625 RAD 0.0078125
+   txt940 
+TEXDEF txt941 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.625 APEX 0.375 0.109531 0.625 RAD 0.0078125
+   txt941 
+TEXDEF txt942 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.640469 APEX 0.375 0 0.734531 RAD 0.0078125
+   txt942 
+TEXDEF txt943 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.75 RAD 0.03125 
+   txt943 
+TEXDEF txt944 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.75 APEX 0.484531 0 0.75 RAD 0.0078125
+   txt944 
+TEXDEF txt945 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.75 APEX 0.375 0.109531 0.75 RAD 0.0078125
+   txt945 
+TEXDEF txt946 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.765469 APEX 0.375 0 0.859531 RAD 0.0078125
+   txt946 
+TEXDEF txt947 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 0.875 RAD 0.03125 
+   txt947 
+TEXDEF txt948 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 0.875 APEX 0.484531 0 0.875 RAD 0.0078125
+   txt948 
+TEXDEF txt949 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 0.875 APEX 0.375 0.109531 0.875 RAD 0.0078125
+   txt949 
+TEXDEF txt950 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0 0.890469 APEX 0.375 0 0.984531 RAD 0.0078125
+   txt950 
+TEXDEF txt951 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0 1 RAD 0.03125 
+   txt951 
+TEXDEF txt952 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0 1 APEX 0.484531 0 1 RAD 0.0078125
+   txt952 
+TEXDEF txt953 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.0154687 1 APEX 0.375 0.109531 1 RAD 0.0078125
+   txt953 
+TEXDEF txt954 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0 RAD 0.03125 
+   txt954 
+TEXDEF txt955 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0 APEX 0.484531 0.125 0 RAD 0.0078125
+   txt955 
+TEXDEF txt956 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0 APEX 0.375 0.234531 0 RAD 0.0078125
+   txt956 
+TEXDEF txt957 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.0154687 APEX 0.375 0.125 0.109531 RAD 0.0078125
+   txt957 
+TEXDEF txt958 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.125 RAD 0.03125 
+   txt958 
+TEXDEF txt959 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.125 APEX 0.484531 0.125 0.125 RAD 0.0078125
+   txt959 
+TEXDEF txt960 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.125 APEX 0.375 0.234531 0.125 RAD 0.0078125
+   txt960 
+TEXDEF txt961 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.140469 APEX 0.375 0.125 0.234531 RAD 0.0078125
+   txt961 
+TEXDEF txt962 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.25 RAD 0.03125 
+   txt962 
+TEXDEF txt963 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.25 APEX 0.484531 0.125 0.25 RAD 0.0078125
+   txt963 
+TEXDEF txt964 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.25 APEX 0.375 0.234531 0.25 RAD 0.0078125
+   txt964 
+TEXDEF txt965 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.265469 APEX 0.375 0.125 0.359531 RAD 0.0078125
+   txt965 
+TEXDEF txt966 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.375 RAD 0.03125 
+   txt966 
+TEXDEF txt967 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.375 APEX 0.484531 0.125 0.375 RAD 0.0078125
+   txt967 
+TEXDEF txt968 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.375 APEX 0.375 0.234531 0.375 RAD 0.0078125
+   txt968 
+TEXDEF txt969 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.390469 APEX 0.375 0.125 0.484531 RAD 0.0078125
+   txt969 
+TEXDEF txt970 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.5 RAD 0.03125 
+   txt970 
+TEXDEF txt971 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.5 APEX 0.484531 0.125 0.5 RAD 0.0078125
+   txt971 
+TEXDEF txt972 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.5 APEX 0.375 0.234531 0.5 RAD 0.0078125
+   txt972 
+TEXDEF txt973 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.515469 APEX 0.375 0.125 0.609531 RAD 0.0078125
+   txt973 
+TEXDEF txt974 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.625 RAD 0.03125 
+   txt974 
+TEXDEF txt975 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.625 APEX 0.484531 0.125 0.625 RAD 0.0078125
+   txt975 
+TEXDEF txt976 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.625 APEX 0.375 0.234531 0.625 RAD 0.0078125
+   txt976 
+TEXDEF txt977 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.640469 APEX 0.375 0.125 0.734531 RAD 0.0078125
+   txt977 
+TEXDEF txt978 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.75 RAD 0.03125 
+   txt978 
+TEXDEF txt979 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.75 APEX 0.484531 0.125 0.75 RAD 0.0078125
+   txt979 
+TEXDEF txt980 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.75 APEX 0.375 0.234531 0.75 RAD 0.0078125
+   txt980 
+TEXDEF txt981 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.765469 APEX 0.375 0.125 0.859531 RAD 0.0078125
+   txt981 
+TEXDEF txt982 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 0.875 RAD 0.03125 
+   txt982 
+TEXDEF txt983 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 0.875 APEX 0.484531 0.125 0.875 RAD 0.0078125
+   txt983 
+TEXDEF txt984 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 0.875 APEX 0.375 0.234531 0.875 RAD 0.0078125
+   txt984 
+TEXDEF txt985 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.125 0.890469 APEX 0.375 0.125 0.984531 RAD 0.0078125
+   txt985 
+TEXDEF txt986 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.125 1 RAD 0.03125 
+   txt986 
+TEXDEF txt987 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.125 1 APEX 0.484531 0.125 1 RAD 0.0078125
+   txt987 
+TEXDEF txt988 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.140469 1 APEX 0.375 0.234531 1 RAD 0.0078125
+   txt988 
+TEXDEF txt989 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0 RAD 0.03125 
+   txt989 
+TEXDEF txt990 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0 APEX 0.484531 0.25 0 RAD 0.0078125
+   txt990 
+TEXDEF txt991 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0 APEX 0.375 0.359531 0 RAD 0.0078125
+   txt991 
+TEXDEF txt992 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.0154687 APEX 0.375 0.25 0.109531 RAD 0.0078125
+   txt992 
+TEXDEF txt993 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.125 RAD 0.03125 
+   txt993 
+TEXDEF txt994 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.125 APEX 0.484531 0.25 0.125 RAD 0.0078125
+   txt994 
+TEXDEF txt995 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.125 APEX 0.375 0.359531 0.125 RAD 0.0078125
+   txt995 
+TEXDEF txt996 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.140469 APEX 0.375 0.25 0.234531 RAD 0.0078125
+   txt996 
+TEXDEF txt997 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.25 RAD 0.03125 
+   txt997 
+TEXDEF txt998 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.25 APEX 0.484531 0.25 0.25 RAD 0.0078125
+   txt998 
+TEXDEF txt999 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.25 APEX 0.375 0.359531 0.25 RAD 0.0078125
+   txt999 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.265469 APEX 0.375 0.25 0.359531 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.375 RAD 0.03125 
+   txt100 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.375 APEX 0.484531 0.25 0.375 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.375 APEX 0.375 0.359531 0.375 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.390469 APEX 0.375 0.25 0.484531 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.5 RAD 0.03125 
+   txt100 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.5 APEX 0.484531 0.25 0.5 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.5 APEX 0.375 0.359531 0.5 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.515469 APEX 0.375 0.25 0.609531 RAD 0.0078125
+   txt100 
+TEXDEF txt100 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.625 RAD 0.03125 
+   txt100 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.625 APEX 0.484531 0.25 0.625 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.625 APEX 0.375 0.359531 0.625 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.640469 APEX 0.375 0.25 0.734531 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.75 RAD 0.03125 
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.75 APEX 0.484531 0.25 0.75 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.75 APEX 0.375 0.359531 0.75 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.765469 APEX 0.375 0.25 0.859531 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 0.875 RAD 0.03125 
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 0.875 APEX 0.484531 0.25 0.875 RAD 0.0078125
+   txt101 
+TEXDEF txt101 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 0.875 APEX 0.375 0.359531 0.875 RAD 0.0078125
+   txt101 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.25 0.890469 APEX 0.375 0.25 0.984531 RAD 0.0078125
+   txt102 
+TEXDEF txt102 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.25 1 RAD 0.03125 
+   txt102 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.25 1 APEX 0.484531 0.25 1 RAD 0.0078125
+   txt102 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.265469 1 APEX 0.375 0.359531 1 RAD 0.0078125
+   txt102 
+TEXDEF txt102 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0 RAD 0.03125 
+   txt102 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0 APEX 0.484531 0.375 0 RAD 0.0078125
+   txt102 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0 APEX 0.375 0.484531 0 RAD 0.0078125
+   txt102 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.0154687 APEX 0.375 0.375 0.109531 RAD 0.0078125
+   txt102 
+TEXDEF txt102 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.125 RAD 0.03125 
+   txt102 
+TEXDEF txt102 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.125 APEX 0.484531 0.375 0.125 RAD 0.0078125
+   txt102 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.125 APEX 0.375 0.484531 0.125 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.140469 APEX 0.375 0.375 0.234531 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.25 RAD 0.03125 
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.25 APEX 0.484531 0.375 0.25 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.25 APEX 0.375 0.484531 0.25 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.265469 APEX 0.375 0.375 0.359531 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.375 RAD 0.03125 
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.375 APEX 0.484531 0.375 0.375 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.375 APEX 0.375 0.484531 0.375 RAD 0.0078125
+   txt103 
+TEXDEF txt103 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.390469 APEX 0.375 0.375 0.484531 RAD 0.0078125
+   txt103 
+TEXDEF txt104 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.5 RAD 0.03125 
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.5 APEX 0.484531 0.375 0.5 RAD 0.0078125
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.5 APEX 0.375 0.484531 0.5 RAD 0.0078125
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.515469 APEX 0.375 0.375 0.609531 RAD 0.0078125
+   txt104 
+TEXDEF txt104 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.625 RAD 0.03125 
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.625 APEX 0.484531 0.375 0.625 RAD 0.0078125
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.625 APEX 0.375 0.484531 0.625 RAD 0.0078125
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.640469 APEX 0.375 0.375 0.734531 RAD 0.0078125
+   txt104 
+TEXDEF txt104 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.75 RAD 0.03125 
+   txt104 
+TEXDEF txt104 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.75 APEX 0.484531 0.375 0.75 RAD 0.0078125
+   txt104 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.75 APEX 0.375 0.484531 0.75 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.765469 APEX 0.375 0.375 0.859531 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 0.875 RAD 0.03125 
+   txt105 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 0.875 APEX 0.484531 0.375 0.875 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 0.875 APEX 0.375 0.484531 0.875 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.375 0.890469 APEX 0.375 0.375 0.984531 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.375 1 RAD 0.03125 
+   txt105 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.375 1 APEX 0.484531 0.375 1 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.390469 1 APEX 0.375 0.484531 1 RAD 0.0078125
+   txt105 
+TEXDEF txt105 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0 RAD 0.03125 
+   txt105 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0 APEX 0.484531 0.5 0 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0 APEX 0.375 0.609531 0 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.0154687 APEX 0.375 0.5 0.109531 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.125 RAD 0.03125 
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.125 APEX 0.484531 0.5 0.125 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.125 APEX 0.375 0.609531 0.125 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.140469 APEX 0.375 0.5 0.234531 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.25 RAD 0.03125 
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.25 APEX 0.484531 0.5 0.25 RAD 0.0078125
+   txt106 
+TEXDEF txt106 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.25 APEX 0.375 0.609531 0.25 RAD 0.0078125
+   txt106 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.265469 APEX 0.375 0.5 0.359531 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.375 RAD 0.03125 
+   txt107 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.375 APEX 0.484531 0.5 0.375 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.375 APEX 0.375 0.609531 0.375 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.390469 APEX 0.375 0.5 0.484531 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.5 RAD 0.03125 
+   txt107 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.5 APEX 0.484531 0.5 0.5 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.5 APEX 0.375 0.609531 0.5 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.515469 APEX 0.375 0.5 0.609531 RAD 0.0078125
+   txt107 
+TEXDEF txt107 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.625 RAD 0.03125 
+   txt107 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.625 APEX 0.484531 0.5 0.625 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.625 APEX 0.375 0.609531 0.625 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.640469 APEX 0.375 0.5 0.734531 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.75 RAD 0.03125 
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.75 APEX 0.484531 0.5 0.75 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.75 APEX 0.375 0.609531 0.75 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.765469 APEX 0.375 0.5 0.859531 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 0.875 RAD 0.03125 
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 0.875 APEX 0.484531 0.5 0.875 RAD 0.0078125
+   txt108 
+TEXDEF txt108 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 0.875 APEX 0.375 0.609531 0.875 RAD 0.0078125
+   txt108 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.5 0.890469 APEX 0.375 0.5 0.984531 RAD 0.0078125
+   txt109 
+TEXDEF txt109 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.5 1 RAD 0.03125 
+   txt109 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.5 1 APEX 0.484531 0.5 1 RAD 0.0078125
+   txt109 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.515469 1 APEX 0.375 0.609531 1 RAD 0.0078125
+   txt109 
+TEXDEF txt109 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0 RAD 0.03125 
+   txt109 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0 APEX 0.484531 0.625 0 RAD 0.0078125
+   txt109 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0 APEX 0.375 0.734531 0 RAD 0.0078125
+   txt109 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.0154687 APEX 0.375 0.625 0.109531 RAD 0.0078125
+   txt109 
+TEXDEF txt109 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.125 RAD 0.03125 
+   txt109 
+TEXDEF txt109 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.125 APEX 0.484531 0.625 0.125 RAD 0.0078125
+   txt109 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.125 APEX 0.375 0.734531 0.125 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.140469 APEX 0.375 0.625 0.234531 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.25 RAD 0.03125 
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.25 APEX 0.484531 0.625 0.25 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.25 APEX 0.375 0.734531 0.25 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.265469 APEX 0.375 0.625 0.359531 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.375 RAD 0.03125 
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.375 APEX 0.484531 0.625 0.375 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.375 APEX 0.375 0.734531 0.375 RAD 0.0078125
+   txt110 
+TEXDEF txt110 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.390469 APEX 0.375 0.625 0.484531 RAD 0.0078125
+   txt110 
+TEXDEF txt111 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.5 RAD 0.03125 
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.5 APEX 0.484531 0.625 0.5 RAD 0.0078125
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.5 APEX 0.375 0.734531 0.5 RAD 0.0078125
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.515469 APEX 0.375 0.625 0.609531 RAD 0.0078125
+   txt111 
+TEXDEF txt111 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.625 RAD 0.03125 
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.625 APEX 0.484531 0.625 0.625 RAD 0.0078125
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.625 APEX 0.375 0.734531 0.625 RAD 0.0078125
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.640469 APEX 0.375 0.625 0.734531 RAD 0.0078125
+   txt111 
+TEXDEF txt111 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.75 RAD 0.03125 
+   txt111 
+TEXDEF txt111 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.75 APEX 0.484531 0.625 0.75 RAD 0.0078125
+   txt111 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.75 APEX 0.375 0.734531 0.75 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.765469 APEX 0.375 0.625 0.859531 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 0.875 RAD 0.03125 
+   txt112 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 0.875 APEX 0.484531 0.625 0.875 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 0.875 APEX 0.375 0.734531 0.875 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.625 0.890469 APEX 0.375 0.625 0.984531 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.625 1 RAD 0.03125 
+   txt112 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.625 1 APEX 0.484531 0.625 1 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.640469 1 APEX 0.375 0.734531 1 RAD 0.0078125
+   txt112 
+TEXDEF txt112 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0 RAD 0.03125 
+   txt112 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0 APEX 0.484531 0.75 0 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0 APEX 0.375 0.859531 0 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.0154687 APEX 0.375 0.75 0.109531 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.125 RAD 0.03125 
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.125 APEX 0.484531 0.75 0.125 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.125 APEX 0.375 0.859531 0.125 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.140469 APEX 0.375 0.75 0.234531 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.25 RAD 0.03125 
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.25 APEX 0.484531 0.75 0.25 RAD 0.0078125
+   txt113 
+TEXDEF txt113 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.25 APEX 0.375 0.859531 0.25 RAD 0.0078125
+   txt113 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.265469 APEX 0.375 0.75 0.359531 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.375 RAD 0.03125 
+   txt114 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.375 APEX 0.484531 0.75 0.375 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.375 APEX 0.375 0.859531 0.375 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.390469 APEX 0.375 0.75 0.484531 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.5 RAD 0.03125 
+   txt114 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.5 APEX 0.484531 0.75 0.5 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.5 APEX 0.375 0.859531 0.5 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.515469 APEX 0.375 0.75 0.609531 RAD 0.0078125
+   txt114 
+TEXDEF txt114 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.625 RAD 0.03125 
+   txt114 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.625 APEX 0.484531 0.75 0.625 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.625 APEX 0.375 0.859531 0.625 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.640469 APEX 0.375 0.75 0.734531 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.75 RAD 0.03125 
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.75 APEX 0.484531 0.75 0.75 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.75 APEX 0.375 0.859531 0.75 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.765469 APEX 0.375 0.75 0.859531 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 0.875 RAD 0.03125 
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 0.875 APEX 0.484531 0.75 0.875 RAD 0.0078125
+   txt115 
+TEXDEF txt115 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 0.875 APEX 0.375 0.859531 0.875 RAD 0.0078125
+   txt115 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.75 0.890469 APEX 0.375 0.75 0.984531 RAD 0.0078125
+   txt116 
+TEXDEF txt116 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.75 1 RAD 0.03125 
+   txt116 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.75 1 APEX 0.484531 0.75 1 RAD 0.0078125
+   txt116 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.765469 1 APEX 0.375 0.859531 1 RAD 0.0078125
+   txt116 
+TEXDEF txt116 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0 RAD 0.03125 
+   txt116 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0 APEX 0.484531 0.875 0 RAD 0.0078125
+   txt116 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0 APEX 0.375 0.984531 0 RAD 0.0078125
+   txt116 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.0154687 APEX 0.375 0.875 0.109531 RAD 0.0078125
+   txt116 
+TEXDEF txt116 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.125 RAD 0.03125 
+   txt116 
+TEXDEF txt116 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.125 APEX 0.484531 0.875 0.125 RAD 0.0078125
+   txt116 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.125 APEX 0.375 0.984531 0.125 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.140469 APEX 0.375 0.875 0.234531 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.25 RAD 0.03125 
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.25 APEX 0.484531 0.875 0.25 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.25 APEX 0.375 0.984531 0.25 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.265469 APEX 0.375 0.875 0.359531 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.375 RAD 0.03125 
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.375 APEX 0.484531 0.875 0.375 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.375 APEX 0.375 0.984531 0.375 RAD 0.0078125
+   txt117 
+TEXDEF txt117 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.390469 APEX 0.375 0.875 0.484531 RAD 0.0078125
+   txt117 
+TEXDEF txt118 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.5 RAD 0.03125 
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.5 APEX 0.484531 0.875 0.5 RAD 0.0078125
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.5 APEX 0.375 0.984531 0.5 RAD 0.0078125
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.515469 APEX 0.375 0.875 0.609531 RAD 0.0078125
+   txt118 
+TEXDEF txt118 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.625 RAD 0.03125 
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.625 APEX 0.484531 0.875 0.625 RAD 0.0078125
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.625 APEX 0.375 0.984531 0.625 RAD 0.0078125
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.640469 APEX 0.375 0.875 0.734531 RAD 0.0078125
+   txt118 
+TEXDEF txt118 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.75 RAD 0.03125 
+   txt118 
+TEXDEF txt118 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.75 APEX 0.484531 0.875 0.75 RAD 0.0078125
+   txt118 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.75 APEX 0.375 0.984531 0.75 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.765469 APEX 0.375 0.875 0.859531 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 0.875 RAD 0.03125 
+   txt119 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 0.875 APEX 0.484531 0.875 0.875 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 0.875 APEX 0.375 0.984531 0.875 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.875 0.890469 APEX 0.375 0.875 0.984531 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 0.875 1 RAD 0.03125 
+   txt119 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 0.875 1 APEX 0.484531 0.875 1 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 0.890469 1 APEX 0.375 0.984531 1 RAD 0.0078125
+   txt119 
+TEXDEF txt119 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0 RAD 0.03125 
+   txt119 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0 APEX 0.484531 1 0 RAD 0.0078125
+   txt120 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.0154687 APEX 0.375 1 0.109531 RAD 0.0078125
+   txt120 
+TEXDEF txt120 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.125 RAD 0.03125 
+   txt120 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.125 APEX 0.484531 1 0.125 RAD 0.0078125
+   txt120 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.140469 APEX 0.375 1 0.234531 RAD 0.0078125
+   txt120 
+TEXDEF txt120 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.25 RAD 0.03125 
+   txt120 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.25 APEX 0.484531 1 0.25 RAD 0.0078125
+   txt120 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.265469 APEX 0.375 1 0.359531 RAD 0.0078125
+   txt120 
+TEXDEF txt120 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.375 RAD 0.03125 
+   txt120 
+TEXDEF txt120 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.375 APEX 0.484531 1 0.375 RAD 0.0078125
+   txt120 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.390469 APEX 0.375 1 0.484531 RAD 0.0078125
+   txt121 
+TEXDEF txt121 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.5 RAD 0.03125 
+   txt121 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.5 APEX 0.484531 1 0.5 RAD 0.0078125
+   txt121 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.515469 APEX 0.375 1 0.609531 RAD 0.0078125
+   txt121 
+TEXDEF txt121 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.625 RAD 0.03125 
+   txt121 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.625 APEX 0.484531 1 0.625 RAD 0.0078125
+   txt121 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.640469 APEX 0.375 1 0.734531 RAD 0.0078125
+   txt121 
+TEXDEF txt121 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.75 RAD 0.03125 
+   txt121 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.75 APEX 0.484531 1 0.75 RAD 0.0078125
+   txt121 
+TEXDEF txt121 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.765469 APEX 0.375 1 0.859531 RAD 0.0078125
+   txt121 
+TEXDEF txt122 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 0.875 RAD 0.03125 
+   txt122 
+TEXDEF txt122 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 0.875 APEX 0.484531 1 0.875 RAD 0.0078125
+   txt122 
+TEXDEF txt122 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.375 1 0.890469 APEX 0.375 1 0.984531 RAD 0.0078125
+   txt122 
+TEXDEF txt122 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.375 1 1 RAD 0.03125 
+   txt122 
+TEXDEF txt122 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.390469 1 1 APEX 0.484531 1 1 RAD 0.0078125
+   txt122 
+TEXDEF txt122 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0 RAD 0.03125 
+   txt122 
+TEXDEF txt122 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0 APEX 0.609531 0 0 RAD 0.0078125
+   txt122 
+TEXDEF txt122 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0 APEX 0.5 0.109531 0 RAD 0.0078125
+   txt122 
+TEXDEF txt122 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.0154687 APEX 0.5 0 0.109531 RAD 0.0078125
+   txt122 
+TEXDEF txt122 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.125 RAD 0.03125 
+   txt122 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.125 APEX 0.609531 0 0.125 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.125 APEX 0.5 0.109531 0.125 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.140469 APEX 0.5 0 0.234531 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.25 RAD 0.03125 
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.25 APEX 0.609531 0 0.25 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.25 APEX 0.5 0.109531 0.25 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.265469 APEX 0.5 0 0.359531 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.375 RAD 0.03125 
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.375 APEX 0.609531 0 0.375 RAD 0.0078125
+   txt123 
+TEXDEF txt123 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.375 APEX 0.5 0.109531 0.375 RAD 0.0078125
+   txt123 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.390469 APEX 0.5 0 0.484531 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.5 RAD 0.03125 
+   txt124 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.5 APEX 0.609531 0 0.5 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.5 APEX 0.5 0.109531 0.5 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.515469 APEX 0.5 0 0.609531 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.625 RAD 0.03125 
+   txt124 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.625 APEX 0.609531 0 0.625 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.625 APEX 0.5 0.109531 0.625 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.640469 APEX 0.5 0 0.734531 RAD 0.0078125
+   txt124 
+TEXDEF txt124 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.75 RAD 0.03125 
+   txt124 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.75 APEX 0.609531 0 0.75 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.75 APEX 0.5 0.109531 0.75 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.765469 APEX 0.5 0 0.859531 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 0.875 RAD 0.03125 
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 0.875 APEX 0.609531 0 0.875 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 0.875 APEX 0.5 0.109531 0.875 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0 0.890469 APEX 0.5 0 0.984531 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0 1 RAD 0.03125 
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0 1 APEX 0.609531 0 1 RAD 0.0078125
+   txt125 
+TEXDEF txt125 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.0154687 1 APEX 0.5 0.109531 1 RAD 0.0078125
+   txt125 
+TEXDEF txt126 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0 RAD 0.03125 
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0 APEX 0.609531 0.125 0 RAD 0.0078125
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0 APEX 0.5 0.234531 0 RAD 0.0078125
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.0154687 APEX 0.5 0.125 0.109531 RAD 0.0078125
+   txt126 
+TEXDEF txt126 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.125 RAD 0.03125 
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.125 APEX 0.609531 0.125 0.125 RAD 0.0078125
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.125 APEX 0.5 0.234531 0.125 RAD 0.0078125
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.140469 APEX 0.5 0.125 0.234531 RAD 0.0078125
+   txt126 
+TEXDEF txt126 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.25 RAD 0.03125 
+   txt126 
+TEXDEF txt126 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.25 APEX 0.609531 0.125 0.25 RAD 0.0078125
+   txt126 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.25 APEX 0.5 0.234531 0.25 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.265469 APEX 0.5 0.125 0.359531 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.375 RAD 0.03125 
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.375 APEX 0.609531 0.125 0.375 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.375 APEX 0.5 0.234531 0.375 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.390469 APEX 0.5 0.125 0.484531 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.5 RAD 0.03125 
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.5 APEX 0.609531 0.125 0.5 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.5 APEX 0.5 0.234531 0.5 RAD 0.0078125
+   txt127 
+TEXDEF txt127 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.515469 APEX 0.5 0.125 0.609531 RAD 0.0078125
+   txt127 
+TEXDEF txt128 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.625 RAD 0.03125 
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.625 APEX 0.609531 0.125 0.625 RAD 0.0078125
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.625 APEX 0.5 0.234531 0.625 RAD 0.0078125
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.640469 APEX 0.5 0.125 0.734531 RAD 0.0078125
+   txt128 
+TEXDEF txt128 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.75 RAD 0.03125 
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.75 APEX 0.609531 0.125 0.75 RAD 0.0078125
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.75 APEX 0.5 0.234531 0.75 RAD 0.0078125
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.765469 APEX 0.5 0.125 0.859531 RAD 0.0078125
+   txt128 
+TEXDEF txt128 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 0.875 RAD 0.03125 
+   txt128 
+TEXDEF txt128 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 0.875 APEX 0.609531 0.125 0.875 RAD 0.0078125
+   txt128 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 0.875 APEX 0.5 0.234531 0.875 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.125 0.890469 APEX 0.5 0.125 0.984531 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.125 1 RAD 0.03125 
+   txt129 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.125 1 APEX 0.609531 0.125 1 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.140469 1 APEX 0.5 0.234531 1 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0 RAD 0.03125 
+   txt129 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0 APEX 0.609531 0.25 0 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0 APEX 0.5 0.359531 0 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.0154687 APEX 0.5 0.25 0.109531 RAD 0.0078125
+   txt129 
+TEXDEF txt129 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.125 RAD 0.03125 
+   txt129 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.125 APEX 0.609531 0.25 0.125 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.125 APEX 0.5 0.359531 0.125 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.140469 APEX 0.5 0.25 0.234531 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.25 RAD 0.03125 
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.25 APEX 0.609531 0.25 0.25 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.25 APEX 0.5 0.359531 0.25 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.265469 APEX 0.5 0.25 0.359531 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.375 RAD 0.03125 
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.375 APEX 0.609531 0.25 0.375 RAD 0.0078125
+   txt130 
+TEXDEF txt130 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.375 APEX 0.5 0.359531 0.375 RAD 0.0078125
+   txt130 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.390469 APEX 0.5 0.25 0.484531 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.5 RAD 0.03125 
+   txt131 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.5 APEX 0.609531 0.25 0.5 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.5 APEX 0.5 0.359531 0.5 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.515469 APEX 0.5 0.25 0.609531 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.625 RAD 0.03125 
+   txt131 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.625 APEX 0.609531 0.25 0.625 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.625 APEX 0.5 0.359531 0.625 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.640469 APEX 0.5 0.25 0.734531 RAD 0.0078125
+   txt131 
+TEXDEF txt131 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.75 RAD 0.03125 
+   txt131 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.75 APEX 0.609531 0.25 0.75 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.75 APEX 0.5 0.359531 0.75 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.765469 APEX 0.5 0.25 0.859531 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 0.875 RAD 0.03125 
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 0.875 APEX 0.609531 0.25 0.875 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 0.875 APEX 0.5 0.359531 0.875 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.25 0.890469 APEX 0.5 0.25 0.984531 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.25 1 RAD 0.03125 
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.25 1 APEX 0.609531 0.25 1 RAD 0.0078125
+   txt132 
+TEXDEF txt132 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.265469 1 APEX 0.5 0.359531 1 RAD 0.0078125
+   txt132 
+TEXDEF txt133 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0 RAD 0.03125 
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0 APEX 0.609531 0.375 0 RAD 0.0078125
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0 APEX 0.5 0.484531 0 RAD 0.0078125
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.0154687 APEX 0.5 0.375 0.109531 RAD 0.0078125
+   txt133 
+TEXDEF txt133 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.125 RAD 0.03125 
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.125 APEX 0.609531 0.375 0.125 RAD 0.0078125
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.125 APEX 0.5 0.484531 0.125 RAD 0.0078125
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.140469 APEX 0.5 0.375 0.234531 RAD 0.0078125
+   txt133 
+TEXDEF txt133 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.25 RAD 0.03125 
+   txt133 
+TEXDEF txt133 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.25 APEX 0.609531 0.375 0.25 RAD 0.0078125
+   txt133 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.25 APEX 0.5 0.484531 0.25 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.265469 APEX 0.5 0.375 0.359531 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.375 RAD 0.03125 
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.375 APEX 0.609531 0.375 0.375 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.375 APEX 0.5 0.484531 0.375 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.390469 APEX 0.5 0.375 0.484531 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.5 RAD 0.03125 
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.5 APEX 0.609531 0.375 0.5 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.5 APEX 0.5 0.484531 0.5 RAD 0.0078125
+   txt134 
+TEXDEF txt134 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.515469 APEX 0.5 0.375 0.609531 RAD 0.0078125
+   txt134 
+TEXDEF txt135 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.625 RAD 0.03125 
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.625 APEX 0.609531 0.375 0.625 RAD 0.0078125
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.625 APEX 0.5 0.484531 0.625 RAD 0.0078125
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.640469 APEX 0.5 0.375 0.734531 RAD 0.0078125
+   txt135 
+TEXDEF txt135 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.75 RAD 0.03125 
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.75 APEX 0.609531 0.375 0.75 RAD 0.0078125
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.75 APEX 0.5 0.484531 0.75 RAD 0.0078125
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.765469 APEX 0.5 0.375 0.859531 RAD 0.0078125
+   txt135 
+TEXDEF txt135 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 0.875 RAD 0.03125 
+   txt135 
+TEXDEF txt135 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 0.875 APEX 0.609531 0.375 0.875 RAD 0.0078125
+   txt135 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 0.875 APEX 0.5 0.484531 0.875 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.375 0.890469 APEX 0.5 0.375 0.984531 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.375 1 RAD 0.03125 
+   txt136 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.375 1 APEX 0.609531 0.375 1 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.390469 1 APEX 0.5 0.484531 1 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0 RAD 0.03125 
+   txt136 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0 APEX 0.609531 0.5 0 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0 APEX 0.5 0.609531 0 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.0154687 APEX 0.5 0.5 0.109531 RAD 0.0078125
+   txt136 
+TEXDEF txt136 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.125 RAD 0.03125 
+   txt136 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.125 APEX 0.609531 0.5 0.125 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.125 APEX 0.5 0.609531 0.125 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.140469 APEX 0.5 0.5 0.234531 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.25 RAD 0.03125 
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.25 APEX 0.609531 0.5 0.25 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.25 APEX 0.5 0.609531 0.25 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.265469 APEX 0.5 0.5 0.359531 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.375 RAD 0.03125 
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.375 APEX 0.609531 0.5 0.375 RAD 0.0078125
+   txt137 
+TEXDEF txt137 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.375 APEX 0.5 0.609531 0.375 RAD 0.0078125
+   txt137 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.390469 APEX 0.5 0.5 0.484531 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.5 RAD 0.03125 
+   txt138 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.5 APEX 0.609531 0.5 0.5 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.5 APEX 0.5 0.609531 0.5 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.515469 APEX 0.5 0.5 0.609531 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.625 RAD 0.03125 
+   txt138 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.625 APEX 0.609531 0.5 0.625 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.625 APEX 0.5 0.609531 0.625 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.640469 APEX 0.5 0.5 0.734531 RAD 0.0078125
+   txt138 
+TEXDEF txt138 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.75 RAD 0.03125 
+   txt138 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.75 APEX 0.609531 0.5 0.75 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.75 APEX 0.5 0.609531 0.75 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.765469 APEX 0.5 0.5 0.859531 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 0.875 RAD 0.03125 
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 0.875 APEX 0.609531 0.5 0.875 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 0.875 APEX 0.5 0.609531 0.875 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.5 0.890469 APEX 0.5 0.5 0.984531 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.5 1 RAD 0.03125 
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.5 1 APEX 0.609531 0.5 1 RAD 0.0078125
+   txt139 
+TEXDEF txt139 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.515469 1 APEX 0.5 0.609531 1 RAD 0.0078125
+   txt139 
+TEXDEF txt140 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0 RAD 0.03125 
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0 APEX 0.609531 0.625 0 RAD 0.0078125
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0 APEX 0.5 0.734531 0 RAD 0.0078125
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.0154687 APEX 0.5 0.625 0.109531 RAD 0.0078125
+   txt140 
+TEXDEF txt140 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.125 RAD 0.03125 
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.125 APEX 0.609531 0.625 0.125 RAD 0.0078125
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.125 APEX 0.5 0.734531 0.125 RAD 0.0078125
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.140469 APEX 0.5 0.625 0.234531 RAD 0.0078125
+   txt140 
+TEXDEF txt140 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.25 RAD 0.03125 
+   txt140 
+TEXDEF txt140 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.25 APEX 0.609531 0.625 0.25 RAD 0.0078125
+   txt140 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.25 APEX 0.5 0.734531 0.25 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.265469 APEX 0.5 0.625 0.359531 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.375 RAD 0.03125 
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.375 APEX 0.609531 0.625 0.375 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.375 APEX 0.5 0.734531 0.375 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.390469 APEX 0.5 0.625 0.484531 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.5 RAD 0.03125 
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.5 APEX 0.609531 0.625 0.5 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.5 APEX 0.5 0.734531 0.5 RAD 0.0078125
+   txt141 
+TEXDEF txt141 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.515469 APEX 0.5 0.625 0.609531 RAD 0.0078125
+   txt141 
+TEXDEF txt142 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.625 RAD 0.03125 
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.625 APEX 0.609531 0.625 0.625 RAD 0.0078125
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.625 APEX 0.5 0.734531 0.625 RAD 0.0078125
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.640469 APEX 0.5 0.625 0.734531 RAD 0.0078125
+   txt142 
+TEXDEF txt142 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.75 RAD 0.03125 
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.75 APEX 0.609531 0.625 0.75 RAD 0.0078125
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.75 APEX 0.5 0.734531 0.75 RAD 0.0078125
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.765469 APEX 0.5 0.625 0.859531 RAD 0.0078125
+   txt142 
+TEXDEF txt142 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 0.875 RAD 0.03125 
+   txt142 
+TEXDEF txt142 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 0.875 APEX 0.609531 0.625 0.875 RAD 0.0078125
+   txt142 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 0.875 APEX 0.5 0.734531 0.875 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.625 0.890469 APEX 0.5 0.625 0.984531 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.625 1 RAD 0.03125 
+   txt143 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.625 1 APEX 0.609531 0.625 1 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.640469 1 APEX 0.5 0.734531 1 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0 RAD 0.03125 
+   txt143 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0 APEX 0.609531 0.75 0 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0 APEX 0.5 0.859531 0 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.0154687 APEX 0.5 0.75 0.109531 RAD 0.0078125
+   txt143 
+TEXDEF txt143 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.125 RAD 0.03125 
+   txt143 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.125 APEX 0.609531 0.75 0.125 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.125 APEX 0.5 0.859531 0.125 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.140469 APEX 0.5 0.75 0.234531 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.25 RAD 0.03125 
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.25 APEX 0.609531 0.75 0.25 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.25 APEX 0.5 0.859531 0.25 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.265469 APEX 0.5 0.75 0.359531 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.375 RAD 0.03125 
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.375 APEX 0.609531 0.75 0.375 RAD 0.0078125
+   txt144 
+TEXDEF txt144 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.375 APEX 0.5 0.859531 0.375 RAD 0.0078125
+   txt144 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.390469 APEX 0.5 0.75 0.484531 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.5 RAD 0.03125 
+   txt145 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.5 APEX 0.609531 0.75 0.5 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.5 APEX 0.5 0.859531 0.5 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.515469 APEX 0.5 0.75 0.609531 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.625 RAD 0.03125 
+   txt145 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.625 APEX 0.609531 0.75 0.625 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.625 APEX 0.5 0.859531 0.625 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.640469 APEX 0.5 0.75 0.734531 RAD 0.0078125
+   txt145 
+TEXDEF txt145 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.75 RAD 0.03125 
+   txt145 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.75 APEX 0.609531 0.75 0.75 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.75 APEX 0.5 0.859531 0.75 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.765469 APEX 0.5 0.75 0.859531 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 0.875 RAD 0.03125 
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 0.875 APEX 0.609531 0.75 0.875 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 0.875 APEX 0.5 0.859531 0.875 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.75 0.890469 APEX 0.5 0.75 0.984531 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.75 1 RAD 0.03125 
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.75 1 APEX 0.609531 0.75 1 RAD 0.0078125
+   txt146 
+TEXDEF txt146 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.765469 1 APEX 0.5 0.859531 1 RAD 0.0078125
+   txt146 
+TEXDEF txt147 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0 RAD 0.03125 
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0 APEX 0.609531 0.875 0 RAD 0.0078125
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0 APEX 0.5 0.984531 0 RAD 0.0078125
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.0154687 APEX 0.5 0.875 0.109531 RAD 0.0078125
+   txt147 
+TEXDEF txt147 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.125 RAD 0.03125 
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.125 APEX 0.609531 0.875 0.125 RAD 0.0078125
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.125 APEX 0.5 0.984531 0.125 RAD 0.0078125
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.140469 APEX 0.5 0.875 0.234531 RAD 0.0078125
+   txt147 
+TEXDEF txt147 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.25 RAD 0.03125 
+   txt147 
+TEXDEF txt147 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.25 APEX 0.609531 0.875 0.25 RAD 0.0078125
+   txt147 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.25 APEX 0.5 0.984531 0.25 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.265469 APEX 0.5 0.875 0.359531 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.375 RAD 0.03125 
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.375 APEX 0.609531 0.875 0.375 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.375 APEX 0.5 0.984531 0.375 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.390469 APEX 0.5 0.875 0.484531 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.5 RAD 0.03125 
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.5 APEX 0.609531 0.875 0.5 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.5 APEX 0.5 0.984531 0.5 RAD 0.0078125
+   txt148 
+TEXDEF txt148 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.515469 APEX 0.5 0.875 0.609531 RAD 0.0078125
+   txt148 
+TEXDEF txt149 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.625 RAD 0.03125 
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.625 APEX 0.609531 0.875 0.625 RAD 0.0078125
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.625 APEX 0.5 0.984531 0.625 RAD 0.0078125
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.640469 APEX 0.5 0.875 0.734531 RAD 0.0078125
+   txt149 
+TEXDEF txt149 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.75 RAD 0.03125 
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.75 APEX 0.609531 0.875 0.75 RAD 0.0078125
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.75 APEX 0.5 0.984531 0.75 RAD 0.0078125
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.765469 APEX 0.5 0.875 0.859531 RAD 0.0078125
+   txt149 
+TEXDEF txt149 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 0.875 RAD 0.03125 
+   txt149 
+TEXDEF txt149 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 0.875 APEX 0.609531 0.875 0.875 RAD 0.0078125
+   txt149 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 0.875 APEX 0.5 0.984531 0.875 RAD 0.0078125
+   txt150 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.875 0.890469 APEX 0.5 0.875 0.984531 RAD 0.0078125
+   txt150 
+TEXDEF txt150 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 0.875 1 RAD 0.03125 
+   txt150 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 0.875 1 APEX 0.609531 0.875 1 RAD 0.0078125
+   txt150 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 0.890469 1 APEX 0.5 0.984531 1 RAD 0.0078125
+   txt150 
+TEXDEF txt150 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0 RAD 0.03125 
+   txt150 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0 APEX 0.609531 1 0 RAD 0.0078125
+   txt150 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.0154687 APEX 0.5 1 0.109531 RAD 0.0078125
+   txt150 
+TEXDEF txt150 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.125 RAD 0.03125 
+   txt150 
+TEXDEF txt150 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.125 APEX 0.609531 1 0.125 RAD 0.0078125
+   txt150 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.140469 APEX 0.5 1 0.234531 RAD 0.0078125
+   txt151 
+TEXDEF txt151 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.25 RAD 0.03125 
+   txt151 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.25 APEX 0.609531 1 0.25 RAD 0.0078125
+   txt151 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.265469 APEX 0.5 1 0.359531 RAD 0.0078125
+   txt151 
+TEXDEF txt151 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.375 RAD 0.03125 
+   txt151 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.375 APEX 0.609531 1 0.375 RAD 0.0078125
+   txt151 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.390469 APEX 0.5 1 0.484531 RAD 0.0078125
+   txt151 
+TEXDEF txt151 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.5 RAD 0.03125 
+   txt151 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.5 APEX 0.609531 1 0.5 RAD 0.0078125
+   txt151 
+TEXDEF txt151 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.515469 APEX 0.5 1 0.609531 RAD 0.0078125
+   txt151 
+TEXDEF txt152 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.625 RAD 0.03125 
+   txt152 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.625 APEX 0.609531 1 0.625 RAD 0.0078125
+   txt152 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.640469 APEX 0.5 1 0.734531 RAD 0.0078125
+   txt152 
+TEXDEF txt152 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.75 RAD 0.03125 
+   txt152 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.75 APEX 0.609531 1 0.75 RAD 0.0078125
+   txt152 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.765469 APEX 0.5 1 0.859531 RAD 0.0078125
+   txt152 
+TEXDEF txt152 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 0.875 RAD 0.03125 
+   txt152 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 0.875 APEX 0.609531 1 0.875 RAD 0.0078125
+   txt152 
+TEXDEF txt152 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.5 1 0.890469 APEX 0.5 1 0.984531 RAD 0.0078125
+   txt152 
+TEXDEF txt152 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.5 1 1 RAD 0.03125 
+   txt152 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.515469 1 1 APEX 0.609531 1 1 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0 RAD 0.03125 
+   txt153 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0 APEX 0.734531 0 0 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0 APEX 0.625 0.109531 0 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.0154687 APEX 0.625 0 0.109531 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.125 RAD 0.03125 
+   txt153 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.125 APEX 0.734531 0 0.125 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.125 APEX 0.625 0.109531 0.125 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.140469 APEX 0.625 0 0.234531 RAD 0.0078125
+   txt153 
+TEXDEF txt153 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.25 RAD 0.03125 
+   txt153 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.25 APEX 0.734531 0 0.25 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.25 APEX 0.625 0.109531 0.25 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.265469 APEX 0.625 0 0.359531 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.375 RAD 0.03125 
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.375 APEX 0.734531 0 0.375 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.375 APEX 0.625 0.109531 0.375 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.390469 APEX 0.625 0 0.484531 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.5 RAD 0.03125 
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.5 APEX 0.734531 0 0.5 RAD 0.0078125
+   txt154 
+TEXDEF txt154 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.5 APEX 0.625 0.109531 0.5 RAD 0.0078125
+   txt154 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.515469 APEX 0.625 0 0.609531 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.625 RAD 0.03125 
+   txt155 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.625 APEX 0.734531 0 0.625 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.625 APEX 0.625 0.109531 0.625 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.640469 APEX 0.625 0 0.734531 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.75 RAD 0.03125 
+   txt155 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.75 APEX 0.734531 0 0.75 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.75 APEX 0.625 0.109531 0.75 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.765469 APEX 0.625 0 0.859531 RAD 0.0078125
+   txt155 
+TEXDEF txt155 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 0.875 RAD 0.03125 
+   txt155 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 0.875 APEX 0.734531 0 0.875 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 0.875 APEX 0.625 0.109531 0.875 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0 0.890469 APEX 0.625 0 0.984531 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0 1 RAD 0.03125 
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0 1 APEX 0.734531 0 1 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.0154687 1 APEX 0.625 0.109531 1 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0 RAD 0.03125 
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0 APEX 0.734531 0.125 0 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0 APEX 0.625 0.234531 0 RAD 0.0078125
+   txt156 
+TEXDEF txt156 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.0154687 APEX 0.625 0.125 0.109531 RAD 0.0078125
+   txt156 
+TEXDEF txt157 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.125 RAD 0.03125 
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.125 APEX 0.734531 0.125 0.125 RAD 0.0078125
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.125 APEX 0.625 0.234531 0.125 RAD 0.0078125
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.140469 APEX 0.625 0.125 0.234531 RAD 0.0078125
+   txt157 
+TEXDEF txt157 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.25 RAD 0.03125 
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.25 APEX 0.734531 0.125 0.25 RAD 0.0078125
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.25 APEX 0.625 0.234531 0.25 RAD 0.0078125
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.265469 APEX 0.625 0.125 0.359531 RAD 0.0078125
+   txt157 
+TEXDEF txt157 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.375 RAD 0.03125 
+   txt157 
+TEXDEF txt157 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.375 APEX 0.734531 0.125 0.375 RAD 0.0078125
+   txt157 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.375 APEX 0.625 0.234531 0.375 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.390469 APEX 0.625 0.125 0.484531 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.5 RAD 0.03125 
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.5 APEX 0.734531 0.125 0.5 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.5 APEX 0.625 0.234531 0.5 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.515469 APEX 0.625 0.125 0.609531 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.625 RAD 0.03125 
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.625 APEX 0.734531 0.125 0.625 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.625 APEX 0.625 0.234531 0.625 RAD 0.0078125
+   txt158 
+TEXDEF txt158 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.640469 APEX 0.625 0.125 0.734531 RAD 0.0078125
+   txt158 
+TEXDEF txt159 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.75 RAD 0.03125 
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.75 APEX 0.734531 0.125 0.75 RAD 0.0078125
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.75 APEX 0.625 0.234531 0.75 RAD 0.0078125
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.765469 APEX 0.625 0.125 0.859531 RAD 0.0078125
+   txt159 
+TEXDEF txt159 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 0.875 RAD 0.03125 
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 0.875 APEX 0.734531 0.125 0.875 RAD 0.0078125
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 0.875 APEX 0.625 0.234531 0.875 RAD 0.0078125
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.125 0.890469 APEX 0.625 0.125 0.984531 RAD 0.0078125
+   txt159 
+TEXDEF txt159 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.125 1 RAD 0.03125 
+   txt159 
+TEXDEF txt159 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.125 1 APEX 0.734531 0.125 1 RAD 0.0078125
+   txt159 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.140469 1 APEX 0.625 0.234531 1 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0 RAD 0.03125 
+   txt160 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0 APEX 0.734531 0.25 0 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0 APEX 0.625 0.359531 0 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.0154687 APEX 0.625 0.25 0.109531 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.125 RAD 0.03125 
+   txt160 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.125 APEX 0.734531 0.25 0.125 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.125 APEX 0.625 0.359531 0.125 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.140469 APEX 0.625 0.25 0.234531 RAD 0.0078125
+   txt160 
+TEXDEF txt160 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.25 RAD 0.03125 
+   txt160 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.25 APEX 0.734531 0.25 0.25 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.25 APEX 0.625 0.359531 0.25 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.265469 APEX 0.625 0.25 0.359531 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.375 RAD 0.03125 
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.375 APEX 0.734531 0.25 0.375 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.375 APEX 0.625 0.359531 0.375 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.390469 APEX 0.625 0.25 0.484531 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.5 RAD 0.03125 
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.5 APEX 0.734531 0.25 0.5 RAD 0.0078125
+   txt161 
+TEXDEF txt161 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.5 APEX 0.625 0.359531 0.5 RAD 0.0078125
+   txt161 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.515469 APEX 0.625 0.25 0.609531 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.625 RAD 0.03125 
+   txt162 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.625 APEX 0.734531 0.25 0.625 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.625 APEX 0.625 0.359531 0.625 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.640469 APEX 0.625 0.25 0.734531 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.75 RAD 0.03125 
+   txt162 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.75 APEX 0.734531 0.25 0.75 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.75 APEX 0.625 0.359531 0.75 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.765469 APEX 0.625 0.25 0.859531 RAD 0.0078125
+   txt162 
+TEXDEF txt162 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 0.875 RAD 0.03125 
+   txt162 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 0.875 APEX 0.734531 0.25 0.875 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 0.875 APEX 0.625 0.359531 0.875 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.25 0.890469 APEX 0.625 0.25 0.984531 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.25 1 RAD 0.03125 
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.25 1 APEX 0.734531 0.25 1 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.265469 1 APEX 0.625 0.359531 1 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0 RAD 0.03125 
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0 APEX 0.734531 0.375 0 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0 APEX 0.625 0.484531 0 RAD 0.0078125
+   txt163 
+TEXDEF txt163 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.0154687 APEX 0.625 0.375 0.109531 RAD 0.0078125
+   txt163 
+TEXDEF txt164 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.125 RAD 0.03125 
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.125 APEX 0.734531 0.375 0.125 RAD 0.0078125
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.125 APEX 0.625 0.484531 0.125 RAD 0.0078125
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.140469 APEX 0.625 0.375 0.234531 RAD 0.0078125
+   txt164 
+TEXDEF txt164 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.25 RAD 0.03125 
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.25 APEX 0.734531 0.375 0.25 RAD 0.0078125
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.25 APEX 0.625 0.484531 0.25 RAD 0.0078125
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.265469 APEX 0.625 0.375 0.359531 RAD 0.0078125
+   txt164 
+TEXDEF txt164 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.375 RAD 0.03125 
+   txt164 
+TEXDEF txt164 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.375 APEX 0.734531 0.375 0.375 RAD 0.0078125
+   txt164 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.375 APEX 0.625 0.484531 0.375 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.390469 APEX 0.625 0.375 0.484531 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.5 RAD 0.03125 
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.5 APEX 0.734531 0.375 0.5 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.5 APEX 0.625 0.484531 0.5 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.515469 APEX 0.625 0.375 0.609531 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.625 RAD 0.03125 
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.625 APEX 0.734531 0.375 0.625 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.625 APEX 0.625 0.484531 0.625 RAD 0.0078125
+   txt165 
+TEXDEF txt165 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.640469 APEX 0.625 0.375 0.734531 RAD 0.0078125
+   txt165 
+TEXDEF txt166 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.75 RAD 0.03125 
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.75 APEX 0.734531 0.375 0.75 RAD 0.0078125
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.75 APEX 0.625 0.484531 0.75 RAD 0.0078125
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.765469 APEX 0.625 0.375 0.859531 RAD 0.0078125
+   txt166 
+TEXDEF txt166 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 0.875 RAD 0.03125 
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 0.875 APEX 0.734531 0.375 0.875 RAD 0.0078125
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 0.875 APEX 0.625 0.484531 0.875 RAD 0.0078125
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.375 0.890469 APEX 0.625 0.375 0.984531 RAD 0.0078125
+   txt166 
+TEXDEF txt166 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.375 1 RAD 0.03125 
+   txt166 
+TEXDEF txt166 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.375 1 APEX 0.734531 0.375 1 RAD 0.0078125
+   txt166 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.390469 1 APEX 0.625 0.484531 1 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0 RAD 0.03125 
+   txt167 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0 APEX 0.734531 0.5 0 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0 APEX 0.625 0.609531 0 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.0154687 APEX 0.625 0.5 0.109531 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.125 RAD 0.03125 
+   txt167 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.125 APEX 0.734531 0.5 0.125 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.125 APEX 0.625 0.609531 0.125 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.140469 APEX 0.625 0.5 0.234531 RAD 0.0078125
+   txt167 
+TEXDEF txt167 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.25 RAD 0.03125 
+   txt167 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.25 APEX 0.734531 0.5 0.25 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.25 APEX 0.625 0.609531 0.25 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.265469 APEX 0.625 0.5 0.359531 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.375 RAD 0.03125 
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.375 APEX 0.734531 0.5 0.375 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.375 APEX 0.625 0.609531 0.375 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.390469 APEX 0.625 0.5 0.484531 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.5 RAD 0.03125 
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.5 APEX 0.734531 0.5 0.5 RAD 0.0078125
+   txt168 
+TEXDEF txt168 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.5 APEX 0.625 0.609531 0.5 RAD 0.0078125
+   txt168 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.515469 APEX 0.625 0.5 0.609531 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.625 RAD 0.03125 
+   txt169 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.625 APEX 0.734531 0.5 0.625 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.625 APEX 0.625 0.609531 0.625 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.640469 APEX 0.625 0.5 0.734531 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.75 RAD 0.03125 
+   txt169 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.75 APEX 0.734531 0.5 0.75 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.75 APEX 0.625 0.609531 0.75 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.765469 APEX 0.625 0.5 0.859531 RAD 0.0078125
+   txt169 
+TEXDEF txt169 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 0.875 RAD 0.03125 
+   txt169 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 0.875 APEX 0.734531 0.5 0.875 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 0.875 APEX 0.625 0.609531 0.875 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.5 0.890469 APEX 0.625 0.5 0.984531 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.5 1 RAD 0.03125 
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.5 1 APEX 0.734531 0.5 1 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.515469 1 APEX 0.625 0.609531 1 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0 RAD 0.03125 
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0 APEX 0.734531 0.625 0 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0 APEX 0.625 0.734531 0 RAD 0.0078125
+   txt170 
+TEXDEF txt170 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.0154687 APEX 0.625 0.625 0.109531 RAD 0.0078125
+   txt170 
+TEXDEF txt171 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.125 RAD 0.03125 
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.125 APEX 0.734531 0.625 0.125 RAD 0.0078125
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.125 APEX 0.625 0.734531 0.125 RAD 0.0078125
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.140469 APEX 0.625 0.625 0.234531 RAD 0.0078125
+   txt171 
+TEXDEF txt171 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.25 RAD 0.03125 
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.25 APEX 0.734531 0.625 0.25 RAD 0.0078125
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.25 APEX 0.625 0.734531 0.25 RAD 0.0078125
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.265469 APEX 0.625 0.625 0.359531 RAD 0.0078125
+   txt171 
+TEXDEF txt171 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.375 RAD 0.03125 
+   txt171 
+TEXDEF txt171 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.375 APEX 0.734531 0.625 0.375 RAD 0.0078125
+   txt171 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.375 APEX 0.625 0.734531 0.375 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.390469 APEX 0.625 0.625 0.484531 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.5 RAD 0.03125 
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.5 APEX 0.734531 0.625 0.5 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.5 APEX 0.625 0.734531 0.5 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.515469 APEX 0.625 0.625 0.609531 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.625 RAD 0.03125 
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.625 APEX 0.734531 0.625 0.625 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.625 APEX 0.625 0.734531 0.625 RAD 0.0078125
+   txt172 
+TEXDEF txt172 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.640469 APEX 0.625 0.625 0.734531 RAD 0.0078125
+   txt172 
+TEXDEF txt173 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.75 RAD 0.03125 
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.75 APEX 0.734531 0.625 0.75 RAD 0.0078125
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.75 APEX 0.625 0.734531 0.75 RAD 0.0078125
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.765469 APEX 0.625 0.625 0.859531 RAD 0.0078125
+   txt173 
+TEXDEF txt173 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 0.875 RAD 0.03125 
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 0.875 APEX 0.734531 0.625 0.875 RAD 0.0078125
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 0.875 APEX 0.625 0.734531 0.875 RAD 0.0078125
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.625 0.890469 APEX 0.625 0.625 0.984531 RAD 0.0078125
+   txt173 
+TEXDEF txt173 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.625 1 RAD 0.03125 
+   txt173 
+TEXDEF txt173 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.625 1 APEX 0.734531 0.625 1 RAD 0.0078125
+   txt173 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.640469 1 APEX 0.625 0.734531 1 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0 RAD 0.03125 
+   txt174 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0 APEX 0.734531 0.75 0 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0 APEX 0.625 0.859531 0 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.0154687 APEX 0.625 0.75 0.109531 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.125 RAD 0.03125 
+   txt174 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.125 APEX 0.734531 0.75 0.125 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.125 APEX 0.625 0.859531 0.125 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.140469 APEX 0.625 0.75 0.234531 RAD 0.0078125
+   txt174 
+TEXDEF txt174 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.25 RAD 0.03125 
+   txt174 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.25 APEX 0.734531 0.75 0.25 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.25 APEX 0.625 0.859531 0.25 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.265469 APEX 0.625 0.75 0.359531 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.375 RAD 0.03125 
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.375 APEX 0.734531 0.75 0.375 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.375 APEX 0.625 0.859531 0.375 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.390469 APEX 0.625 0.75 0.484531 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.5 RAD 0.03125 
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.5 APEX 0.734531 0.75 0.5 RAD 0.0078125
+   txt175 
+TEXDEF txt175 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.5 APEX 0.625 0.859531 0.5 RAD 0.0078125
+   txt175 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.515469 APEX 0.625 0.75 0.609531 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.625 RAD 0.03125 
+   txt176 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.625 APEX 0.734531 0.75 0.625 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.625 APEX 0.625 0.859531 0.625 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.640469 APEX 0.625 0.75 0.734531 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.75 RAD 0.03125 
+   txt176 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.75 APEX 0.734531 0.75 0.75 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.75 APEX 0.625 0.859531 0.75 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.765469 APEX 0.625 0.75 0.859531 RAD 0.0078125
+   txt176 
+TEXDEF txt176 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 0.875 RAD 0.03125 
+   txt176 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 0.875 APEX 0.734531 0.75 0.875 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 0.875 APEX 0.625 0.859531 0.875 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.75 0.890469 APEX 0.625 0.75 0.984531 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.75 1 RAD 0.03125 
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.75 1 APEX 0.734531 0.75 1 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.765469 1 APEX 0.625 0.859531 1 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0 RAD 0.03125 
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0 APEX 0.734531 0.875 0 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0 APEX 0.625 0.984531 0 RAD 0.0078125
+   txt177 
+TEXDEF txt177 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.0154687 APEX 0.625 0.875 0.109531 RAD 0.0078125
+   txt177 
+TEXDEF txt178 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.125 RAD 0.03125 
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.125 APEX 0.734531 0.875 0.125 RAD 0.0078125
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.125 APEX 0.625 0.984531 0.125 RAD 0.0078125
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.140469 APEX 0.625 0.875 0.234531 RAD 0.0078125
+   txt178 
+TEXDEF txt178 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.25 RAD 0.03125 
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.25 APEX 0.734531 0.875 0.25 RAD 0.0078125
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.25 APEX 0.625 0.984531 0.25 RAD 0.0078125
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.265469 APEX 0.625 0.875 0.359531 RAD 0.0078125
+   txt178 
+TEXDEF txt178 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.375 RAD 0.03125 
+   txt178 
+TEXDEF txt178 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.375 APEX 0.734531 0.875 0.375 RAD 0.0078125
+   txt178 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.375 APEX 0.625 0.984531 0.375 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.390469 APEX 0.625 0.875 0.484531 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.5 RAD 0.03125 
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.5 APEX 0.734531 0.875 0.5 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.5 APEX 0.625 0.984531 0.5 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.515469 APEX 0.625 0.875 0.609531 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.625 RAD 0.03125 
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.625 APEX 0.734531 0.875 0.625 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.625 APEX 0.625 0.984531 0.625 RAD 0.0078125
+   txt179 
+TEXDEF txt179 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.640469 APEX 0.625 0.875 0.734531 RAD 0.0078125
+   txt179 
+TEXDEF txt180 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.75 RAD 0.03125 
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.75 APEX 0.734531 0.875 0.75 RAD 0.0078125
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.75 APEX 0.625 0.984531 0.75 RAD 0.0078125
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.765469 APEX 0.625 0.875 0.859531 RAD 0.0078125
+   txt180 
+TEXDEF txt180 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 0.875 RAD 0.03125 
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 0.875 APEX 0.734531 0.875 0.875 RAD 0.0078125
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 0.875 APEX 0.625 0.984531 0.875 RAD 0.0078125
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.875 0.890469 APEX 0.625 0.875 0.984531 RAD 0.0078125
+   txt180 
+TEXDEF txt180 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 0.875 1 RAD 0.03125 
+   txt180 
+TEXDEF txt180 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 0.875 1 APEX 0.734531 0.875 1 RAD 0.0078125
+   txt180 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 0.890469 1 APEX 0.625 0.984531 1 RAD 0.0078125
+   txt181 
+TEXDEF txt181 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0 RAD 0.03125 
+   txt181 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0 APEX 0.734531 1 0 RAD 0.0078125
+   txt181 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.0154687 APEX 0.625 1 0.109531 RAD 0.0078125
+   txt181 
+TEXDEF txt181 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.125 RAD 0.03125 
+   txt181 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.125 APEX 0.734531 1 0.125 RAD 0.0078125
+   txt181 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.140469 APEX 0.625 1 0.234531 RAD 0.0078125
+   txt181 
+TEXDEF txt181 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.25 RAD 0.03125 
+   txt181 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.25 APEX 0.734531 1 0.25 RAD 0.0078125
+   txt181 
+TEXDEF txt181 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.265469 APEX 0.625 1 0.359531 RAD 0.0078125
+   txt181 
+TEXDEF txt182 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.375 RAD 0.03125 
+   txt182 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.375 APEX 0.734531 1 0.375 RAD 0.0078125
+   txt182 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.390469 APEX 0.625 1 0.484531 RAD 0.0078125
+   txt182 
+TEXDEF txt182 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.5 RAD 0.03125 
+   txt182 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.5 APEX 0.734531 1 0.5 RAD 0.0078125
+   txt182 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.515469 APEX 0.625 1 0.609531 RAD 0.0078125
+   txt182 
+TEXDEF txt182 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.625 RAD 0.03125 
+   txt182 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.625 APEX 0.734531 1 0.625 RAD 0.0078125
+   txt182 
+TEXDEF txt182 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.640469 APEX 0.625 1 0.734531 RAD 0.0078125
+   txt182 
+TEXDEF txt182 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.75 RAD 0.03125 
+   txt182 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.75 APEX 0.734531 1 0.75 RAD 0.0078125
+   txt183 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.765469 APEX 0.625 1 0.859531 RAD 0.0078125
+   txt183 
+TEXDEF txt183 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 0.875 RAD 0.03125 
+   txt183 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 0.875 APEX 0.734531 1 0.875 RAD 0.0078125
+   txt183 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.625 1 0.890469 APEX 0.625 1 0.984531 RAD 0.0078125
+   txt183 
+TEXDEF txt183 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.625 1 1 RAD 0.03125 
+   txt183 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.640469 1 1 APEX 0.734531 1 1 RAD 0.0078125
+   txt183 
+TEXDEF txt183 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0 RAD 0.03125 
+   txt183 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0 APEX 0.859531 0 0 RAD 0.0078125
+   txt183 
+TEXDEF txt183 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0 APEX 0.75 0.109531 0 RAD 0.0078125
+   txt183 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.0154687 APEX 0.75 0 0.109531 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.125 RAD 0.03125 
+   txt184 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.125 APEX 0.859531 0 0.125 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.125 APEX 0.75 0.109531 0.125 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.140469 APEX 0.75 0 0.234531 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.25 RAD 0.03125 
+   txt184 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.25 APEX 0.859531 0 0.25 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.25 APEX 0.75 0.109531 0.25 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.265469 APEX 0.75 0 0.359531 RAD 0.0078125
+   txt184 
+TEXDEF txt184 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.375 RAD 0.03125 
+   txt184 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.375 APEX 0.859531 0 0.375 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.375 APEX 0.75 0.109531 0.375 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.390469 APEX 0.75 0 0.484531 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.5 RAD 0.03125 
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.5 APEX 0.859531 0 0.5 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.5 APEX 0.75 0.109531 0.5 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.515469 APEX 0.75 0 0.609531 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.625 RAD 0.03125 
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.625 APEX 0.859531 0 0.625 RAD 0.0078125
+   txt185 
+TEXDEF txt185 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.625 APEX 0.75 0.109531 0.625 RAD 0.0078125
+   txt185 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.640469 APEX 0.75 0 0.734531 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.75 RAD 0.03125 
+   txt186 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.75 APEX 0.859531 0 0.75 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.75 APEX 0.75 0.109531 0.75 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.765469 APEX 0.75 0 0.859531 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 0.875 RAD 0.03125 
+   txt186 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 0.875 APEX 0.859531 0 0.875 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 0.875 APEX 0.75 0.109531 0.875 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0 0.890469 APEX 0.75 0 0.984531 RAD 0.0078125
+   txt186 
+TEXDEF txt186 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0 1 RAD 0.03125 
+   txt186 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0 1 APEX 0.859531 0 1 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.0154687 1 APEX 0.75 0.109531 1 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0 RAD 0.03125 
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0 APEX 0.859531 0.125 0 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0 APEX 0.75 0.234531 0 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.0154687 APEX 0.75 0.125 0.109531 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.125 RAD 0.03125 
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.125 APEX 0.859531 0.125 0.125 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.125 APEX 0.75 0.234531 0.125 RAD 0.0078125
+   txt187 
+TEXDEF txt187 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.140469 APEX 0.75 0.125 0.234531 RAD 0.0078125
+   txt187 
+TEXDEF txt188 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.25 RAD 0.03125 
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.25 APEX 0.859531 0.125 0.25 RAD 0.0078125
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.25 APEX 0.75 0.234531 0.25 RAD 0.0078125
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.265469 APEX 0.75 0.125 0.359531 RAD 0.0078125
+   txt188 
+TEXDEF txt188 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.375 RAD 0.03125 
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.375 APEX 0.859531 0.125 0.375 RAD 0.0078125
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.375 APEX 0.75 0.234531 0.375 RAD 0.0078125
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.390469 APEX 0.75 0.125 0.484531 RAD 0.0078125
+   txt188 
+TEXDEF txt188 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.5 RAD 0.03125 
+   txt188 
+TEXDEF txt188 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.5 APEX 0.859531 0.125 0.5 RAD 0.0078125
+   txt188 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.5 APEX 0.75 0.234531 0.5 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.515469 APEX 0.75 0.125 0.609531 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.625 RAD 0.03125 
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.625 APEX 0.859531 0.125 0.625 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.625 APEX 0.75 0.234531 0.625 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.640469 APEX 0.75 0.125 0.734531 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.75 RAD 0.03125 
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.75 APEX 0.859531 0.125 0.75 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.75 APEX 0.75 0.234531 0.75 RAD 0.0078125
+   txt189 
+TEXDEF txt189 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.765469 APEX 0.75 0.125 0.859531 RAD 0.0078125
+   txt189 
+TEXDEF txt190 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 0.875 RAD 0.03125 
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 0.875 APEX 0.859531 0.125 0.875 RAD 0.0078125
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 0.875 APEX 0.75 0.234531 0.875 RAD 0.0078125
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.125 0.890469 APEX 0.75 0.125 0.984531 RAD 0.0078125
+   txt190 
+TEXDEF txt190 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.125 1 RAD 0.03125 
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.125 1 APEX 0.859531 0.125 1 RAD 0.0078125
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.140469 1 APEX 0.75 0.234531 1 RAD 0.0078125
+   txt190 
+TEXDEF txt190 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0 RAD 0.03125 
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0 APEX 0.859531 0.25 0 RAD 0.0078125
+   txt190 
+TEXDEF txt190 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0 APEX 0.75 0.359531 0 RAD 0.0078125
+   txt190 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.0154687 APEX 0.75 0.25 0.109531 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.125 RAD 0.03125 
+   txt191 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.125 APEX 0.859531 0.25 0.125 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.125 APEX 0.75 0.359531 0.125 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.140469 APEX 0.75 0.25 0.234531 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.25 RAD 0.03125 
+   txt191 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.25 APEX 0.859531 0.25 0.25 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.25 APEX 0.75 0.359531 0.25 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.265469 APEX 0.75 0.25 0.359531 RAD 0.0078125
+   txt191 
+TEXDEF txt191 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.375 RAD 0.03125 
+   txt191 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.375 APEX 0.859531 0.25 0.375 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.375 APEX 0.75 0.359531 0.375 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.390469 APEX 0.75 0.25 0.484531 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.5 RAD 0.03125 
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.5 APEX 0.859531 0.25 0.5 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.5 APEX 0.75 0.359531 0.5 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.515469 APEX 0.75 0.25 0.609531 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.625 RAD 0.03125 
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.625 APEX 0.859531 0.25 0.625 RAD 0.0078125
+   txt192 
+TEXDEF txt192 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.625 APEX 0.75 0.359531 0.625 RAD 0.0078125
+   txt192 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.640469 APEX 0.75 0.25 0.734531 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.75 RAD 0.03125 
+   txt193 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.75 APEX 0.859531 0.25 0.75 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.75 APEX 0.75 0.359531 0.75 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.765469 APEX 0.75 0.25 0.859531 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 0.875 RAD 0.03125 
+   txt193 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 0.875 APEX 0.859531 0.25 0.875 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 0.875 APEX 0.75 0.359531 0.875 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.25 0.890469 APEX 0.75 0.25 0.984531 RAD 0.0078125
+   txt193 
+TEXDEF txt193 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.25 1 RAD 0.03125 
+   txt193 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.25 1 APEX 0.859531 0.25 1 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.265469 1 APEX 0.75 0.359531 1 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0 RAD 0.03125 
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0 APEX 0.859531 0.375 0 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0 APEX 0.75 0.484531 0 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.0154687 APEX 0.75 0.375 0.109531 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.125 RAD 0.03125 
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.125 APEX 0.859531 0.375 0.125 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.125 APEX 0.75 0.484531 0.125 RAD 0.0078125
+   txt194 
+TEXDEF txt194 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.140469 APEX 0.75 0.375 0.234531 RAD 0.0078125
+   txt194 
+TEXDEF txt195 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.25 RAD 0.03125 
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.25 APEX 0.859531 0.375 0.25 RAD 0.0078125
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.25 APEX 0.75 0.484531 0.25 RAD 0.0078125
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.265469 APEX 0.75 0.375 0.359531 RAD 0.0078125
+   txt195 
+TEXDEF txt195 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.375 RAD 0.03125 
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.375 APEX 0.859531 0.375 0.375 RAD 0.0078125
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.375 APEX 0.75 0.484531 0.375 RAD 0.0078125
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.390469 APEX 0.75 0.375 0.484531 RAD 0.0078125
+   txt195 
+TEXDEF txt195 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.5 RAD 0.03125 
+   txt195 
+TEXDEF txt195 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.5 APEX 0.859531 0.375 0.5 RAD 0.0078125
+   txt195 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.5 APEX 0.75 0.484531 0.5 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.515469 APEX 0.75 0.375 0.609531 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.625 RAD 0.03125 
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.625 APEX 0.859531 0.375 0.625 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.625 APEX 0.75 0.484531 0.625 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.640469 APEX 0.75 0.375 0.734531 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.75 RAD 0.03125 
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.75 APEX 0.859531 0.375 0.75 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.75 APEX 0.75 0.484531 0.75 RAD 0.0078125
+   txt196 
+TEXDEF txt196 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.765469 APEX 0.75 0.375 0.859531 RAD 0.0078125
+   txt196 
+TEXDEF txt197 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 0.875 RAD 0.03125 
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 0.875 APEX 0.859531 0.375 0.875 RAD 0.0078125
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 0.875 APEX 0.75 0.484531 0.875 RAD 0.0078125
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.375 0.890469 APEX 0.75 0.375 0.984531 RAD 0.0078125
+   txt197 
+TEXDEF txt197 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.375 1 RAD 0.03125 
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.375 1 APEX 0.859531 0.375 1 RAD 0.0078125
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.390469 1 APEX 0.75 0.484531 1 RAD 0.0078125
+   txt197 
+TEXDEF txt197 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0 RAD 0.03125 
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0 APEX 0.859531 0.5 0 RAD 0.0078125
+   txt197 
+TEXDEF txt197 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0 APEX 0.75 0.609531 0 RAD 0.0078125
+   txt197 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.0154687 APEX 0.75 0.5 0.109531 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.125 RAD 0.03125 
+   txt198 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.125 APEX 0.859531 0.5 0.125 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.125 APEX 0.75 0.609531 0.125 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.140469 APEX 0.75 0.5 0.234531 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.25 RAD 0.03125 
+   txt198 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.25 APEX 0.859531 0.5 0.25 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.25 APEX 0.75 0.609531 0.25 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.265469 APEX 0.75 0.5 0.359531 RAD 0.0078125
+   txt198 
+TEXDEF txt198 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.375 RAD 0.03125 
+   txt198 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.375 APEX 0.859531 0.5 0.375 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.375 APEX 0.75 0.609531 0.375 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.390469 APEX 0.75 0.5 0.484531 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.5 RAD 0.03125 
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.5 APEX 0.859531 0.5 0.5 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.5 APEX 0.75 0.609531 0.5 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.515469 APEX 0.75 0.5 0.609531 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.625 RAD 0.03125 
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.625 APEX 0.859531 0.5 0.625 RAD 0.0078125
+   txt199 
+TEXDEF txt199 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.625 APEX 0.75 0.609531 0.625 RAD 0.0078125
+   txt199 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.640469 APEX 0.75 0.5 0.734531 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.75 RAD 0.03125 
+   txt200 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.75 APEX 0.859531 0.5 0.75 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.75 APEX 0.75 0.609531 0.75 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.765469 APEX 0.75 0.5 0.859531 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 0.875 RAD 0.03125 
+   txt200 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 0.875 APEX 0.859531 0.5 0.875 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 0.875 APEX 0.75 0.609531 0.875 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.5 0.890469 APEX 0.75 0.5 0.984531 RAD 0.0078125
+   txt200 
+TEXDEF txt200 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.5 1 RAD 0.03125 
+   txt200 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.5 1 APEX 0.859531 0.5 1 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.515469 1 APEX 0.75 0.609531 1 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0 RAD 0.03125 
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0 APEX 0.859531 0.625 0 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0 APEX 0.75 0.734531 0 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.0154687 APEX 0.75 0.625 0.109531 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.125 RAD 0.03125 
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.125 APEX 0.859531 0.625 0.125 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.125 APEX 0.75 0.734531 0.125 RAD 0.0078125
+   txt201 
+TEXDEF txt201 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.140469 APEX 0.75 0.625 0.234531 RAD 0.0078125
+   txt201 
+TEXDEF txt202 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.25 RAD 0.03125 
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.25 APEX 0.859531 0.625 0.25 RAD 0.0078125
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.25 APEX 0.75 0.734531 0.25 RAD 0.0078125
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.265469 APEX 0.75 0.625 0.359531 RAD 0.0078125
+   txt202 
+TEXDEF txt202 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.375 RAD 0.03125 
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.375 APEX 0.859531 0.625 0.375 RAD 0.0078125
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.375 APEX 0.75 0.734531 0.375 RAD 0.0078125
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.390469 APEX 0.75 0.625 0.484531 RAD 0.0078125
+   txt202 
+TEXDEF txt202 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.5 RAD 0.03125 
+   txt202 
+TEXDEF txt202 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.5 APEX 0.859531 0.625 0.5 RAD 0.0078125
+   txt202 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.5 APEX 0.75 0.734531 0.5 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.515469 APEX 0.75 0.625 0.609531 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.625 RAD 0.03125 
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.625 APEX 0.859531 0.625 0.625 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.625 APEX 0.75 0.734531 0.625 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.640469 APEX 0.75 0.625 0.734531 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.75 RAD 0.03125 
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.75 APEX 0.859531 0.625 0.75 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.75 APEX 0.75 0.734531 0.75 RAD 0.0078125
+   txt203 
+TEXDEF txt203 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.765469 APEX 0.75 0.625 0.859531 RAD 0.0078125
+   txt203 
+TEXDEF txt204 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 0.875 RAD 0.03125 
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 0.875 APEX 0.859531 0.625 0.875 RAD 0.0078125
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 0.875 APEX 0.75 0.734531 0.875 RAD 0.0078125
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.625 0.890469 APEX 0.75 0.625 0.984531 RAD 0.0078125
+   txt204 
+TEXDEF txt204 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.625 1 RAD 0.03125 
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.625 1 APEX 0.859531 0.625 1 RAD 0.0078125
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.640469 1 APEX 0.75 0.734531 1 RAD 0.0078125
+   txt204 
+TEXDEF txt204 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0 RAD 0.03125 
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0 APEX 0.859531 0.75 0 RAD 0.0078125
+   txt204 
+TEXDEF txt204 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0 APEX 0.75 0.859531 0 RAD 0.0078125
+   txt204 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.0154687 APEX 0.75 0.75 0.109531 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.125 RAD 0.03125 
+   txt205 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.125 APEX 0.859531 0.75 0.125 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.125 APEX 0.75 0.859531 0.125 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.140469 APEX 0.75 0.75 0.234531 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.25 RAD 0.03125 
+   txt205 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.25 APEX 0.859531 0.75 0.25 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.25 APEX 0.75 0.859531 0.25 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.265469 APEX 0.75 0.75 0.359531 RAD 0.0078125
+   txt205 
+TEXDEF txt205 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.375 RAD 0.03125 
+   txt205 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.375 APEX 0.859531 0.75 0.375 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.375 APEX 0.75 0.859531 0.375 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.390469 APEX 0.75 0.75 0.484531 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.5 RAD 0.03125 
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.5 APEX 0.859531 0.75 0.5 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.5 APEX 0.75 0.859531 0.5 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.515469 APEX 0.75 0.75 0.609531 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.625 RAD 0.03125 
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.625 APEX 0.859531 0.75 0.625 RAD 0.0078125
+   txt206 
+TEXDEF txt206 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.625 APEX 0.75 0.859531 0.625 RAD 0.0078125
+   txt206 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.640469 APEX 0.75 0.75 0.734531 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.75 RAD 0.03125 
+   txt207 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.75 APEX 0.859531 0.75 0.75 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.75 APEX 0.75 0.859531 0.75 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.765469 APEX 0.75 0.75 0.859531 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 0.875 RAD 0.03125 
+   txt207 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 0.875 APEX 0.859531 0.75 0.875 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 0.875 APEX 0.75 0.859531 0.875 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.75 0.890469 APEX 0.75 0.75 0.984531 RAD 0.0078125
+   txt207 
+TEXDEF txt207 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.75 1 RAD 0.03125 
+   txt207 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.75 1 APEX 0.859531 0.75 1 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.765469 1 APEX 0.75 0.859531 1 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0 RAD 0.03125 
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0 APEX 0.859531 0.875 0 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0 APEX 0.75 0.984531 0 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.0154687 APEX 0.75 0.875 0.109531 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.125 RAD 0.03125 
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.125 APEX 0.859531 0.875 0.125 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.125 APEX 0.75 0.984531 0.125 RAD 0.0078125
+   txt208 
+TEXDEF txt208 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.140469 APEX 0.75 0.875 0.234531 RAD 0.0078125
+   txt208 
+TEXDEF txt209 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.25 RAD 0.03125 
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.25 APEX 0.859531 0.875 0.25 RAD 0.0078125
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.25 APEX 0.75 0.984531 0.25 RAD 0.0078125
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.265469 APEX 0.75 0.875 0.359531 RAD 0.0078125
+   txt209 
+TEXDEF txt209 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.375 RAD 0.03125 
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.375 APEX 0.859531 0.875 0.375 RAD 0.0078125
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.375 APEX 0.75 0.984531 0.375 RAD 0.0078125
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.390469 APEX 0.75 0.875 0.484531 RAD 0.0078125
+   txt209 
+TEXDEF txt209 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.5 RAD 0.03125 
+   txt209 
+TEXDEF txt209 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.5 APEX 0.859531 0.875 0.5 RAD 0.0078125
+   txt209 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.5 APEX 0.75 0.984531 0.5 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.515469 APEX 0.75 0.875 0.609531 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.625 RAD 0.03125 
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.625 APEX 0.859531 0.875 0.625 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.625 APEX 0.75 0.984531 0.625 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.640469 APEX 0.75 0.875 0.734531 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.75 RAD 0.03125 
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.75 APEX 0.859531 0.875 0.75 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.75 APEX 0.75 0.984531 0.75 RAD 0.0078125
+   txt210 
+TEXDEF txt210 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.765469 APEX 0.75 0.875 0.859531 RAD 0.0078125
+   txt210 
+TEXDEF txt211 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 0.875 RAD 0.03125 
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 0.875 APEX 0.859531 0.875 0.875 RAD 0.0078125
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 0.875 APEX 0.75 0.984531 0.875 RAD 0.0078125
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.875 0.890469 APEX 0.75 0.875 0.984531 RAD 0.0078125
+   txt211 
+TEXDEF txt211 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 0.875 1 RAD 0.03125 
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 0.875 1 APEX 0.859531 0.875 1 RAD 0.0078125
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 0.890469 1 APEX 0.75 0.984531 1 RAD 0.0078125
+   txt211 
+TEXDEF txt211 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0 RAD 0.03125 
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0 APEX 0.859531 1 0 RAD 0.0078125
+   txt211 
+TEXDEF txt211 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.0154687 APEX 0.75 1 0.109531 RAD 0.0078125
+   txt211 
+TEXDEF txt212 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.125 RAD 0.03125 
+   txt212 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.125 APEX 0.859531 1 0.125 RAD 0.0078125
+   txt212 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.140469 APEX 0.75 1 0.234531 RAD 0.0078125
+   txt212 
+TEXDEF txt212 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.25 RAD 0.03125 
+   txt212 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.25 APEX 0.859531 1 0.25 RAD 0.0078125
+   txt212 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.265469 APEX 0.75 1 0.359531 RAD 0.0078125
+   txt212 
+TEXDEF txt212 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.375 RAD 0.03125 
+   txt212 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.375 APEX 0.859531 1 0.375 RAD 0.0078125
+   txt212 
+TEXDEF txt212 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.390469 APEX 0.75 1 0.484531 RAD 0.0078125
+   txt212 
+TEXDEF txt212 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.5 RAD 0.03125 
+   txt212 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.5 APEX 0.859531 1 0.5 RAD 0.0078125
+   txt213 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.515469 APEX 0.75 1 0.609531 RAD 0.0078125
+   txt213 
+TEXDEF txt213 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.625 RAD 0.03125 
+   txt213 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.625 APEX 0.859531 1 0.625 RAD 0.0078125
+   txt213 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.640469 APEX 0.75 1 0.734531 RAD 0.0078125
+   txt213 
+TEXDEF txt213 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.75 RAD 0.03125 
+   txt213 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.75 APEX 0.859531 1 0.75 RAD 0.0078125
+   txt213 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.765469 APEX 0.75 1 0.859531 RAD 0.0078125
+   txt213 
+TEXDEF txt213 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 0.875 RAD 0.03125 
+   txt213 
+TEXDEF txt213 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 0.875 APEX 0.859531 1 0.875 RAD 0.0078125
+   txt213 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.75 1 0.890469 APEX 0.75 1 0.984531 RAD 0.0078125
+   txt214 
+TEXDEF txt214 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.75 1 1 RAD 0.03125 
+   txt214 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.765469 1 1 APEX 0.859531 1 1 RAD 0.0078125
+   txt214 
+TEXDEF txt214 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0 RAD 0.03125 
+   txt214 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0 APEX 0.984531 0 0 RAD 0.0078125
+   txt214 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0 APEX 0.875 0.109531 0 RAD 0.0078125
+   txt214 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.0154687 APEX 0.875 0 0.109531 RAD 0.0078125
+   txt214 
+TEXDEF txt214 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.125 RAD 0.03125 
+   txt214 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.125 APEX 0.984531 0 0.125 RAD 0.0078125
+   txt214 
+TEXDEF txt214 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.125 APEX 0.875 0.109531 0.125 RAD 0.0078125
+   txt214 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.140469 APEX 0.875 0 0.234531 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.25 RAD 0.03125 
+   txt215 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.25 APEX 0.984531 0 0.25 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.25 APEX 0.875 0.109531 0.25 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.265469 APEX 0.875 0 0.359531 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.375 RAD 0.03125 
+   txt215 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.375 APEX 0.984531 0 0.375 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.375 APEX 0.875 0.109531 0.375 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.390469 APEX 0.875 0 0.484531 RAD 0.0078125
+   txt215 
+TEXDEF txt215 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.5 RAD 0.03125 
+   txt215 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.5 APEX 0.984531 0 0.5 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.5 APEX 0.875 0.109531 0.5 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.515469 APEX 0.875 0 0.609531 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.625 RAD 0.03125 
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.625 APEX 0.984531 0 0.625 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.625 APEX 0.875 0.109531 0.625 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.640469 APEX 0.875 0 0.734531 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.75 RAD 0.03125 
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.75 APEX 0.984531 0 0.75 RAD 0.0078125
+   txt216 
+TEXDEF txt216 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.75 APEX 0.875 0.109531 0.75 RAD 0.0078125
+   txt216 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.765469 APEX 0.875 0 0.859531 RAD 0.0078125
+   txt217 
+TEXDEF txt217 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 0.875 RAD 0.03125 
+   txt217 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 0.875 APEX 0.984531 0 0.875 RAD 0.0078125
+   txt217 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 0.875 APEX 0.875 0.109531 0.875 RAD 0.0078125
+   txt217 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0 0.890469 APEX 0.875 0 0.984531 RAD 0.0078125
+   txt217 
+TEXDEF txt217 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0 1 RAD 0.03125 
+   txt217 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0 1 APEX 0.984531 0 1 RAD 0.0078125
+   txt217 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.0154687 1 APEX 0.875 0.109531 1 RAD 0.0078125
+   txt217 
+TEXDEF txt217 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0 RAD 0.03125 
+   txt217 
+TEXDEF txt217 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0 APEX 0.984531 0.125 0 RAD 0.0078125
+   txt217 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0 APEX 0.875 0.234531 0 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.0154687 APEX 0.875 0.125 0.109531 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.125 RAD 0.03125 
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.125 APEX 0.984531 0.125 0.125 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.125 APEX 0.875 0.234531 0.125 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.140469 APEX 0.875 0.125 0.234531 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.25 RAD 0.03125 
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.25 APEX 0.984531 0.125 0.25 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.25 APEX 0.875 0.234531 0.25 RAD 0.0078125
+   txt218 
+TEXDEF txt218 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.265469 APEX 0.875 0.125 0.359531 RAD 0.0078125
+   txt218 
+TEXDEF txt219 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.375 RAD 0.03125 
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.375 APEX 0.984531 0.125 0.375 RAD 0.0078125
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.375 APEX 0.875 0.234531 0.375 RAD 0.0078125
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.390469 APEX 0.875 0.125 0.484531 RAD 0.0078125
+   txt219 
+TEXDEF txt219 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.5 RAD 0.03125 
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.5 APEX 0.984531 0.125 0.5 RAD 0.0078125
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.5 APEX 0.875 0.234531 0.5 RAD 0.0078125
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.515469 APEX 0.875 0.125 0.609531 RAD 0.0078125
+   txt219 
+TEXDEF txt219 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.625 RAD 0.03125 
+   txt219 
+TEXDEF txt219 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.625 APEX 0.984531 0.125 0.625 RAD 0.0078125
+   txt219 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.625 APEX 0.875 0.234531 0.625 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.640469 APEX 0.875 0.125 0.734531 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.75 RAD 0.03125 
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.75 APEX 0.984531 0.125 0.75 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.75 APEX 0.875 0.234531 0.75 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.765469 APEX 0.875 0.125 0.859531 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 0.875 RAD 0.03125 
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 0.875 APEX 0.984531 0.125 0.875 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 0.875 APEX 0.875 0.234531 0.875 RAD 0.0078125
+   txt220 
+TEXDEF txt220 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.125 0.890469 APEX 0.875 0.125 0.984531 RAD 0.0078125
+   txt220 
+TEXDEF txt221 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.125 1 RAD 0.03125 
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.125 1 APEX 0.984531 0.125 1 RAD 0.0078125
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.140469 1 APEX 0.875 0.234531 1 RAD 0.0078125
+   txt221 
+TEXDEF txt221 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0 RAD 0.03125 
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0 APEX 0.984531 0.25 0 RAD 0.0078125
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0 APEX 0.875 0.359531 0 RAD 0.0078125
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.0154687 APEX 0.875 0.25 0.109531 RAD 0.0078125
+   txt221 
+TEXDEF txt221 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.125 RAD 0.03125 
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.125 APEX 0.984531 0.25 0.125 RAD 0.0078125
+   txt221 
+TEXDEF txt221 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.125 APEX 0.875 0.359531 0.125 RAD 0.0078125
+   txt221 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.140469 APEX 0.875 0.25 0.234531 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.25 RAD 0.03125 
+   txt222 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.25 APEX 0.984531 0.25 0.25 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.25 APEX 0.875 0.359531 0.25 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.265469 APEX 0.875 0.25 0.359531 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.375 RAD 0.03125 
+   txt222 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.375 APEX 0.984531 0.25 0.375 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.375 APEX 0.875 0.359531 0.375 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.390469 APEX 0.875 0.25 0.484531 RAD 0.0078125
+   txt222 
+TEXDEF txt222 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.5 RAD 0.03125 
+   txt222 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.5 APEX 0.984531 0.25 0.5 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.5 APEX 0.875 0.359531 0.5 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.515469 APEX 0.875 0.25 0.609531 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.625 RAD 0.03125 
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.625 APEX 0.984531 0.25 0.625 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.625 APEX 0.875 0.359531 0.625 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.640469 APEX 0.875 0.25 0.734531 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.75 RAD 0.03125 
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.75 APEX 0.984531 0.25 0.75 RAD 0.0078125
+   txt223 
+TEXDEF txt223 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.75 APEX 0.875 0.359531 0.75 RAD 0.0078125
+   txt223 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.765469 APEX 0.875 0.25 0.859531 RAD 0.0078125
+   txt224 
+TEXDEF txt224 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 0.875 RAD 0.03125 
+   txt224 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 0.875 APEX 0.984531 0.25 0.875 RAD 0.0078125
+   txt224 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 0.875 APEX 0.875 0.359531 0.875 RAD 0.0078125
+   txt224 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.25 0.890469 APEX 0.875 0.25 0.984531 RAD 0.0078125
+   txt224 
+TEXDEF txt224 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.25 1 RAD 0.03125 
+   txt224 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.25 1 APEX 0.984531 0.25 1 RAD 0.0078125
+   txt224 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.265469 1 APEX 0.875 0.359531 1 RAD 0.0078125
+   txt224 
+TEXDEF txt224 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0 RAD 0.03125 
+   txt224 
+TEXDEF txt224 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0 APEX 0.984531 0.375 0 RAD 0.0078125
+   txt224 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0 APEX 0.875 0.484531 0 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.0154687 APEX 0.875 0.375 0.109531 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.125 RAD 0.03125 
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.125 APEX 0.984531 0.375 0.125 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.125 APEX 0.875 0.484531 0.125 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.140469 APEX 0.875 0.375 0.234531 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.25 RAD 0.03125 
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.25 APEX 0.984531 0.375 0.25 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.25 APEX 0.875 0.484531 0.25 RAD 0.0078125
+   txt225 
+TEXDEF txt225 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.265469 APEX 0.875 0.375 0.359531 RAD 0.0078125
+   txt225 
+TEXDEF txt226 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.375 RAD 0.03125 
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.375 APEX 0.984531 0.375 0.375 RAD 0.0078125
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.375 APEX 0.875 0.484531 0.375 RAD 0.0078125
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.390469 APEX 0.875 0.375 0.484531 RAD 0.0078125
+   txt226 
+TEXDEF txt226 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.5 RAD 0.03125 
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.5 APEX 0.984531 0.375 0.5 RAD 0.0078125
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.5 APEX 0.875 0.484531 0.5 RAD 0.0078125
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.515469 APEX 0.875 0.375 0.609531 RAD 0.0078125
+   txt226 
+TEXDEF txt226 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.625 RAD 0.03125 
+   txt226 
+TEXDEF txt226 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.625 APEX 0.984531 0.375 0.625 RAD 0.0078125
+   txt226 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.625 APEX 0.875 0.484531 0.625 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.640469 APEX 0.875 0.375 0.734531 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.75 RAD 0.03125 
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.75 APEX 0.984531 0.375 0.75 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.75 APEX 0.875 0.484531 0.75 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.765469 APEX 0.875 0.375 0.859531 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 0.875 RAD 0.03125 
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 0.875 APEX 0.984531 0.375 0.875 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 0.875 APEX 0.875 0.484531 0.875 RAD 0.0078125
+   txt227 
+TEXDEF txt227 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.375 0.890469 APEX 0.875 0.375 0.984531 RAD 0.0078125
+   txt227 
+TEXDEF txt228 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.375 1 RAD 0.03125 
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.375 1 APEX 0.984531 0.375 1 RAD 0.0078125
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.390469 1 APEX 0.875 0.484531 1 RAD 0.0078125
+   txt228 
+TEXDEF txt228 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0 RAD 0.03125 
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0 APEX 0.984531 0.5 0 RAD 0.0078125
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0 APEX 0.875 0.609531 0 RAD 0.0078125
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.0154687 APEX 0.875 0.5 0.109531 RAD 0.0078125
+   txt228 
+TEXDEF txt228 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.125 RAD 0.03125 
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.125 APEX 0.984531 0.5 0.125 RAD 0.0078125
+   txt228 
+TEXDEF txt228 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.125 APEX 0.875 0.609531 0.125 RAD 0.0078125
+   txt228 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.140469 APEX 0.875 0.5 0.234531 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.25 RAD 0.03125 
+   txt229 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.25 APEX 0.984531 0.5 0.25 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.25 APEX 0.875 0.609531 0.25 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.265469 APEX 0.875 0.5 0.359531 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.375 RAD 0.03125 
+   txt229 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.375 APEX 0.984531 0.5 0.375 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.375 APEX 0.875 0.609531 0.375 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.390469 APEX 0.875 0.5 0.484531 RAD 0.0078125
+   txt229 
+TEXDEF txt229 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.5 RAD 0.03125 
+   txt229 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.5 APEX 0.984531 0.5 0.5 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.5 APEX 0.875 0.609531 0.5 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.515469 APEX 0.875 0.5 0.609531 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.625 RAD 0.03125 
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.625 APEX 0.984531 0.5 0.625 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.625 APEX 0.875 0.609531 0.625 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.640469 APEX 0.875 0.5 0.734531 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.75 RAD 0.03125 
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.75 APEX 0.984531 0.5 0.75 RAD 0.0078125
+   txt230 
+TEXDEF txt230 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.75 APEX 0.875 0.609531 0.75 RAD 0.0078125
+   txt230 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.765469 APEX 0.875 0.5 0.859531 RAD 0.0078125
+   txt231 
+TEXDEF txt231 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 0.875 RAD 0.03125 
+   txt231 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 0.875 APEX 0.984531 0.5 0.875 RAD 0.0078125
+   txt231 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 0.875 APEX 0.875 0.609531 0.875 RAD 0.0078125
+   txt231 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.5 0.890469 APEX 0.875 0.5 0.984531 RAD 0.0078125
+   txt231 
+TEXDEF txt231 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.5 1 RAD 0.03125 
+   txt231 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.5 1 APEX 0.984531 0.5 1 RAD 0.0078125
+   txt231 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.515469 1 APEX 0.875 0.609531 1 RAD 0.0078125
+   txt231 
+TEXDEF txt231 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0 RAD 0.03125 
+   txt231 
+TEXDEF txt231 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0 APEX 0.984531 0.625 0 RAD 0.0078125
+   txt231 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0 APEX 0.875 0.734531 0 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.0154687 APEX 0.875 0.625 0.109531 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.125 RAD 0.03125 
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.125 APEX 0.984531 0.625 0.125 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.125 APEX 0.875 0.734531 0.125 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.140469 APEX 0.875 0.625 0.234531 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.25 RAD 0.03125 
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.25 APEX 0.984531 0.625 0.25 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.25 APEX 0.875 0.734531 0.25 RAD 0.0078125
+   txt232 
+TEXDEF txt232 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.265469 APEX 0.875 0.625 0.359531 RAD 0.0078125
+   txt232 
+TEXDEF txt233 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.375 RAD 0.03125 
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.375 APEX 0.984531 0.625 0.375 RAD 0.0078125
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.375 APEX 0.875 0.734531 0.375 RAD 0.0078125
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.390469 APEX 0.875 0.625 0.484531 RAD 0.0078125
+   txt233 
+TEXDEF txt233 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.5 RAD 0.03125 
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.5 APEX 0.984531 0.625 0.5 RAD 0.0078125
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.5 APEX 0.875 0.734531 0.5 RAD 0.0078125
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.515469 APEX 0.875 0.625 0.609531 RAD 0.0078125
+   txt233 
+TEXDEF txt233 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.625 RAD 0.03125 
+   txt233 
+TEXDEF txt233 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.625 APEX 0.984531 0.625 0.625 RAD 0.0078125
+   txt233 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.625 APEX 0.875 0.734531 0.625 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.640469 APEX 0.875 0.625 0.734531 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.75 RAD 0.03125 
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.75 APEX 0.984531 0.625 0.75 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.75 APEX 0.875 0.734531 0.75 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.765469 APEX 0.875 0.625 0.859531 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 0.875 RAD 0.03125 
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 0.875 APEX 0.984531 0.625 0.875 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 0.875 APEX 0.875 0.734531 0.875 RAD 0.0078125
+   txt234 
+TEXDEF txt234 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.625 0.890469 APEX 0.875 0.625 0.984531 RAD 0.0078125
+   txt234 
+TEXDEF txt235 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.625 1 RAD 0.03125 
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.625 1 APEX 0.984531 0.625 1 RAD 0.0078125
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.640469 1 APEX 0.875 0.734531 1 RAD 0.0078125
+   txt235 
+TEXDEF txt235 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0 RAD 0.03125 
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0 APEX 0.984531 0.75 0 RAD 0.0078125
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0 APEX 0.875 0.859531 0 RAD 0.0078125
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.0154687 APEX 0.875 0.75 0.109531 RAD 0.0078125
+   txt235 
+TEXDEF txt235 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.125 RAD 0.03125 
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.125 APEX 0.984531 0.75 0.125 RAD 0.0078125
+   txt235 
+TEXDEF txt235 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.125 APEX 0.875 0.859531 0.125 RAD 0.0078125
+   txt235 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.140469 APEX 0.875 0.75 0.234531 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.25 RAD 0.03125 
+   txt236 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.25 APEX 0.984531 0.75 0.25 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.25 APEX 0.875 0.859531 0.25 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.265469 APEX 0.875 0.75 0.359531 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.375 RAD 0.03125 
+   txt236 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.375 APEX 0.984531 0.75 0.375 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.375 APEX 0.875 0.859531 0.375 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.390469 APEX 0.875 0.75 0.484531 RAD 0.0078125
+   txt236 
+TEXDEF txt236 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.5 RAD 0.03125 
+   txt236 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.5 APEX 0.984531 0.75 0.5 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.5 APEX 0.875 0.859531 0.5 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.515469 APEX 0.875 0.75 0.609531 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.625 RAD 0.03125 
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.625 APEX 0.984531 0.75 0.625 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.625 APEX 0.875 0.859531 0.625 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.640469 APEX 0.875 0.75 0.734531 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.75 RAD 0.03125 
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.75 APEX 0.984531 0.75 0.75 RAD 0.0078125
+   txt237 
+TEXDEF txt237 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.75 APEX 0.875 0.859531 0.75 RAD 0.0078125
+   txt237 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.765469 APEX 0.875 0.75 0.859531 RAD 0.0078125
+   txt238 
+TEXDEF txt238 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 0.875 RAD 0.03125 
+   txt238 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 0.875 APEX 0.984531 0.75 0.875 RAD 0.0078125
+   txt238 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 0.875 APEX 0.875 0.859531 0.875 RAD 0.0078125
+   txt238 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.75 0.890469 APEX 0.875 0.75 0.984531 RAD 0.0078125
+   txt238 
+TEXDEF txt238 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.75 1 RAD 0.03125 
+   txt238 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.75 1 APEX 0.984531 0.75 1 RAD 0.0078125
+   txt238 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.765469 1 APEX 0.875 0.859531 1 RAD 0.0078125
+   txt238 
+TEXDEF txt238 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0 RAD 0.03125 
+   txt238 
+TEXDEF txt238 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0 APEX 0.984531 0.875 0 RAD 0.0078125
+   txt238 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0 APEX 0.875 0.984531 0 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.0154687 APEX 0.875 0.875 0.109531 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.125 RAD 0.03125 
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.125 APEX 0.984531 0.875 0.125 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.125 APEX 0.875 0.984531 0.125 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.140469 APEX 0.875 0.875 0.234531 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.25 RAD 0.03125 
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.25 APEX 0.984531 0.875 0.25 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.25 APEX 0.875 0.984531 0.25 RAD 0.0078125
+   txt239 
+TEXDEF txt239 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.265469 APEX 0.875 0.875 0.359531 RAD 0.0078125
+   txt239 
+TEXDEF txt240 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.375 RAD 0.03125 
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.375 APEX 0.984531 0.875 0.375 RAD 0.0078125
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.375 APEX 0.875 0.984531 0.375 RAD 0.0078125
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.390469 APEX 0.875 0.875 0.484531 RAD 0.0078125
+   txt240 
+TEXDEF txt240 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.5 RAD 0.03125 
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.5 APEX 0.984531 0.875 0.5 RAD 0.0078125
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.5 APEX 0.875 0.984531 0.5 RAD 0.0078125
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.515469 APEX 0.875 0.875 0.609531 RAD 0.0078125
+   txt240 
+TEXDEF txt240 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.625 RAD 0.03125 
+   txt240 
+TEXDEF txt240 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.625 APEX 0.984531 0.875 0.625 RAD 0.0078125
+   txt240 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.625 APEX 0.875 0.984531 0.625 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.640469 APEX 0.875 0.875 0.734531 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.75 RAD 0.03125 
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.75 APEX 0.984531 0.875 0.75 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.75 APEX 0.875 0.984531 0.75 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.765469 APEX 0.875 0.875 0.859531 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 0.875 RAD 0.03125 
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 0.875 APEX 0.984531 0.875 0.875 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 0.875 APEX 0.875 0.984531 0.875 RAD 0.0078125
+   txt241 
+TEXDEF txt241 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.875 0.890469 APEX 0.875 0.875 0.984531 RAD 0.0078125
+   txt241 
+TEXDEF txt242 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 0.875 1 RAD 0.03125 
+   txt242 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 0.875 1 APEX 0.984531 0.875 1 RAD 0.0078125
+   txt242 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 0.890469 1 APEX 0.875 0.984531 1 RAD 0.0078125
+   txt242 
+TEXDEF txt242 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0 RAD 0.03125 
+   txt242 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0 APEX 0.984531 1 0 RAD 0.0078125
+   txt242 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.0154687 APEX 0.875 1 0.109531 RAD 0.0078125
+   txt242 
+TEXDEF txt242 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.125 RAD 0.03125 
+   txt242 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.125 APEX 0.984531 1 0.125 RAD 0.0078125
+   txt242 
+TEXDEF txt242 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.140469 APEX 0.875 1 0.234531 RAD 0.0078125
+   txt242 
+TEXDEF txt242 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.25 RAD 0.03125 
+   txt242 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.25 APEX 0.984531 1 0.25 RAD 0.0078125
+   txt243 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.265469 APEX 0.875 1 0.359531 RAD 0.0078125
+   txt243 
+TEXDEF txt243 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.375 RAD 0.03125 
+   txt243 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.375 APEX 0.984531 1 0.375 RAD 0.0078125
+   txt243 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.390469 APEX 0.875 1 0.484531 RAD 0.0078125
+   txt243 
+TEXDEF txt243 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.5 RAD 0.03125 
+   txt243 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.5 APEX 0.984531 1 0.5 RAD 0.0078125
+   txt243 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.515469 APEX 0.875 1 0.609531 RAD 0.0078125
+   txt243 
+TEXDEF txt243 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.625 RAD 0.03125 
+   txt243 
+TEXDEF txt243 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.625 APEX 0.984531 1 0.625 RAD 0.0078125
+   txt243 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.640469 APEX 0.875 1 0.734531 RAD 0.0078125
+   txt244 
+TEXDEF txt244 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.75 RAD 0.03125 
+   txt244 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.75 APEX 0.984531 1 0.75 RAD 0.0078125
+   txt244 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.765469 APEX 0.875 1 0.859531 RAD 0.0078125
+   txt244 
+TEXDEF txt244 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 0.875 RAD 0.03125 
+   txt244 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 0.875 APEX 0.984531 1 0.875 RAD 0.0078125
+   txt244 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.875 1 0.890469 APEX 0.875 1 0.984531 RAD 0.0078125
+   txt244 
+TEXDEF txt244 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 0.875 1 1 RAD 0.03125 
+   txt244 
+TEXDEF txt244 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.9 0.1 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 0.890469 1 1 APEX 0.984531 1 1 RAD 0.0078125
+   txt244 
+TEXDEF txt244 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0 RAD 0.03125 
+   txt244 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0 APEX 1 0.109531 0 RAD 0.0078125
+   txt245 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.0154687 APEX 1 0 0.109531 RAD 0.0078125
+   txt245 
+TEXDEF txt245 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.125 RAD 0.03125 
+   txt245 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.125 APEX 1 0.109531 0.125 RAD 0.0078125
+   txt245 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.140469 APEX 1 0 0.234531 RAD 0.0078125
+   txt245 
+TEXDEF txt245 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.25 RAD 0.03125 
+   txt245 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.25 APEX 1 0.109531 0.25 RAD 0.0078125
+   txt245 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.265469 APEX 1 0 0.359531 RAD 0.0078125
+   txt245 
+TEXDEF txt245 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.375 RAD 0.03125 
+   txt245 
+TEXDEF txt245 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.375 APEX 1 0.109531 0.375 RAD 0.0078125
+   txt245 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.390469 APEX 1 0 0.484531 RAD 0.0078125
+   txt246 
+TEXDEF txt246 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.5 RAD 0.03125 
+   txt246 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.5 APEX 1 0.109531 0.5 RAD 0.0078125
+   txt246 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.515469 APEX 1 0 0.609531 RAD 0.0078125
+   txt246 
+TEXDEF txt246 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.625 RAD 0.03125 
+   txt246 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.625 APEX 1 0.109531 0.625 RAD 0.0078125
+   txt246 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.640469 APEX 1 0 0.734531 RAD 0.0078125
+   txt246 
+TEXDEF txt246 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.75 RAD 0.03125 
+   txt246 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.75 APEX 1 0.109531 0.75 RAD 0.0078125
+   txt246 
+TEXDEF txt246 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.765469 APEX 1 0 0.859531 RAD 0.0078125
+   txt246 
+TEXDEF txt247 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 0.875 RAD 0.03125 
+   txt247 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 0.875 APEX 1 0.109531 0.875 RAD 0.0078125
+   txt247 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0 0.890469 APEX 1 0 0.984531 RAD 0.0078125
+   txt247 
+TEXDEF txt247 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0 1 RAD 0.03125 
+   txt247 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.0154687 1 APEX 1 0.109531 1 RAD 0.0078125
+   txt247 
+TEXDEF txt247 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0 RAD 0.03125 
+   txt247 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0 APEX 1 0.234531 0 RAD 0.0078125
+   txt247 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.0154687 APEX 1 0.125 0.109531 RAD 0.0078125
+   txt247 
+TEXDEF txt247 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.125 RAD 0.03125 
+   txt247 
+TEXDEF txt247 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.125 APEX 1 0.234531 0.125 RAD 0.0078125
+   txt247 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.140469 APEX 1 0.125 0.234531 RAD 0.0078125
+   txt248 
+TEXDEF txt248 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.25 RAD 0.03125 
+   txt248 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.25 APEX 1 0.234531 0.25 RAD 0.0078125
+   txt248 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.265469 APEX 1 0.125 0.359531 RAD 0.0078125
+   txt248 
+TEXDEF txt248 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.375 RAD 0.03125 
+   txt248 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.375 APEX 1 0.234531 0.375 RAD 0.0078125
+   txt248 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.390469 APEX 1 0.125 0.484531 RAD 0.0078125
+   txt248 
+TEXDEF txt248 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.5 RAD 0.03125 
+   txt248 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.5 APEX 1 0.234531 0.5 RAD 0.0078125
+   txt248 
+TEXDEF txt248 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.515469 APEX 1 0.125 0.609531 RAD 0.0078125
+   txt248 
+TEXDEF txt249 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.625 RAD 0.03125 
+   txt249 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.625 APEX 1 0.234531 0.625 RAD 0.0078125
+   txt249 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.640469 APEX 1 0.125 0.734531 RAD 0.0078125
+   txt249 
+TEXDEF txt249 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.75 RAD 0.03125 
+   txt249 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.75 APEX 1 0.234531 0.75 RAD 0.0078125
+   txt249 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.765469 APEX 1 0.125 0.859531 RAD 0.0078125
+   txt249 
+TEXDEF txt249 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 0.875 RAD 0.03125 
+   txt249 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 0.875 APEX 1 0.234531 0.875 RAD 0.0078125
+   txt249 
+TEXDEF txt249 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.125 0.890469 APEX 1 0.125 0.984531 RAD 0.0078125
+   txt249 
+TEXDEF txt249 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.125 1 RAD 0.03125 
+   txt249 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.140469 1 APEX 1 0.234531 1 RAD 0.0078125
+   txt250 
+TEXDEF txt250 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0 RAD 0.03125 
+   txt250 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0 APEX 1 0.359531 0 RAD 0.0078125
+   txt250 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.0154687 APEX 1 0.25 0.109531 RAD 0.0078125
+   txt250 
+TEXDEF txt250 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.125 RAD 0.03125 
+   txt250 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.125 APEX 1 0.359531 0.125 RAD 0.0078125
+   txt250 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.140469 APEX 1 0.25 0.234531 RAD 0.0078125
+   txt250 
+TEXDEF txt250 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.25 RAD 0.03125 
+   txt250 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.25 APEX 1 0.359531 0.25 RAD 0.0078125
+   txt250 
+TEXDEF txt250 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.265469 APEX 1 0.25 0.359531 RAD 0.0078125
+   txt250 
+TEXDEF txt251 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.375 RAD 0.03125 
+   txt251 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.375 APEX 1 0.359531 0.375 RAD 0.0078125
+   txt251 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.390469 APEX 1 0.25 0.484531 RAD 0.0078125
+   txt251 
+TEXDEF txt251 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.5 RAD 0.03125 
+   txt251 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.5 APEX 1 0.359531 0.5 RAD 0.0078125
+   txt251 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.515469 APEX 1 0.25 0.609531 RAD 0.0078125
+   txt251 
+TEXDEF txt251 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.625 RAD 0.03125 
+   txt251 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.625 APEX 1 0.359531 0.625 RAD 0.0078125
+   txt251 
+TEXDEF txt251 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.640469 APEX 1 0.25 0.734531 RAD 0.0078125
+   txt251 
+TEXDEF txt251 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.75 RAD 0.03125 
+   txt251 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.75 APEX 1 0.359531 0.75 RAD 0.0078125
+   txt252 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.765469 APEX 1 0.25 0.859531 RAD 0.0078125
+   txt252 
+TEXDEF txt252 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 0.875 RAD 0.03125 
+   txt252 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 0.875 APEX 1 0.359531 0.875 RAD 0.0078125
+   txt252 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.25 0.890469 APEX 1 0.25 0.984531 RAD 0.0078125
+   txt252 
+TEXDEF txt252 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.25 1 RAD 0.03125 
+   txt252 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.265469 1 APEX 1 0.359531 1 RAD 0.0078125
+   txt252 
+TEXDEF txt252 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0 RAD 0.03125 
+   txt252 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0 APEX 1 0.484531 0 RAD 0.0078125
+   txt252 
+TEXDEF txt252 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.0154687 APEX 1 0.375 0.109531 RAD 0.0078125
+   txt252 
+TEXDEF txt253 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.125 RAD 0.03125 
+   txt253 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.125 APEX 1 0.484531 0.125 RAD 0.0078125
+   txt253 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.140469 APEX 1 0.375 0.234531 RAD 0.0078125
+   txt253 
+TEXDEF txt253 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.25 RAD 0.03125 
+   txt253 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.25 APEX 1 0.484531 0.25 RAD 0.0078125
+   txt253 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.265469 APEX 1 0.375 0.359531 RAD 0.0078125
+   txt253 
+TEXDEF txt253 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.375 RAD 0.03125 
+   txt253 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.375 APEX 1 0.484531 0.375 RAD 0.0078125
+   txt253 
+TEXDEF txt253 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.390469 APEX 1 0.375 0.484531 RAD 0.0078125
+   txt253 
+TEXDEF txt253 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.5 RAD 0.03125 
+   txt253 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.5 APEX 1 0.484531 0.5 RAD 0.0078125
+   txt254 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.515469 APEX 1 0.375 0.609531 RAD 0.0078125
+   txt254 
+TEXDEF txt254 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.625 RAD 0.03125 
+   txt254 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.625 APEX 1 0.484531 0.625 RAD 0.0078125
+   txt254 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.640469 APEX 1 0.375 0.734531 RAD 0.0078125
+   txt254 
+TEXDEF txt254 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.75 RAD 0.03125 
+   txt254 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.75 APEX 1 0.484531 0.75 RAD 0.0078125
+   txt254 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.765469 APEX 1 0.375 0.859531 RAD 0.0078125
+   txt254 
+TEXDEF txt254 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 0.875 RAD 0.03125 
+   txt254 
+TEXDEF txt254 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 0.875 APEX 1 0.484531 0.875 RAD 0.0078125
+   txt254 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.375 0.890469 APEX 1 0.375 0.984531 RAD 0.0078125
+   txt255 
+TEXDEF txt255 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.375 1 RAD 0.03125 
+   txt255 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.390469 1 APEX 1 0.484531 1 RAD 0.0078125
+   txt255 
+TEXDEF txt255 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0 RAD 0.03125 
+   txt255 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0 APEX 1 0.609531 0 RAD 0.0078125
+   txt255 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.0154687 APEX 1 0.5 0.109531 RAD 0.0078125
+   txt255 
+TEXDEF txt255 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.125 RAD 0.03125 
+   txt255 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.125 APEX 1 0.609531 0.125 RAD 0.0078125
+   txt255 
+TEXDEF txt255 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.140469 APEX 1 0.5 0.234531 RAD 0.0078125
+   txt255 
+TEXDEF txt255 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.25 RAD 0.03125 
+   txt255 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.25 APEX 1 0.609531 0.25 RAD 0.0078125
+   txt256 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.265469 APEX 1 0.5 0.359531 RAD 0.0078125
+   txt256 
+TEXDEF txt256 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.375 RAD 0.03125 
+   txt256 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.375 APEX 1 0.609531 0.375 RAD 0.0078125
+   txt256 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.390469 APEX 1 0.5 0.484531 RAD 0.0078125
+   txt256 
+TEXDEF txt256 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.5 RAD 0.03125 
+   txt256 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.5 APEX 1 0.609531 0.5 RAD 0.0078125
+   txt256 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.515469 APEX 1 0.5 0.609531 RAD 0.0078125
+   txt256 
+TEXDEF txt256 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.625 RAD 0.03125 
+   txt256 
+TEXDEF txt256 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.625 APEX 1 0.609531 0.625 RAD 0.0078125
+   txt256 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.640469 APEX 1 0.5 0.734531 RAD 0.0078125
+   txt257 
+TEXDEF txt257 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.75 RAD 0.03125 
+   txt257 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.75 APEX 1 0.609531 0.75 RAD 0.0078125
+   txt257 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.765469 APEX 1 0.5 0.859531 RAD 0.0078125
+   txt257 
+TEXDEF txt257 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 0.875 RAD 0.03125 
+   txt257 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 0.875 APEX 1 0.609531 0.875 RAD 0.0078125
+   txt257 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.5 0.890469 APEX 1 0.5 0.984531 RAD 0.0078125
+   txt257 
+TEXDEF txt257 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.5 1 RAD 0.03125 
+   txt257 
+TEXDEF txt257 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.515469 1 APEX 1 0.609531 1 RAD 0.0078125
+   txt257 
+TEXDEF txt257 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0 RAD 0.03125 
+   txt257 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0 APEX 1 0.734531 0 RAD 0.0078125
+   txt258 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.0154687 APEX 1 0.625 0.109531 RAD 0.0078125
+   txt258 
+TEXDEF txt258 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.125 RAD 0.03125 
+   txt258 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.125 APEX 1 0.734531 0.125 RAD 0.0078125
+   txt258 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.140469 APEX 1 0.625 0.234531 RAD 0.0078125
+   txt258 
+TEXDEF txt258 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.25 RAD 0.03125 
+   txt258 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.25 APEX 1 0.734531 0.25 RAD 0.0078125
+   txt258 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.265469 APEX 1 0.625 0.359531 RAD 0.0078125
+   txt258 
+TEXDEF txt258 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.375 RAD 0.03125 
+   txt258 
+TEXDEF txt258 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.375 APEX 1 0.734531 0.375 RAD 0.0078125
+   txt258 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.390469 APEX 1 0.625 0.484531 RAD 0.0078125
+   txt259 
+TEXDEF txt259 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.5 RAD 0.03125 
+   txt259 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.5 APEX 1 0.734531 0.5 RAD 0.0078125
+   txt259 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.515469 APEX 1 0.625 0.609531 RAD 0.0078125
+   txt259 
+TEXDEF txt259 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.625 RAD 0.03125 
+   txt259 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.625 APEX 1 0.734531 0.625 RAD 0.0078125
+   txt259 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.640469 APEX 1 0.625 0.734531 RAD 0.0078125
+   txt259 
+TEXDEF txt259 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.75 RAD 0.03125 
+   txt259 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.75 APEX 1 0.734531 0.75 RAD 0.0078125
+   txt259 
+TEXDEF txt259 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.765469 APEX 1 0.625 0.859531 RAD 0.0078125
+   txt259 
+TEXDEF txt260 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 0.875 RAD 0.03125 
+   txt260 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 0.875 APEX 1 0.734531 0.875 RAD 0.0078125
+   txt260 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.625 0.890469 APEX 1 0.625 0.984531 RAD 0.0078125
+   txt260 
+TEXDEF txt260 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.625 1 RAD 0.03125 
+   txt260 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.640469 1 APEX 1 0.734531 1 RAD 0.0078125
+   txt260 
+TEXDEF txt260 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0 RAD 0.03125 
+   txt260 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0 APEX 1 0.859531 0 RAD 0.0078125
+   txt260 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.0154687 APEX 1 0.75 0.109531 RAD 0.0078125
+   txt260 
+TEXDEF txt260 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.125 RAD 0.03125 
+   txt260 
+TEXDEF txt260 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.125 APEX 1 0.859531 0.125 RAD 0.0078125
+   txt260 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.140469 APEX 1 0.75 0.234531 RAD 0.0078125
+   txt261 
+TEXDEF txt261 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.25 RAD 0.03125 
+   txt261 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.25 APEX 1 0.859531 0.25 RAD 0.0078125
+   txt261 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.265469 APEX 1 0.75 0.359531 RAD 0.0078125
+   txt261 
+TEXDEF txt261 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.375 RAD 0.03125 
+   txt261 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.375 APEX 1 0.859531 0.375 RAD 0.0078125
+   txt261 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.390469 APEX 1 0.75 0.484531 RAD 0.0078125
+   txt261 
+TEXDEF txt261 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.5 RAD 0.03125 
+   txt261 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.5 APEX 1 0.859531 0.5 RAD 0.0078125
+   txt261 
+TEXDEF txt261 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.515469 APEX 1 0.75 0.609531 RAD 0.0078125
+   txt261 
+TEXDEF txt262 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.625 RAD 0.03125 
+   txt262 
+TEXDEF txt262 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.625 APEX 1 0.859531 0.625 RAD 0.0078125
+   txt262 
+TEXDEF txt262 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.640469 APEX 1 0.75 0.734531 RAD 0.0078125
+   txt262 
+TEXDEF txt262 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.75 RAD 0.03125 
+   txt262 
+TEXDEF txt262 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.75 APEX 1 0.859531 0.75 RAD 0.0078125
+   txt262 
+TEXDEF txt262 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.765469 APEX 1 0.75 0.859531 RAD 0.0078125
+   txt262 
+TEXDEF txt262 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 0.875 RAD 0.03125 
+   txt262 
+TEXDEF txt262 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 0.875 APEX 1 0.859531 0.875 RAD 0.0078125
+   txt262 
+TEXDEF txt262 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.75 0.890469 APEX 1 0.75 0.984531 RAD 0.0078125
+   txt262 
+TEXDEF txt262 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.75 1 RAD 0.03125 
+   txt262 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.765469 1 APEX 1 0.859531 1 RAD 0.0078125
+   txt263 
+TEXDEF txt263 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0 RAD 0.03125 
+   txt263 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0 APEX 1 0.984531 0 RAD 0.0078125
+   txt263 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.0154687 APEX 1 0.875 0.109531 RAD 0.0078125
+   txt263 
+TEXDEF txt263 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.125 RAD 0.03125 
+   txt263 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.125 APEX 1 0.984531 0.125 RAD 0.0078125
+   txt263 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.140469 APEX 1 0.875 0.234531 RAD 0.0078125
+   txt263 
+TEXDEF txt263 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.25 RAD 0.03125 
+   txt263 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.25 APEX 1 0.984531 0.25 RAD 0.0078125
+   txt263 
+TEXDEF txt263 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.265469 APEX 1 0.875 0.359531 RAD 0.0078125
+   txt263 
+TEXDEF txt264 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.375 RAD 0.03125 
+   txt264 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.375 APEX 1 0.984531 0.375 RAD 0.0078125
+   txt264 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.390469 APEX 1 0.875 0.484531 RAD 0.0078125
+   txt264 
+TEXDEF txt264 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.5 RAD 0.03125 
+   txt264 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.5 APEX 1 0.984531 0.5 RAD 0.0078125
+   txt264 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.515469 APEX 1 0.875 0.609531 RAD 0.0078125
+   txt264 
+TEXDEF txt264 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.625 RAD 0.03125 
+   txt264 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.625 APEX 1 0.984531 0.625 RAD 0.0078125
+   txt264 
+TEXDEF txt264 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.640469 APEX 1 0.875 0.734531 RAD 0.0078125
+   txt264 
+TEXDEF txt264 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.75 RAD 0.03125 
+   txt264 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.75 APEX 1 0.984531 0.75 RAD 0.0078125
+   txt265 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.765469 APEX 1 0.875 0.859531 RAD 0.0078125
+   txt265 
+TEXDEF txt265 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 0.875 RAD 0.03125 
+   txt265 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 0.875 APEX 1 0.984531 0.875 RAD 0.0078125
+   txt265 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.875 0.890469 APEX 1 0.875 0.984531 RAD 0.0078125
+   txt265 
+TEXDEF txt265 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 0.875 1 RAD 0.03125 
+   txt265 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.9 0.1 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 0.890469 1 APEX 1 0.984531 1 RAD 0.0078125
+   txt265 
+TEXDEF txt265 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0 RAD 0.03125 
+   txt265 
+TEXDEF txt265 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.0154687 APEX 1 1 0.109531 RAD 0.0078125
+   txt265 
+TEXDEF txt265 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.125 RAD 0.03125 
+   txt265 
+TEXDEF txt266 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.140469 APEX 1 1 0.234531 RAD 0.0078125
+   txt266 
+TEXDEF txt266 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.25 RAD 0.03125 
+   txt266 
+TEXDEF txt266 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.265469 APEX 1 1 0.359531 RAD 0.0078125
+   txt266 
+TEXDEF txt266 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.375 RAD 0.03125 
+   txt266 
+TEXDEF txt266 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.390469 APEX 1 1 0.484531 RAD 0.0078125
+   txt266 
+TEXDEF txt266 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.5 RAD 0.03125 
+   txt266 
+TEXDEF txt266 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.515469 APEX 1 1 0.609531 RAD 0.0078125
+   txt266 
+TEXDEF txt266 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.625 RAD 0.03125 
+   txt266 
+TEXDEF txt266 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.640469 APEX 1 1 0.734531 RAD 0.0078125
+   txt266 
+TEXDEF txt266 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.75 RAD 0.03125 
+   txt266 
+TEXDEF txt267 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.765469 APEX 1 1 0.859531 RAD 0.0078125
+   txt267 
+TEXDEF txt267 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 0.875 RAD 0.03125 
+   txt267 
+TEXDEF txt267 AMBIENT 0.1  DIFFUSE 0.99  SPECULAR 0  OPACITY 1 
+ COLOR 0.1 0.1 0.9 
+ TEXFUNC 0 
+
+FCYLINDER
+ BASE 1 1 0.890469 APEX 1 1 0.984531 RAD 0.0078125
+   txt267 
+TEXDEF txt267 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+ COLOR 0.9 0.9 0.9 
+ TEXFUNC 0 
+
+ SPHERE CENTER 1 1 1 RAD 0.03125 
+   txt267 
+
+END_SCENE
diff --git a/examples/parallel_for/tacheon/dat/model2.dat b/examples/parallel_for/tacheon/dat/model2.dat
new file mode 100644
index 0000000..c57ce49
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/model2.dat
@@ -0,0 +1,104 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 512 512
+  VERBOSE 0
+
+CAMERA
+  ZOOM  1.0
+  ASPECTRATIO 1.0
+  ANTIALIASING 1
+  RAYDEPTH 12
+  CENTER    0.0 0.0 -5.0
+  VIEWDIR   0.0 0.0 1.0
+  UPDIR     0.0 1.0 0.0
+END_CAMERA
+
+LIGHT  
+  CENTER -5.0 0.0 -4.0   
+  RAD     0.2
+  COLOR   1.0 0.1  0.0 
+
+LIGHT
+  CENTER  4.0 5.0 -4.0  
+  RAD     0.2
+  COLOR   0.0 0.1  1.0
+
+LIGHT 
+  CENTER  4.0 1.5  3.0 
+  RAD     0.2
+  COLOR   0.5 0.5  0.5
+
+TRI
+  V0  0.0 -4.0 12.0
+  V1  4.0 -4.0 8.0
+  V2 -4.0 -4.0 8.0
+  TEXTURE
+    AMBIENT  0.1 DIFFUSE  0.2 SPECULAR 0.7 OPACITY 1.0
+    COLOR 1.0 1.0 1.0
+    TEXFUNC 0
+
+SPHERE
+  CENTER 0.0  0.0 5.0   
+  RAD 1.3 
+  TEXTURE 
+    AMBIENT  0.1 DIFFUSE  0.0 SPECULAR 0.9   OPACITY 1.0
+    COLOR 1.0 1.0 1.0  
+    TEXFUNC 0
+
+SPHERE
+  CENTER 1.0  0.0 4.3   
+  RAD 0.8 
+  TEXTURE  
+    AMBIENT  0.1 DIFFUSE  0.9 SPECULAR 0.0 OPACITY 1.0
+    COLOR 0.3 0.3 1.0
+    TEXFUNC 3
+      CENTER 1.0 0.0 4.3
+      ROTATE 0. 0.0 0.0
+      SCALE  1.0 1.0 1.0
+
+SPHERE
+  CENTER 0.0  2.0 8.0   
+  RAD 1.0
+  TEXTURE 
+    AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0
+    COLOR 1.0 0.0 1.0  
+    TEXFUNC 4
+      CENTER 0.0 1.0 8.0
+      ROTATE 0. 0.0 0.0
+      SCALE  1.0 1.0 1.0
+
+SPHERE
+  CENTER -1.0 -0.5 5.0 
+  RAD  1.0
+  TEXTURE
+    AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0  OPACITY 1.0
+    COLOR 1.0 1.0 0.5  
+    TEXFUNC 6
+      CENTER -1.0 -0.5 5.0
+      ROTATE 0. 0.0 0.0
+      SCALE  1.0 1.0 1.0
+
+PLANE 
+  CENTER 0.0 -5.0 0.0 
+  NORMAL 0.0  1.0 0.0  
+  TEXTURE 
+    AMBIENT  0.1 DIFFUSE  0.9 SPECULAR 0.0  OPACITY 1.0
+    COLOR  1.0 1.0 1.0 
+    TEXFUNC  1
+      CENTER 0.0 -5.0 0.0
+      ROTATE 0. 0.0 0.0
+      SCALE  1.0 1.0 1.0
+
+PLANE
+  CENTER 0.0 0.0 15.0  
+  NORMAL 0.0 0.0 -1.0  
+  TEXTURE 
+    AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0   OPACITY 1.0
+    COLOR 1.0 1.0 1.0 
+    TEXFUNC  3
+      CENTER 0.0 0.0 15.0
+      ROTATE 0. 0.0 0.0
+      SCALE  1.0 1.0 1.0
+
+END_SCENE
+
diff --git a/examples/parallel_for/tacheon/dat/teapot.dat b/examples/parallel_for/tacheon/dat/teapot.dat
new file mode 100644
index 0000000..105afcd
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/teapot.dat
@@ -0,0 +1,9279 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 512 512
+  VERBOSE 0
+
+CAMERA
+  ZOOM 1.20711
+ASPECTRATIO 1.0
+  ANTIALIASING 0
+  RAYDEPTH 5
+  CENTER 4.86 7.2 5.4
+  VIEWDIR -0.475149 -0.703924 -0.527943
+  UPDIR -0.29537 -0.437585 0.84928
+
+END_CAMERA 
+
+BACKGROUND 0.078 0.361 0.753 
+
+LIGHT CENTER -3.1 9.8 12.1 RAD 0.002 COLOR 0.5 0.5 0.5
+
+LIGHT CENTER 11.3 5.1 8.8 RAD 0.002 COLOR 0.5 0.5 0.5
+
+TEXDEF txt001 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+PHONG METAL 0.5 PHONG_SIZE 4.81884
+ COLOR 1 1 1 
+ TEXFUNC 0 
+
+TRI 
+  V0 -4 -2.66667 0   V1 -2.66667 -2.66667 0   V2 -4 -1.33333 0 
+   txt001 
+TRI 
+  V0 -2.66667 -2.66667 0   V1 -2.66667 -1.33333 0   V2 -4 -1.33333 0 
+   txt001 
+TRI 
+  V0 -4 0 0   V1 -2.66667 0 0   V2 -4 1.33333 0 
+   txt001 
+TRI 
+  V0 -2.66667 0 0   V1 -2.66667 1.33333 0   V2 -4 1.33333 0 
+   txt001 
+TRI 
+  V0 -4 2.66667 0   V1 -2.66667 2.66667 0   V2 -4 4 0 
+   txt001 
+TRI 
+  V0 -2.66667 2.66667 0   V1 -2.66667 4 0   V2 -4 4 0 
+   txt001 
+TRI 
+  V0 -2.66667 -4 0   V1 -1.33333 -4 0   V2 -2.66667 -2.66667 0 
+   txt001 
+TRI 
+  V0 -1.33333 -4 0   V1 -1.33333 -2.66667 0   V2 -2.66667 -2.66667 0 
+   txt001 
+TRI 
+  V0 -2.66667 -1.33333 0   V1 -1.33333 -1.33333 0   V2 -2.66667 0 0 
+   txt001 
+TRI 
+  V0 -1.33333 -1.33333 0   V1 -1.33333 0 0   V2 -2.66667 0 0 
+   txt001 
+TRI 
+  V0 -2.66667 1.33333 0   V1 -1.33333 1.33333 0   V2 -2.66667 2.66667 0 
+   txt001 
+TRI 
+  V0 -1.33333 1.33333 0   V1 -1.33333 2.66667 0   V2 -2.66667 2.66667 0 
+   txt001 
+TRI 
+  V0 -1.33333 -2.66667 0   V1 0 -2.66667 0   V2 -1.33333 -1.33333 0 
+   txt001 
+TRI 
+  V0 0 -2.66667 0   V1 0 -1.33333 0   V2 -1.33333 -1.33333 0 
+   txt001 
+TRI 
+  V0 -1.33333 0 0   V1 0 0 0   V2 -1.33333 1.33333 0 
+   txt001 
+TRI 
+  V0 0 0 0   V1 0 1.33333 0   V2 -1.33333 1.33333 0 
+   txt001 
+TRI 
+  V0 -1.33333 2.66667 0   V1 0 2.66667 0   V2 -1.33333 4 0 
+   txt001 
+TRI 
+  V0 0 2.66667 0   V1 0 4 0   V2 -1.33333 4 0 
+   txt001 
+TRI 
+  V0 0 -4 0   V1 1.33333 -4 0   V2 0 -2.66667 0 
+   txt001 
+TRI 
+  V0 1.33333 -4 0   V1 1.33333 -2.66667 0   V2 0 -2.66667 0 
+   txt001 
+TRI 
+  V0 0 -1.33333 0   V1 1.33333 -1.33333 0   V2 0 0 0 
+   txt001 
+TRI 
+  V0 1.33333 -1.33333 0   V1 1.33333 0 0   V2 0 0 0 
+   txt001 
+TRI 
+  V0 0 1.33333 0   V1 1.33333 1.33333 0   V2 0 2.66667 0 
+   txt001 
+TRI 
+  V0 1.33333 1.33333 0   V1 1.33333 2.66667 0   V2 0 2.66667 0 
+   txt001 
+TRI 
+  V0 1.33333 -2.66667 0   V1 2.66667 -2.66667 0   V2 1.33333 -1.33333 0 
+   txt001 
+TRI 
+  V0 2.66667 -2.66667 0   V1 2.66667 -1.33333 0   V2 1.33333 -1.33333 0 
+   txt001 
+TRI 
+  V0 1.33333 0 0   V1 2.66667 0 0   V2 1.33333 1.33333 0 
+   txt001 
+TRI 
+  V0 2.66667 0 0   V1 2.66667 1.33333 0   V2 1.33333 1.33333 0 
+   txt001 
+TRI 
+  V0 1.33333 2.66667 0   V1 2.66667 2.66667 0   V2 1.33333 4 0 
+   txt001 
+TRI 
+  V0 2.66667 2.66667 0   V1 2.66667 4 0   V2 1.33333 4 0 
+   txt001 
+TRI 
+  V0 2.66667 -4 0   V1 4 -4 0   V2 2.66667 -2.66667 0 
+   txt001 
+TRI 
+  V0 4 -4 0   V1 4 -2.66667 0   V2 2.66667 -2.66667 0 
+   txt001 
+TRI 
+  V0 2.66667 -1.33333 0   V1 4 -1.33333 0   V2 2.66667 0 0 
+   txt001 
+TRI 
+  V0 4 -1.33333 0   V1 4 0 0   V2 2.66667 0 0 
+   txt001 
+TRI 
+  V0 2.66667 1.33333 0   V1 4 1.33333 0   V2 2.66667 2.66667 0 
+   txt001 
+TRI 
+  V0 4 1.33333 0   V1 4 2.66667 0   V2 2.66667 2.66667 0 
+   txt001 
+TEXDEF txt002 AMBIENT 0  DIFFUSE 0.5  SPECULAR 0.5  OPACITY 1 
+PHONG METAL 0.5 PHONG_SIZE 4.81884
+ COLOR 0.5 0.5 0.5 
+ TEXFUNC 0 
+
+TRI 
+  V0 -4 -4 0   V1 -2.66667 -4 0   V2 -4 -2.66667 0 
+   txt002 
+TRI 
+  V0 -2.66667 -4 0   V1 -2.66667 -2.66667 0   V2 -4 -2.66667 0 
+   txt002 
+TRI 
+  V0 -4 -1.33333 0   V1 -2.66667 -1.33333 0   V2 -4 0 0 
+   txt002 
+TRI 
+  V0 -2.66667 -1.33333 0   V1 -2.66667 0 0   V2 -4 0 0 
+   txt002 
+TRI 
+  V0 -4 1.33333 0   V1 -2.66667 1.33333 0   V2 -4 2.66667 0 
+   txt002 
+TRI 
+  V0 -2.66667 1.33333 0   V1 -2.66667 2.66667 0   V2 -4 2.66667 0 
+   txt002 
+TRI 
+  V0 -2.66667 -2.66667 0   V1 -1.33333 -2.66667 0   V2 -2.66667 -1.33333 0 
+   txt002 
+TRI 
+  V0 -1.33333 -2.66667 0   V1 -1.33333 -1.33333 0   V2 -2.66667 -1.33333 0 
+   txt002 
+TRI 
+  V0 -2.66667 0 0   V1 -1.33333 0 0   V2 -2.66667 1.33333 0 
+   txt002 
+TRI 
+  V0 -1.33333 0 0   V1 -1.33333 1.33333 0   V2 -2.66667 1.33333 0 
+   txt002 
+TRI 
+  V0 -2.66667 2.66667 0   V1 -1.33333 2.66667 0   V2 -2.66667 4 0 
+   txt002 
+TRI 
+  V0 -1.33333 2.66667 0   V1 -1.33333 4 0   V2 -2.66667 4 0 
+   txt002 
+TRI 
+  V0 -1.33333 -4 0   V1 0 -4 0   V2 -1.33333 -2.66667 0 
+   txt002 
+TRI 
+  V0 0 -4 0   V1 0 -2.66667 0   V2 -1.33333 -2.66667 0 
+   txt002 
+TRI 
+  V0 -1.33333 -1.33333 0   V1 0 -1.33333 0   V2 -1.33333 0 0 
+   txt002 
+TRI 
+  V0 0 -1.33333 0   V1 0 0 0   V2 -1.33333 0 0 
+   txt002 
+TRI 
+  V0 -1.33333 1.33333 0   V1 0 1.33333 0   V2 -1.33333 2.66667 0 
+   txt002 
+TRI 
+  V0 0 1.33333 0   V1 0 2.66667 0   V2 -1.33333 2.66667 0 
+   txt002 
+TRI 
+  V0 0 -2.66667 0   V1 1.33333 -2.66667 0   V2 0 -1.33333 0 
+   txt002 
+TRI 
+  V0 1.33333 -2.66667 0   V1 1.33333 -1.33333 0   V2 0 -1.33333 0 
+   txt002 
+TRI 
+  V0 0 0 0   V1 1.33333 0 0   V2 0 1.33333 0 
+   txt002 
+TRI 
+  V0 1.33333 0 0   V1 1.33333 1.33333 0   V2 0 1.33333 0 
+   txt002 
+TRI 
+  V0 0 2.66667 0   V1 1.33333 2.66667 0   V2 0 4 0 
+   txt002 
+TRI 
+  V0 1.33333 2.66667 0   V1 1.33333 4 0   V2 0 4 0 
+   txt002 
+TRI 
+  V0 1.33333 -4 0   V1 2.66667 -4 0   V2 1.33333 -2.66667 0 
+   txt002 
+TRI 
+  V0 2.66667 -4 0   V1 2.66667 -2.66667 0   V2 1.33333 -2.66667 0 
+   txt002 
+TRI 
+  V0 1.33333 -1.33333 0   V1 2.66667 -1.33333 0   V2 1.33333 0 0 
+   txt002 
+TRI 
+  V0 2.66667 -1.33333 0   V1 2.66667 0 0   V2 1.33333 0 0 
+   txt002 
+TRI 
+  V0 1.33333 1.33333 0   V1 2.66667 1.33333 0   V2 1.33333 2.66667 0 
+   txt002 
+TRI 
+  V0 2.66667 1.33333 0   V1 2.66667 2.66667 0   V2 1.33333 2.66667 0 
+   txt002 
+TRI 
+  V0 2.66667 -2.66667 0   V1 4 -2.66667 0   V2 2.66667 -1.33333 0 
+   txt002 
+TRI 
+  V0 4 -2.66667 0   V1 4 -1.33333 0   V2 2.66667 -1.33333 0 
+   txt002 
+TRI 
+  V0 2.66667 0 0   V1 4 0 0   V2 2.66667 1.33333 0 
+   txt002 
+TRI 
+  V0 4 0 0   V1 4 1.33333 0   V2 2.66667 1.33333 0 
+   txt002 
+TRI 
+  V0 2.66667 2.66667 0   V1 4 2.66667 0   V2 2.66667 4 0 
+   txt002 
+TRI 
+  V0 4 2.66667 0   V1 4 4 0   V2 2.66667 4 0 
+   txt002 
+TEXDEF txt003 AMBIENT 0  DIFFUSE 0.75  SPECULAR 0.25  OPACITY 1 
+PHONG PLASTIC 0.25 PHONG_SIZE 45.2776
+ COLOR 1 0.5 0.1 
+ TEXFUNC 0 
+
+STRI 
+  V0 1.4 0 2.4   V1 1.35074 -0.375926 2.4   V2 1.33276 -0.370922 2.45469 
+  N0 -0.902861 -0 -0.429934   N1 -0.871509 0.234929 -0.430442   N2 -0.953562 0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 1.33276 -0.370922 2.45469   V1 1.38137 0 2.45469   V2 1.4 0 2.4 
+  N0 -0.953562 0.257047 -0.156989   N1 -0.987636 -0 -0.156768   N2 -0.902861 -0 -0.429934 
+   txt003 
+STRI 
+  V0 1.35074 -0.375926 2.4   V1 1.21126 -0.711407 2.4   V2 1.19514 -0.701938 2.45469 
+  N0 -0.871509 0.234929 -0.430442   N1 -0.780517 0.4527 -0.43111   N2 -0.854265 0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 1.19514 -0.701938 2.45469   V1 1.33276 -0.370922 2.45469   V2 1.35074 -0.375926 2.4 
+  N0 -0.854265 0.495474 -0.157281   N1 -0.953562 0.257047 -0.156989   N2 -0.871509 0.234929 -0.430442 
+   txt003 
+STRI 
+  V0 1.21126 -0.711407 2.4   V1 0.994 -0.994 2.4   V2 0.98077 -0.98077 2.45469 
+  N0 -0.780517 0.4527 -0.43111   N1 -0.637936 0.637936 -0.431366   N2 -0.698293 0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 0.98077 -0.98077 2.45469   V1 1.19514 -0.701938 2.45469   V2 1.21126 -0.711407 2.4 
+  N0 -0.698293 0.698293 -0.157393   N1 -0.854265 0.495474 -0.157281   N2 -0.780517 0.4527 -0.43111 
+   txt003 
+STRI 
+  V0 0.994 -0.994 2.4   V1 0.711407 -1.21126 2.4   V2 0.701938 -1.19514 2.45469 
+  N0 -0.637936 0.637936 -0.431366   N1 -0.4527 0.780517 -0.43111   N2 -0.495474 0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 0.701938 -1.19514 2.45469   V1 0.98077 -0.98077 2.45469   V2 0.994 -0.994 2.4 
+  N0 -0.495474 0.854265 -0.157281   N1 -0.698293 0.698293 -0.157393   N2 -0.637936 0.637936 -0.431366 
+   txt003 
+STRI 
+  V0 0.711407 -1.21126 2.4   V1 0.375926 -1.35074 2.4   V2 0.370922 -1.33276 2.45469 
+  N0 -0.4527 0.780517 -0.43111   N1 -0.234929 0.871509 -0.430442   N2 -0.257047 0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 0.370922 -1.33276 2.45469   V1 0.701938 -1.19514 2.45469   V2 0.711407 -1.21126 2.4 
+  N0 -0.257047 0.953562 -0.156989   N1 -0.495474 0.854265 -0.157281   N2 -0.4527 0.780517 -0.43111 
+   txt003 
+STRI 
+  V0 0.375926 -1.35074 2.4   V1 0 -1.4 2.4   V2 0 -1.38137 2.45469 
+  N0 -0.234929 0.871509 -0.430442   N1 7.30595e-17 0.902861 -0.429934   N2 -9.89971e-17 0.987636 -0.156768 
+   txt003 
+STRI 
+  V0 0 -1.38137 2.45469   V1 0.370922 -1.33276 2.45469   V2 0.375926 -1.35074 2.4 
+  N0 -9.89971e-17 0.987636 -0.156768   N1 -0.257047 0.953562 -0.156989   N2 -0.234929 0.871509 -0.430442 
+   txt003 
+STRI 
+  V0 1.38137 0 2.45469   V1 1.33276 -0.370922 2.45469   V2 1.33555 -0.371699 2.4875 
+  N0 -0.987636 -0 -0.156768   N1 -0.953562 0.257047 -0.156989   N2 -0.849414 0.228972 0.475466 
+   txt003 
+STRI 
+  V0 1.33555 -0.371699 2.4875   V1 1.38426 0 2.4875   V2 1.38137 0 2.45469 
+  N0 -0.849414 0.228972 0.475466   N1 -0.880022 0 0.474933   N2 -0.987636 -0 -0.156768 
+   txt003 
+STRI 
+  V0 1.33276 -0.370922 2.45469   V1 1.19514 -0.701938 2.45469   V2 1.19764 -0.703409 2.4875 
+  N0 -0.953562 0.257047 -0.156989   N1 -0.854265 0.495474 -0.157281   N2 -0.760669 0.441188 0.476167 
+   txt003 
+STRI 
+  V0 1.19764 -0.703409 2.4875   V1 1.33555 -0.371699 2.4875   V2 1.33276 -0.370922 2.45469 
+  N0 -0.760669 0.441188 0.476167   N1 -0.849414 0.228972 0.475466   N2 -0.953562 0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 1.19514 -0.701938 2.45469   V1 0.98077 -0.98077 2.45469   V2 0.982824 -0.982824 2.4875 
+  N0 -0.854265 0.495474 -0.157281   N1 -0.698293 0.698293 -0.157393   N2 -0.621695 0.621695 0.476435 
+   txt003 
+STRI 
+  V0 0.982824 -0.982824 2.4875   V1 1.19764 -0.703409 2.4875   V2 1.19514 -0.701938 2.45469 
+  N0 -0.621695 0.621695 0.476435   N1 -0.760669 0.441188 0.476167   N2 -0.854265 0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 0.98077 -0.98077 2.45469   V1 0.701938 -1.19514 2.45469   V2 0.703409 -1.19764 2.4875 
+  N0 -0.698293 0.698293 -0.157393   N1 -0.495474 0.854265 -0.157281   N2 -0.441188 0.760669 0.476167 
+   txt003 
+STRI 
+  V0 0.703409 -1.19764 2.4875   V1 0.982824 -0.982824 2.4875   V2 0.98077 -0.98077 2.45469 
+  N0 -0.441188 0.760669 0.476167   N1 -0.621695 0.621695 0.476435   N2 -0.698293 0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 0.701938 -1.19514 2.45469   V1 0.370922 -1.33276 2.45469   V2 0.371699 -1.33555 2.4875 
+  N0 -0.495474 0.854265 -0.157281   N1 -0.257047 0.953562 -0.156989   N2 -0.228972 0.849414 0.475466 
+   txt003 
+STRI 
+  V0 0.371699 -1.33555 2.4875   V1 0.703409 -1.19764 2.4875   V2 0.701938 -1.19514 2.45469 
+  N0 -0.228972 0.849414 0.475466   N1 -0.441188 0.760669 0.476167   N2 -0.495474 0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 0.370922 -1.33276 2.45469   V1 0 -1.38137 2.45469   V2 0 -1.38426 2.4875 
+  N0 -0.257047 0.953562 -0.156989   N1 -9.89971e-17 0.987636 -0.156768   N2 -6.08179e-16 0.880022 0.474933 
+   txt003 
+STRI 
+  V0 0 -1.38426 2.4875   V1 0.371699 -1.33555 2.4875   V2 0.370922 -1.33276 2.45469 
+  N0 -6.08179e-16 0.880022 0.474933   N1 -0.228972 0.849414 0.475466   N2 -0.257047 0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 1.38426 0 2.4875   V1 1.33555 -0.371699 2.4875   V2 1.35376 -0.376765 2.49844 
+  N0 -0.880022 0 0.474933   N1 -0.849414 0.228972 0.475466   N2 2.13636e-15 -5.93089e-16 1 
+   txt003 
+STRI 
+  V0 1.35376 -0.376765 2.49844   V1 1.40312 0 2.49844   V2 1.38426 0 2.4875 
+  N0 2.13636e-15 -5.93089e-16 1   N1 2.22045e-15 0 1   N2 -0.880022 0 0.474933 
+   txt003 
+STRI 
+  V0 1.33555 -0.371699 2.4875   V1 1.19764 -0.703409 2.4875   V2 1.21396 -0.712995 2.49844 
+  N0 -0.849414 0.228972 0.475466   N1 -0.760669 0.441188 0.476167   N2 1.87966e-15 -1.16933e-15 1 
+   txt003 
+STRI 
+  V0 1.21396 -0.712995 2.49844   V1 1.35376 -0.376765 2.49844   V2 1.33555 -0.371699 2.4875 
+  N0 1.87966e-15 -1.16933e-15 1   N1 2.13636e-15 -5.93089e-16 1   N2 -0.849414 0.228972 0.475466 
+   txt003 
+STRI 
+  V0 1.19764 -0.703409 2.4875   V1 0.982824 -0.982824 2.4875   V2 0.996219 -0.996219 2.49844 
+  N0 -0.760669 0.441188 0.476167   N1 -0.621695 0.621695 0.476435   N2 1.4538e-15 -1.67359e-15 1 
+   txt003 
+STRI 
+  V0 0.996219 -0.996219 2.49844   V1 1.21396 -0.712995 2.49844   V2 1.19764 -0.703409 2.4875 
+  N0 1.4538e-15 -1.67359e-15 1   N1 1.87966e-15 -1.16933e-15 1   N2 -0.760669 0.441188 0.476167 
+   txt003 
+STRI 
+  V0 0.982824 -0.982824 2.4875   V1 0.703409 -1.19764 2.4875   V2 0.712995 -1.21396 2.49844 
+  N0 -0.621695 0.621695 0.476435   N1 -0.441188 0.760669 0.476167   N2 8.74229e-16 -2.05298e-15 1 
+   txt003 
+STRI 
+  V0 0.712995 -1.21396 2.49844   V1 0.996219 -0.996219 2.49844   V2 0.982824 -0.982824 2.4875 
+  N0 8.74229e-16 -2.05298e-15 1   N1 1.4538e-15 -1.67359e-15 1   N2 -0.621695 0.621695 0.476435 
+   txt003 
+STRI 
+  V0 0.703409 -1.19764 2.4875   V1 0.371699 -1.33555 2.4875   V2 0.376765 -1.35376 2.49844 
+  N0 -0.441188 0.760669 0.476167   N1 -0.228972 0.849414 0.475466   N2 1.77072e-16 -2.25214e-15 1 
+   txt003 
+STRI 
+  V0 0.376765 -1.35376 2.49844   V1 0.712995 -1.21396 2.49844   V2 0.703409 -1.19764 2.4875 
+  N0 1.77072e-16 -2.25214e-15 1   N1 8.74229e-16 -2.05298e-15 1   N2 -0.441188 0.760669 0.476167 
+   txt003 
+STRI 
+  V0 0.371699 -1.33555 2.4875   V1 0 -1.38426 2.4875   V2 0 -1.40312 2.49844 
+  N0 -0.228972 0.849414 0.475466   N1 -6.08179e-16 0.880022 0.474933   N2 -5.65179e-16 -2.22045e-15 1 
+   txt003 
+STRI 
+  V0 0 -1.40312 2.49844   V1 0.376765 -1.35376 2.49844   V2 0.371699 -1.33555 2.4875 
+  N0 -5.65179e-16 -2.22045e-15 1   N1 1.77072e-16 -2.25214e-15 1   N2 -0.228972 0.849414 0.475466 
+   txt003 
+STRI 
+  V0 1.40312 0 2.49844   V1 1.35376 -0.376765 2.49844   V2 1.38201 -0.384628 2.4875 
+  N0 2.22045e-15 0 1   N1 2.13636e-15 -5.93089e-16 1   N2 0.537012 -0.14476 0.831061 
+   txt003 
+STRI 
+  V0 1.38201 -0.384628 2.4875   V1 1.43241 0 2.4875   V2 1.40312 0 2.49844 
+  N0 0.537012 -0.14476 0.831061   N1 0.556738 0 0.830688   N2 2.22045e-15 0 1 
+   txt003 
+STRI 
+  V0 1.35376 -0.376765 2.49844   V1 1.21396 -0.712995 2.49844   V2 1.2393 -0.727875 2.4875 
+  N0 2.13636e-15 -5.93089e-16 1   N1 1.87966e-15 -1.16933e-15 1   N2 0.480481 -0.278679 0.83155 
+   txt003 
+STRI 
+  V0 1.2393 -0.727875 2.4875   V1 1.38201 -0.384628 2.4875   V2 1.35376 -0.376765 2.49844 
+  N0 0.480481 -0.278679 0.83155   N1 0.537012 -0.14476 0.831061   N2 2.13636e-15 -5.93089e-16 1 
+   txt003 
+STRI 
+  V0 1.21396 -0.712995 2.49844   V1 0.996219 -0.996219 2.49844   V2 1.01701 -1.01701 2.4875 
+  N0 1.87966e-15 -1.16933e-15 1   N1 1.4538e-15 -1.67359e-15 1   N2 0.392564 -0.392564 0.831737 
+   txt003 
+STRI 
+  V0 1.01701 -1.01701 2.4875   V1 1.2393 -0.727875 2.4875   V2 1.21396 -0.712995 2.49844 
+  N0 0.392564 -0.392564 0.831737   N1 0.480481 -0.278679 0.83155   N2 1.87966e-15 -1.16933e-15 1 
+   txt003 
+STRI 
+  V0 0.996219 -0.996219 2.49844   V1 0.712995 -1.21396 2.49844   V2 0.727875 -1.2393 2.4875 
+  N0 1.4538e-15 -1.67359e-15 1   N1 8.74229e-16 -2.05298e-15 1   N2 0.278679 -0.480481 0.83155 
+   txt003 
+STRI 
+  V0 0.727875 -1.2393 2.4875   V1 1.01701 -1.01701 2.4875   V2 0.996219 -0.996219 2.49844 
+  N0 0.278679 -0.480481 0.83155   N1 0.392564 -0.392564 0.831737   N2 1.4538e-15 -1.67359e-15 1 
+   txt003 
+STRI 
+  V0 0.712995 -1.21396 2.49844   V1 0.376765 -1.35376 2.49844   V2 0.384628 -1.38201 2.4875 
+  N0 8.74229e-16 -2.05298e-15 1   N1 1.77072e-16 -2.25214e-15 1   N2 0.14476 -0.537012 0.831061 
+   txt003 
+STRI 
+  V0 0.384628 -1.38201 2.4875   V1 0.727875 -1.2393 2.4875   V2 0.712995 -1.21396 2.49844 
+  N0 0.14476 -0.537012 0.831061   N1 0.278679 -0.480481 0.83155   N2 8.74229e-16 -2.05298e-15 1 
+   txt003 
+STRI 
+  V0 0.376765 -1.35376 2.49844   V1 0 -1.40312 2.49844   V2 0 -1.43241 2.4875 
+  N0 1.77072e-16 -2.25214e-15 1   N1 -5.65179e-16 -2.22045e-15 1   N2 -4.5989e-16 -0.556738 0.830688 
+   txt003 
+STRI 
+  V0 0 -1.43241 2.4875   V1 0.384628 -1.38201 2.4875   V2 0.376765 -1.35376 2.49844 
+  N0 -4.5989e-16 -0.556738 0.830688   N1 0.14476 -0.537012 0.831061   N2 1.77072e-16 -2.25214e-15 1 
+   txt003 
+STRI 
+  V0 1.43241 0 2.4875   V1 1.38201 -0.384628 2.4875   V2 1.41495 -0.393796 2.45469 
+  N0 0.556738 0 0.830688   N1 0.537012 -0.14476 0.831061   N2 0.755869 -0.203756 0.622211 
+   txt003 
+STRI 
+  V0 1.41495 -0.393796 2.45469   V1 1.46655 0 2.45469   V2 1.43241 0 2.4875 
+  N0 0.755869 -0.203756 0.622211   N1 0.783289 0 0.621658   N2 0.556738 0 0.830688 
+   txt003 
+STRI 
+  V0 1.38201 -0.384628 2.4875   V1 1.2393 -0.727875 2.4875   V2 1.26884 -0.745225 2.45469 
+  N0 0.537012 -0.14476 0.831061   N1 0.480481 -0.278679 0.83155   N2 0.67669 -0.39248 0.622937 
+   txt003 
+STRI 
+  V0 1.26884 -0.745225 2.45469   V1 1.41495 -0.393796 2.45469   V2 1.38201 -0.384628 2.4875 
+  N0 0.67669 -0.39248 0.622937   N1 0.755869 -0.203756 0.622211   N2 0.537012 -0.14476 0.831061 
+   txt003 
+STRI 
+  V0 1.2393 -0.727875 2.4875   V1 1.01701 -1.01701 2.4875   V2 1.04125 -1.04125 2.45469 
+  N0 0.480481 -0.278679 0.83155   N1 0.392564 -0.392564 0.831737   N2 0.552993 -0.552993 0.623215 
+   txt003 
+STRI 
+  V0 1.04125 -1.04125 2.45469   V1 1.26884 -0.745225 2.45469   V2 1.2393 -0.727875 2.4875 
+  N0 0.552993 -0.552993 0.623215   N1 0.67669 -0.39248 0.622937   N2 0.480481 -0.278679 0.83155 
+   txt003 
+STRI 
+  V0 1.01701 -1.01701 2.4875   V1 0.727875 -1.2393 2.4875   V2 0.745225 -1.26884 2.45469 
+  N0 0.392564 -0.392564 0.831737   N1 0.278679 -0.480481 0.83155   N2 0.39248 -0.67669 0.622937 
+   txt003 
+STRI 
+  V0 0.745225 -1.26884 2.45469   V1 1.04125 -1.04125 2.45469   V2 1.01701 -1.01701 2.4875 
+  N0 0.39248 -0.67669 0.622937   N1 0.552993 -0.552993 0.623215   N2 0.392564 -0.392564 0.831737 
+   txt003 
+STRI 
+  V0 0.727875 -1.2393 2.4875   V1 0.384628 -1.38201 2.4875   V2 0.393796 -1.41495 2.45469 
+  N0 0.278679 -0.480481 0.83155   N1 0.14476 -0.537012 0.831061   N2 0.203756 -0.755869 0.622211 
+   txt003 
+STRI 
+  V0 0.393796 -1.41495 2.45469   V1 0.745225 -1.26884 2.45469   V2 0.727875 -1.2393 2.4875 
+  N0 0.203756 -0.755869 0.622211   N1 0.39248 -0.67669 0.622937   N2 0.278679 -0.480481 0.83155 
+   txt003 
+STRI 
+  V0 0.384628 -1.38201 2.4875   V1 0 -1.43241 2.4875   V2 0 -1.46655 2.45469 
+  N0 0.14476 -0.537012 0.831061   N1 -4.5989e-16 -0.556738 0.830688   N2 -1.94969e-16 -0.783289 0.621658 
+   txt003 
+STRI 
+  V0 0 -1.46655 2.45469   V1 0.393796 -1.41495 2.45469   V2 0.384628 -1.38201 2.4875 
+  N0 -1.94969e-16 -0.783289 0.621658   N1 0.203756 -0.755869 0.622211   N2 0.14476 -0.537012 0.831061 
+   txt003 
+STRI 
+  V0 1.46655 0 2.45469   V1 1.41495 -0.393796 2.45469   V2 1.44722 -0.402778 2.4 
+  N0 0.783289 0 0.621658   N1 0.755869 -0.203756 0.622211   N2 0.871509 -0.234929 0.430442 
+   txt003 
+STRI 
+  V0 1.44722 -0.402778 2.4   V1 1.5 0 2.4   V2 1.46655 0 2.45469 
+  N0 0.871509 -0.234929 0.430442   N1 0.902861 0 0.429934   N2 0.783289 0 0.621658 
+   txt003 
+STRI 
+  V0 1.41495 -0.393796 2.45469   V1 1.26884 -0.745225 2.45469   V2 1.29778 -0.762222 2.4 
+  N0 0.755869 -0.203756 0.622211   N1 0.67669 -0.39248 0.622937   N2 0.780517 -0.4527 0.43111 
+   txt003 
+STRI 
+  V0 1.29778 -0.762222 2.4   V1 1.44722 -0.402778 2.4   V2 1.41495 -0.393796 2.45469 
+  N0 0.780517 -0.4527 0.43111   N1 0.871509 -0.234929 0.430442   N2 0.755869 -0.203756 0.622211 
+   txt003 
+STRI 
+  V0 1.26884 -0.745225 2.45469   V1 1.04125 -1.04125 2.45469   V2 1.065 -1.065 2.4 
+  N0 0.67669 -0.39248 0.622937   N1 0.552993 -0.552993 0.623215   N2 0.637936 -0.637936 0.431366 
+   txt003 
+STRI 
+  V0 1.065 -1.065 2.4   V1 1.29778 -0.762222 2.4   V2 1.26884 -0.745225 2.45469 
+  N0 0.637936 -0.637936 0.431366   N1 0.780517 -0.4527 0.43111   N2 0.67669 -0.39248 0.622937 
+   txt003 
+STRI 
+  V0 1.04125 -1.04125 2.45469   V1 0.745225 -1.26884 2.45469   V2 0.762222 -1.29778 2.4 
+  N0 0.552993 -0.552993 0.623215   N1 0.39248 -0.67669 0.622937   N2 0.4527 -0.780517 0.43111 
+   txt003 
+STRI 
+  V0 0.762222 -1.29778 2.4   V1 1.065 -1.065 2.4   V2 1.04125 -1.04125 2.45469 
+  N0 0.4527 -0.780517 0.43111   N1 0.637936 -0.637936 0.431366   N2 0.552993 -0.552993 0.623215 
+   txt003 
+STRI 
+  V0 0.745225 -1.26884 2.45469   V1 0.393796 -1.41495 2.45469   V2 0.402778 -1.44722 2.4 
+  N0 0.39248 -0.67669 0.622937   N1 0.203756 -0.755869 0.622211   N2 0.234929 -0.871509 0.430442 
+   txt003 
+STRI 
+  V0 0.402778 -1.44722 2.4   V1 0.762222 -1.29778 2.4   V2 0.745225 -1.26884 2.45469 
+  N0 0.234929 -0.871509 0.430442   N1 0.4527 -0.780517 0.43111   N2 0.39248 -0.67669 0.622937 
+   txt003 
+STRI 
+  V0 0.393796 -1.41495 2.45469   V1 0 -1.46655 2.45469   V2 0 -1.5 2.4 
+  N0 0.203756 -0.755869 0.622211   N1 -1.94969e-16 -0.783289 0.621658   N2 -6.81889e-17 -0.902861 0.429934 
+   txt003 
+STRI 
+  V0 0 -1.5 2.4   V1 0.402778 -1.44722 2.4   V2 0.393796 -1.41495 2.45469 
+  N0 -6.81889e-17 -0.902861 0.429934   N1 0.234929 -0.871509 0.430442   N2 0.203756 -0.755869 0.622211 
+   txt003 
+STRI 
+  V0 0 -1.4 2.4   V1 -0.375926 -1.35074 2.4   V2 -0.370922 -1.33276 2.45469 
+  N0 0 0.902861 -0.429934   N1 0.234929 0.871509 -0.430442   N2 0.257047 0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 -0.370922 -1.33276 2.45469   V1 0 -1.38137 2.45469   V2 0 -1.4 2.4 
+  N0 0.257047 0.953562 -0.156989   N1 0 0.987636 -0.156768   N2 0 0.902861 -0.429934 
+   txt003 
+STRI 
+  V0 -0.375926 -1.35074 2.4   V1 -0.711407 -1.21126 2.4   V2 -0.701938 -1.19514 2.45469 
+  N0 0.234929 0.871509 -0.430442   N1 0.4527 0.780517 -0.43111   N2 0.495474 0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 -0.701938 -1.19514 2.45469   V1 -0.370922 -1.33276 2.45469   V2 -0.375926 -1.35074 2.4 
+  N0 0.495474 0.854265 -0.157281   N1 0.257047 0.953562 -0.156989   N2 0.234929 0.871509 -0.430442 
+   txt003 
+STRI 
+  V0 -0.711407 -1.21126 2.4   V1 -0.994 -0.994 2.4   V2 -0.98077 -0.98077 2.45469 
+  N0 0.4527 0.780517 -0.43111   N1 0.637936 0.637936 -0.431366   N2 0.698293 0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 -0.98077 -0.98077 2.45469   V1 -0.701938 -1.19514 2.45469   V2 -0.711407 -1.21126 2.4 
+  N0 0.698293 0.698293 -0.157393   N1 0.495474 0.854265 -0.157281   N2 0.4527 0.780517 -0.43111 
+   txt003 
+STRI 
+  V0 -0.994 -0.994 2.4   V1 -1.21126 -0.711407 2.4   V2 -1.19514 -0.701938 2.45469 
+  N0 0.637936 0.637936 -0.431366   N1 0.780517 0.4527 -0.43111   N2 0.854265 0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 -1.19514 -0.701938 2.45469   V1 -0.98077 -0.98077 2.45469   V2 -0.994 -0.994 2.4 
+  N0 0.854265 0.495474 -0.157281   N1 0.698293 0.698293 -0.157393   N2 0.637936 0.637936 -0.431366 
+   txt003 
+STRI 
+  V0 -1.21126 -0.711407 2.4   V1 -1.35074 -0.375926 2.4   V2 -1.33276 -0.370922 2.45469 
+  N0 0.780517 0.4527 -0.43111   N1 0.871509 0.234929 -0.430442   N2 0.953562 0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 -1.33276 -0.370922 2.45469   V1 -1.19514 -0.701938 2.45469   V2 -1.21126 -0.711407 2.4 
+  N0 0.953562 0.257047 -0.156989   N1 0.854265 0.495474 -0.157281   N2 0.780517 0.4527 -0.43111 
+   txt003 
+STRI 
+  V0 -1.35074 -0.375926 2.4   V1 -1.4 0 2.4   V2 -1.38137 0 2.45469 
+  N0 0.871509 0.234929 -0.430442   N1 0.902861 -7.30595e-17 -0.429934   N2 0.987636 9.89971e-17 -0.156768 
+   txt003 
+STRI 
+  V0 -1.38137 0 2.45469   V1 -1.33276 -0.370922 2.45469   V2 -1.35074 -0.375926 2.4 
+  N0 0.987636 9.89971e-17 -0.156768   N1 0.953562 0.257047 -0.156989   N2 0.871509 0.234929 -0.430442 
+   txt003 
+STRI 
+  V0 0 -1.38137 2.45469   V1 -0.370922 -1.33276 2.45469   V2 -0.371699 -1.33555 2.4875 
+  N0 0 0.987636 -0.156768   N1 0.257047 0.953562 -0.156989   N2 0.228972 0.849414 0.475466 
+   txt003 
+STRI 
+  V0 -0.371699 -1.33555 2.4875   V1 0 -1.38426 2.4875   V2 0 -1.38137 2.45469 
+  N0 0.228972 0.849414 0.475466   N1 0 0.880022 0.474933   N2 0 0.987636 -0.156768 
+   txt003 
+STRI 
+  V0 -0.370922 -1.33276 2.45469   V1 -0.701938 -1.19514 2.45469   V2 -0.703409 -1.19764 2.4875 
+  N0 0.257047 0.953562 -0.156989   N1 0.495474 0.854265 -0.157281   N2 0.441188 0.760669 0.476167 
+   txt003 
+STRI 
+  V0 -0.703409 -1.19764 2.4875   V1 -0.371699 -1.33555 2.4875   V2 -0.370922 -1.33276 2.45469 
+  N0 0.441188 0.760669 0.476167   N1 0.228972 0.849414 0.475466   N2 0.257047 0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 -0.701938 -1.19514 2.45469   V1 -0.98077 -0.98077 2.45469   V2 -0.982824 -0.982824 2.4875 
+  N0 0.495474 0.854265 -0.157281   N1 0.698293 0.698293 -0.157393   N2 0.621695 0.621695 0.476435 
+   txt003 
+STRI 
+  V0 -0.982824 -0.982824 2.4875   V1 -0.703409 -1.19764 2.4875   V2 -0.701938 -1.19514 2.45469 
+  N0 0.621695 0.621695 0.476435   N1 0.441188 0.760669 0.476167   N2 0.495474 0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 -0.98077 -0.98077 2.45469   V1 -1.19514 -0.701938 2.45469   V2 -1.19764 -0.703409 2.4875 
+  N0 0.698293 0.698293 -0.157393   N1 0.854265 0.495474 -0.157281   N2 0.760669 0.441188 0.476167 
+   txt003 
+STRI 
+  V0 -1.19764 -0.703409 2.4875   V1 -0.982824 -0.982824 2.4875   V2 -0.98077 -0.98077 2.45469 
+  N0 0.760669 0.441188 0.476167   N1 0.621695 0.621695 0.476435   N2 0.698293 0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 -1.19514 -0.701938 2.45469   V1 -1.33276 -0.370922 2.45469   V2 -1.33555 -0.371699 2.4875 
+  N0 0.854265 0.495474 -0.157281   N1 0.953562 0.257047 -0.156989   N2 0.849414 0.228972 0.475466 
+   txt003 
+STRI 
+  V0 -1.33555 -0.371699 2.4875   V1 -1.19764 -0.703409 2.4875   V2 -1.19514 -0.701938 2.45469 
+  N0 0.849414 0.228972 0.475466   N1 0.760669 0.441188 0.476167   N2 0.854265 0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 -1.33276 -0.370922 2.45469   V1 -1.38137 0 2.45469   V2 -1.38426 0 2.4875 
+  N0 0.953562 0.257047 -0.156989   N1 0.987636 9.89971e-17 -0.156768   N2 0.880022 6.08179e-16 0.474933 
+   txt003 
+STRI 
+  V0 -1.38426 0 2.4875   V1 -1.33555 -0.371699 2.4875   V2 -1.33276 -0.370922 2.45469 
+  N0 0.880022 6.08179e-16 0.474933   N1 0.849414 0.228972 0.475466   N2 0.953562 0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 0 -1.38426 2.4875   V1 -0.371699 -1.33555 2.4875   V2 -0.376765 -1.35376 2.49844 
+  N0 0 0.880022 0.474933   N1 0.228972 0.849414 0.475466   N2 -5.93089e-16 -2.13636e-15 1 
+   txt003 
+STRI 
+  V0 -0.376765 -1.35376 2.49844   V1 0 -1.40312 2.49844   V2 0 -1.38426 2.4875 
+  N0 -5.93089e-16 -2.13636e-15 1   N1 0 -2.22045e-15 1   N2 0 0.880022 0.474933 
+   txt003 
+STRI 
+  V0 -0.371699 -1.33555 2.4875   V1 -0.703409 -1.19764 2.4875   V2 -0.712995 -1.21396 2.49844 
+  N0 0.228972 0.849414 0.475466   N1 0.441188 0.760669 0.476167   N2 -1.16933e-15 -1.87966e-15 1 
+   txt003 
+STRI 
+  V0 -0.712995 -1.21396 2.49844   V1 -0.376765 -1.35376 2.49844   V2 -0.371699 -1.33555 2.4875 
+  N0 -1.16933e-15 -1.87966e-15 1   N1 -5.93089e-16 -2.13636e-15 1   N2 0.228972 0.849414 0.475466 
+   txt003 
+STRI 
+  V0 -0.703409 -1.19764 2.4875   V1 -0.982824 -0.982824 2.4875   V2 -0.996219 -0.996219 2.49844 
+  N0 0.441188 0.760669 0.476167   N1 0.621695 0.621695 0.476435   N2 -1.67359e-15 -1.4538e-15 1 
+   txt003 
+STRI 
+  V0 -0.996219 -0.996219 2.49844   V1 -0.712995 -1.21396 2.49844   V2 -0.703409 -1.19764 2.4875 
+  N0 -1.67359e-15 -1.4538e-15 1   N1 -1.16933e-15 -1.87966e-15 1   N2 0.441188 0.760669 0.476167 
+   txt003 
+STRI 
+  V0 -0.982824 -0.982824 2.4875   V1 -1.19764 -0.703409 2.4875   V2 -1.21396 -0.712995 2.49844 
+  N0 0.621695 0.621695 0.476435   N1 0.760669 0.441188 0.476167   N2 -2.05298e-15 -8.74229e-16 1 
+   txt003 
+STRI 
+  V0 -1.21396 -0.712995 2.49844   V1 -0.996219 -0.996219 2.49844   V2 -0.982824 -0.982824 2.4875 
+  N0 -2.05298e-15 -8.74229e-16 1   N1 -1.67359e-15 -1.4538e-15 1   N2 0.621695 0.621695 0.476435 
+   txt003 
+STRI 
+  V0 -1.19764 -0.703409 2.4875   V1 -1.33555 -0.371699 2.4875   V2 -1.35376 -0.376765 2.49844 
+  N0 0.760669 0.441188 0.476167   N1 0.849414 0.228972 0.475466   N2 -2.25214e-15 -1.77072e-16 1 
+   txt003 
+STRI 
+  V0 -1.35376 -0.376765 2.49844   V1 -1.21396 -0.712995 2.49844   V2 -1.19764 -0.703409 2.4875 
+  N0 -2.25214e-15 -1.77072e-16 1   N1 -2.05298e-15 -8.74229e-16 1   N2 0.760669 0.441188 0.476167 
+   txt003 
+STRI 
+  V0 -1.33555 -0.371699 2.4875   V1 -1.38426 0 2.4875   V2 -1.40312 0 2.49844 
+  N0 0.849414 0.228972 0.475466   N1 0.880022 6.08179e-16 0.474933   N2 -2.22045e-15 5.65179e-16 1 
+   txt003 
+STRI 
+  V0 -1.40312 0 2.49844   V1 -1.35376 -0.376765 2.49844   V2 -1.33555 -0.371699 2.4875 
+  N0 -2.22045e-15 5.65179e-16 1   N1 -2.25214e-15 -1.77072e-16 1   N2 0.849414 0.228972 0.475466 
+   txt003 
+STRI 
+  V0 0 -1.40312 2.49844   V1 -0.376765 -1.35376 2.49844   V2 -0.384628 -1.38201 2.4875 
+  N0 0 -2.22045e-15 1   N1 -5.93089e-16 -2.13636e-15 1   N2 -0.14476 -0.537012 0.831061 
+   txt003 
+STRI 
+  V0 -0.384628 -1.38201 2.4875   V1 0 -1.43241 2.4875   V2 0 -1.40312 2.49844 
+  N0 -0.14476 -0.537012 0.831061   N1 0 -0.556738 0.830688   N2 0 -2.22045e-15 1 
+   txt003 
+STRI 
+  V0 -0.376765 -1.35376 2.49844   V1 -0.712995 -1.21396 2.49844   V2 -0.727875 -1.2393 2.4875 
+  N0 -5.93089e-16 -2.13636e-15 1   N1 -1.16933e-15 -1.87966e-15 1   N2 -0.278679 -0.480481 0.83155 
+   txt003 
+STRI 
+  V0 -0.727875 -1.2393 2.4875   V1 -0.384628 -1.38201 2.4875   V2 -0.376765 -1.35376 2.49844 
+  N0 -0.278679 -0.480481 0.83155   N1 -0.14476 -0.537012 0.831061   N2 -5.93089e-16 -2.13636e-15 1 
+   txt003 
+STRI 
+  V0 -0.712995 -1.21396 2.49844   V1 -0.996219 -0.996219 2.49844   V2 -1.01701 -1.01701 2.4875 
+  N0 -1.16933e-15 -1.87966e-15 1   N1 -1.67359e-15 -1.4538e-15 1   N2 -0.392564 -0.392564 0.831737 
+   txt003 
+STRI 
+  V0 -1.01701 -1.01701 2.4875   V1 -0.727875 -1.2393 2.4875   V2 -0.712995 -1.21396 2.49844 
+  N0 -0.392564 -0.392564 0.831737   N1 -0.278679 -0.480481 0.83155   N2 -1.16933e-15 -1.87966e-15 1 
+   txt003 
+STRI 
+  V0 -0.996219 -0.996219 2.49844   V1 -1.21396 -0.712995 2.49844   V2 -1.2393 -0.727875 2.4875 
+  N0 -1.67359e-15 -1.4538e-15 1   N1 -2.05298e-15 -8.74229e-16 1   N2 -0.480481 -0.278679 0.83155 
+   txt003 
+STRI 
+  V0 -1.2393 -0.727875 2.4875   V1 -1.01701 -1.01701 2.4875   V2 -0.996219 -0.996219 2.49844 
+  N0 -0.480481 -0.278679 0.83155   N1 -0.392564 -0.392564 0.831737   N2 -1.67359e-15 -1.4538e-15 1 
+   txt003 
+STRI 
+  V0 -1.21396 -0.712995 2.49844   V1 -1.35376 -0.376765 2.49844   V2 -1.38201 -0.384628 2.4875 
+  N0 -2.05298e-15 -8.74229e-16 1   N1 -2.25214e-15 -1.77072e-16 1   N2 -0.537012 -0.14476 0.831061 
+   txt003 
+STRI 
+  V0 -1.38201 -0.384628 2.4875   V1 -1.2393 -0.727875 2.4875   V2 -1.21396 -0.712995 2.49844 
+  N0 -0.537012 -0.14476 0.831061   N1 -0.480481 -0.278679 0.83155   N2 -2.05298e-15 -8.74229e-16 1 
+   txt003 
+STRI 
+  V0 -1.35376 -0.376765 2.49844   V1 -1.40312 0 2.49844   V2 -1.43241 0 2.4875 
+  N0 -2.25214e-15 -1.77072e-16 1   N1 -2.22045e-15 5.65179e-16 1   N2 -0.556738 4.5989e-16 0.830688 
+   txt003 
+STRI 
+  V0 -1.43241 0 2.4875   V1 -1.38201 -0.384628 2.4875   V2 -1.35376 -0.376765 2.49844 
+  N0 -0.556738 4.5989e-16 0.830688   N1 -0.537012 -0.14476 0.831061   N2 -2.25214e-15 -1.77072e-16 1 
+   txt003 
+STRI 
+  V0 0 -1.43241 2.4875   V1 -0.384628 -1.38201 2.4875   V2 -0.393796 -1.41495 2.45469 
+  N0 0 -0.556738 0.830688   N1 -0.14476 -0.537012 0.831061   N2 -0.203756 -0.755869 0.622211 
+   txt003 
+STRI 
+  V0 -0.393796 -1.41495 2.45469   V1 0 -1.46655 2.45469   V2 0 -1.43241 2.4875 
+  N0 -0.203756 -0.755869 0.622211   N1 0 -0.783289 0.621658   N2 0 -0.556738 0.830688 
+   txt003 
+STRI 
+  V0 -0.384628 -1.38201 2.4875   V1 -0.727875 -1.2393 2.4875   V2 -0.745225 -1.26884 2.45469 
+  N0 -0.14476 -0.537012 0.831061   N1 -0.278679 -0.480481 0.83155   N2 -0.39248 -0.67669 0.622937 
+   txt003 
+STRI 
+  V0 -0.745225 -1.26884 2.45469   V1 -0.393796 -1.41495 2.45469   V2 -0.384628 -1.38201 2.4875 
+  N0 -0.39248 -0.67669 0.622937   N1 -0.203756 -0.755869 0.622211   N2 -0.14476 -0.537012 0.831061 
+   txt003 
+STRI 
+  V0 -0.727875 -1.2393 2.4875   V1 -1.01701 -1.01701 2.4875   V2 -1.04125 -1.04125 2.45469 
+  N0 -0.278679 -0.480481 0.83155   N1 -0.392564 -0.392564 0.831737   N2 -0.552993 -0.552993 0.623215 
+   txt003 
+STRI 
+  V0 -1.04125 -1.04125 2.45469   V1 -0.745225 -1.26884 2.45469   V2 -0.727875 -1.2393 2.4875 
+  N0 -0.552993 -0.552993 0.623215   N1 -0.39248 -0.67669 0.622937   N2 -0.278679 -0.480481 0.83155 
+   txt003 
+STRI 
+  V0 -1.01701 -1.01701 2.4875   V1 -1.2393 -0.727875 2.4875   V2 -1.26884 -0.745225 2.45469 
+  N0 -0.392564 -0.392564 0.831737   N1 -0.480481 -0.278679 0.83155   N2 -0.67669 -0.39248 0.622937 
+   txt003 
+STRI 
+  V0 -1.26884 -0.745225 2.45469   V1 -1.04125 -1.04125 2.45469   V2 -1.01701 -1.01701 2.4875 
+  N0 -0.67669 -0.39248 0.622937   N1 -0.552993 -0.552993 0.623215   N2 -0.392564 -0.392564 0.831737 
+   txt003 
+STRI 
+  V0 -1.2393 -0.727875 2.4875   V1 -1.38201 -0.384628 2.4875   V2 -1.41495 -0.393796 2.45469 
+  N0 -0.480481 -0.278679 0.83155   N1 -0.537012 -0.14476 0.831061   N2 -0.755869 -0.203756 0.622211 
+   txt003 
+STRI 
+  V0 -1.41495 -0.393796 2.45469   V1 -1.26884 -0.745225 2.45469   V2 -1.2393 -0.727875 2.4875 
+  N0 -0.755869 -0.203756 0.622211   N1 -0.67669 -0.39248 0.622937   N2 -0.480481 -0.278679 0.83155 
+   txt003 
+STRI 
+  V0 -1.38201 -0.384628 2.4875   V1 -1.43241 0 2.4875   V2 -1.46655 0 2.45469 
+  N0 -0.537012 -0.14476 0.831061   N1 -0.556738 4.5989e-16 0.830688   N2 -0.783289 1.94969e-16 0.621658 
+   txt003 
+STRI 
+  V0 -1.46655 0 2.45469   V1 -1.41495 -0.393796 2.45469   V2 -1.38201 -0.384628 2.4875 
+  N0 -0.783289 1.94969e-16 0.621658   N1 -0.755869 -0.203756 0.622211   N2 -0.537012 -0.14476 0.831061 
+   txt003 
+STRI 
+  V0 0 -1.46655 2.45469   V1 -0.393796 -1.41495 2.45469   V2 -0.402778 -1.44722 2.4 
+  N0 0 -0.783289 0.621658   N1 -0.203756 -0.755869 0.622211   N2 -0.234929 -0.871509 0.430442 
+   txt003 
+STRI 
+  V0 -0.402778 -1.44722 2.4   V1 0 -1.5 2.4   V2 0 -1.46655 2.45469 
+  N0 -0.234929 -0.871509 0.430442   N1 0 -0.902861 0.429934   N2 0 -0.783289 0.621658 
+   txt003 
+STRI 
+  V0 -0.393796 -1.41495 2.45469   V1 -0.745225 -1.26884 2.45469   V2 -0.762222 -1.29778 2.4 
+  N0 -0.203756 -0.755869 0.622211   N1 -0.39248 -0.67669 0.622937   N2 -0.4527 -0.780517 0.43111 
+   txt003 
+STRI 
+  V0 -0.762222 -1.29778 2.4   V1 -0.402778 -1.44722 2.4   V2 -0.393796 -1.41495 2.45469 
+  N0 -0.4527 -0.780517 0.43111   N1 -0.234929 -0.871509 0.430442   N2 -0.203756 -0.755869 0.622211 
+   txt003 
+STRI 
+  V0 -0.745225 -1.26884 2.45469   V1 -1.04125 -1.04125 2.45469   V2 -1.065 -1.065 2.4 
+  N0 -0.39248 -0.67669 0.622937   N1 -0.552993 -0.552993 0.623215   N2 -0.637936 -0.637936 0.431366 
+   txt003 
+STRI 
+  V0 -1.065 -1.065 2.4   V1 -0.762222 -1.29778 2.4   V2 -0.745225 -1.26884 2.45469 
+  N0 -0.637936 -0.637936 0.431366   N1 -0.4527 -0.780517 0.43111   N2 -0.39248 -0.67669 0.622937 
+   txt003 
+STRI 
+  V0 -1.04125 -1.04125 2.45469   V1 -1.26884 -0.745225 2.45469   V2 -1.29778 -0.762222 2.4 
+  N0 -0.552993 -0.552993 0.623215   N1 -0.67669 -0.39248 0.622937   N2 -0.780517 -0.4527 0.43111 
+   txt003 
+STRI 
+  V0 -1.29778 -0.762222 2.4   V1 -1.065 -1.065 2.4   V2 -1.04125 -1.04125 2.45469 
+  N0 -0.780517 -0.4527 0.43111   N1 -0.637936 -0.637936 0.431366   N2 -0.552993 -0.552993 0.623215 
+   txt003 
+STRI 
+  V0 -1.26884 -0.745225 2.45469   V1 -1.41495 -0.393796 2.45469   V2 -1.44722 -0.402778 2.4 
+  N0 -0.67669 -0.39248 0.622937   N1 -0.755869 -0.203756 0.622211   N2 -0.871509 -0.234929 0.430442 
+   txt003 
+STRI 
+  V0 -1.44722 -0.402778 2.4   V1 -1.29778 -0.762222 2.4   V2 -1.26884 -0.745225 2.45469 
+  N0 -0.871509 -0.234929 0.430442   N1 -0.780517 -0.4527 0.43111   N2 -0.67669 -0.39248 0.622937 
+   txt003 
+STRI 
+  V0 -1.41495 -0.393796 2.45469   V1 -1.46655 0 2.45469   V2 -1.5 0 2.4 
+  N0 -0.755869 -0.203756 0.622211   N1 -0.783289 1.94969e-16 0.621658   N2 -0.902861 6.81889e-17 0.429934 
+   txt003 
+STRI 
+  V0 -1.5 0 2.4   V1 -1.44722 -0.402778 2.4   V2 -1.41495 -0.393796 2.45469 
+  N0 -0.902861 6.81889e-17 0.429934   N1 -0.871509 -0.234929 0.430442   N2 -0.755869 -0.203756 0.622211 
+   txt003 
+STRI 
+  V0 -1.4 0 2.4   V1 -1.35074 0.375926 2.4   V2 -1.33276 0.370922 2.45469 
+  N0 0.902861 0 -0.429934   N1 0.871509 -0.234929 -0.430442   N2 0.953562 -0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 -1.33276 0.370922 2.45469   V1 -1.38137 0 2.45469   V2 -1.4 0 2.4 
+  N0 0.953562 -0.257047 -0.156989   N1 0.987636 0 -0.156768   N2 0.902861 0 -0.429934 
+   txt003 
+STRI 
+  V0 -1.35074 0.375926 2.4   V1 -1.21126 0.711407 2.4   V2 -1.19514 0.701938 2.45469 
+  N0 0.871509 -0.234929 -0.430442   N1 0.780517 -0.4527 -0.43111   N2 0.854265 -0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 -1.19514 0.701938 2.45469   V1 -1.33276 0.370922 2.45469   V2 -1.35074 0.375926 2.4 
+  N0 0.854265 -0.495474 -0.157281   N1 0.953562 -0.257047 -0.156989   N2 0.871509 -0.234929 -0.430442 
+   txt003 
+STRI 
+  V0 -1.21126 0.711407 2.4   V1 -0.994 0.994 2.4   V2 -0.98077 0.98077 2.45469 
+  N0 0.780517 -0.4527 -0.43111   N1 0.637936 -0.637936 -0.431366   N2 0.698293 -0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 -0.98077 0.98077 2.45469   V1 -1.19514 0.701938 2.45469   V2 -1.21126 0.711407 2.4 
+  N0 0.698293 -0.698293 -0.157393   N1 0.854265 -0.495474 -0.157281   N2 0.780517 -0.4527 -0.43111 
+   txt003 
+STRI 
+  V0 -0.994 0.994 2.4   V1 -0.711407 1.21126 2.4   V2 -0.701938 1.19514 2.45469 
+  N0 0.637936 -0.637936 -0.431366   N1 0.4527 -0.780517 -0.43111   N2 0.495474 -0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 -0.701938 1.19514 2.45469   V1 -0.98077 0.98077 2.45469   V2 -0.994 0.994 2.4 
+  N0 0.495474 -0.854265 -0.157281   N1 0.698293 -0.698293 -0.157393   N2 0.637936 -0.637936 -0.431366 
+   txt003 
+STRI 
+  V0 -0.711407 1.21126 2.4   V1 -0.375926 1.35074 2.4   V2 -0.370922 1.33276 2.45469 
+  N0 0.4527 -0.780517 -0.43111   N1 0.234929 -0.871509 -0.430442   N2 0.257047 -0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 -0.370922 1.33276 2.45469   V1 -0.701938 1.19514 2.45469   V2 -0.711407 1.21126 2.4 
+  N0 0.257047 -0.953562 -0.156989   N1 0.495474 -0.854265 -0.157281   N2 0.4527 -0.780517 -0.43111 
+   txt003 
+STRI 
+  V0 -0.375926 1.35074 2.4   V1 0 1.4 2.4   V2 0 1.38137 2.45469 
+  N0 0.234929 -0.871509 -0.430442   N1 -7.30595e-17 -0.902861 -0.429934   N2 9.89971e-17 -0.987636 -0.156768 
+   txt003 
+STRI 
+  V0 0 1.38137 2.45469   V1 -0.370922 1.33276 2.45469   V2 -0.375926 1.35074 2.4 
+  N0 9.89971e-17 -0.987636 -0.156768   N1 0.257047 -0.953562 -0.156989   N2 0.234929 -0.871509 -0.430442 
+   txt003 
+STRI 
+  V0 -1.38137 0 2.45469   V1 -1.33276 0.370922 2.45469   V2 -1.33555 0.371699 2.4875 
+  N0 0.987636 0 -0.156768   N1 0.953562 -0.257047 -0.156989   N2 0.849414 -0.228972 0.475466 
+   txt003 
+STRI 
+  V0 -1.33555 0.371699 2.4875   V1 -1.38426 0 2.4875   V2 -1.38137 0 2.45469 
+  N0 0.849414 -0.228972 0.475466   N1 0.880022 -0 0.474933   N2 0.987636 0 -0.156768 
+   txt003 
+STRI 
+  V0 -1.33276 0.370922 2.45469   V1 -1.19514 0.701938 2.45469   V2 -1.19764 0.703409 2.4875 
+  N0 0.953562 -0.257047 -0.156989   N1 0.854265 -0.495474 -0.157281   N2 0.760669 -0.441188 0.476167 
+   txt003 
+STRI 
+  V0 -1.19764 0.703409 2.4875   V1 -1.33555 0.371699 2.4875   V2 -1.33276 0.370922 2.45469 
+  N0 0.760669 -0.441188 0.476167   N1 0.849414 -0.228972 0.475466   N2 0.953562 -0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 -1.19514 0.701938 2.45469   V1 -0.98077 0.98077 2.45469   V2 -0.982824 0.982824 2.4875 
+  N0 0.854265 -0.495474 -0.157281   N1 0.698293 -0.698293 -0.157393   N2 0.621695 -0.621695 0.476435 
+   txt003 
+STRI 
+  V0 -0.982824 0.982824 2.4875   V1 -1.19764 0.703409 2.4875   V2 -1.19514 0.701938 2.45469 
+  N0 0.621695 -0.621695 0.476435   N1 0.760669 -0.441188 0.476167   N2 0.854265 -0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 -0.98077 0.98077 2.45469   V1 -0.701938 1.19514 2.45469   V2 -0.703409 1.19764 2.4875 
+  N0 0.698293 -0.698293 -0.157393   N1 0.495474 -0.854265 -0.157281   N2 0.441188 -0.760669 0.476167 
+   txt003 
+STRI 
+  V0 -0.703409 1.19764 2.4875   V1 -0.982824 0.982824 2.4875   V2 -0.98077 0.98077 2.45469 
+  N0 0.441188 -0.760669 0.476167   N1 0.621695 -0.621695 0.476435   N2 0.698293 -0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 -0.701938 1.19514 2.45469   V1 -0.370922 1.33276 2.45469   V2 -0.371699 1.33555 2.4875 
+  N0 0.495474 -0.854265 -0.157281   N1 0.257047 -0.953562 -0.156989   N2 0.228972 -0.849414 0.475466 
+   txt003 
+STRI 
+  V0 -0.371699 1.33555 2.4875   V1 -0.703409 1.19764 2.4875   V2 -0.701938 1.19514 2.45469 
+  N0 0.228972 -0.849414 0.475466   N1 0.441188 -0.760669 0.476167   N2 0.495474 -0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 -0.370922 1.33276 2.45469   V1 0 1.38137 2.45469   V2 0 1.38426 2.4875 
+  N0 0.257047 -0.953562 -0.156989   N1 9.89971e-17 -0.987636 -0.156768   N2 6.08179e-16 -0.880022 0.474933 
+   txt003 
+STRI 
+  V0 0 1.38426 2.4875   V1 -0.371699 1.33555 2.4875   V2 -0.370922 1.33276 2.45469 
+  N0 6.08179e-16 -0.880022 0.474933   N1 0.228972 -0.849414 0.475466   N2 0.257047 -0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 -1.38426 0 2.4875   V1 -1.33555 0.371699 2.4875   V2 -1.35376 0.376765 2.49844 
+  N0 0.880022 -0 0.474933   N1 0.849414 -0.228972 0.475466   N2 -2.13636e-15 5.93089e-16 1 
+   txt003 
+STRI 
+  V0 -1.35376 0.376765 2.49844   V1 -1.40312 0 2.49844   V2 -1.38426 0 2.4875 
+  N0 -2.13636e-15 5.93089e-16 1   N1 -2.22045e-15 0 1   N2 0.880022 -0 0.474933 
+   txt003 
+STRI 
+  V0 -1.33555 0.371699 2.4875   V1 -1.19764 0.703409 2.4875   V2 -1.21396 0.712995 2.49844 
+  N0 0.849414 -0.228972 0.475466   N1 0.760669 -0.441188 0.476167   N2 -1.87966e-15 1.16933e-15 1 
+   txt003 
+STRI 
+  V0 -1.21396 0.712995 2.49844   V1 -1.35376 0.376765 2.49844   V2 -1.33555 0.371699 2.4875 
+  N0 -1.87966e-15 1.16933e-15 1   N1 -2.13636e-15 5.93089e-16 1   N2 0.849414 -0.228972 0.475466 
+   txt003 
+STRI 
+  V0 -1.19764 0.703409 2.4875   V1 -0.982824 0.982824 2.4875   V2 -0.996219 0.996219 2.49844 
+  N0 0.760669 -0.441188 0.476167   N1 0.621695 -0.621695 0.476435   N2 -1.4538e-15 1.67359e-15 1 
+   txt003 
+STRI 
+  V0 -0.996219 0.996219 2.49844   V1 -1.21396 0.712995 2.49844   V2 -1.19764 0.703409 2.4875 
+  N0 -1.4538e-15 1.67359e-15 1   N1 -1.87966e-15 1.16933e-15 1   N2 0.760669 -0.441188 0.476167 
+   txt003 
+STRI 
+  V0 -0.982824 0.982824 2.4875   V1 -0.703409 1.19764 2.4875   V2 -0.712995 1.21396 2.49844 
+  N0 0.621695 -0.621695 0.476435   N1 0.441188 -0.760669 0.476167   N2 -8.74229e-16 2.05298e-15 1 
+   txt003 
+STRI 
+  V0 -0.712995 1.21396 2.49844   V1 -0.996219 0.996219 2.49844   V2 -0.982824 0.982824 2.4875 
+  N0 -8.74229e-16 2.05298e-15 1   N1 -1.4538e-15 1.67359e-15 1   N2 0.621695 -0.621695 0.476435 
+   txt003 
+STRI 
+  V0 -0.703409 1.19764 2.4875   V1 -0.371699 1.33555 2.4875   V2 -0.376765 1.35376 2.49844 
+  N0 0.441188 -0.760669 0.476167   N1 0.228972 -0.849414 0.475466   N2 -1.77072e-16 2.25214e-15 1 
+   txt003 
+STRI 
+  V0 -0.376765 1.35376 2.49844   V1 -0.712995 1.21396 2.49844   V2 -0.703409 1.19764 2.4875 
+  N0 -1.77072e-16 2.25214e-15 1   N1 -8.74229e-16 2.05298e-15 1   N2 0.441188 -0.760669 0.476167 
+   txt003 
+STRI 
+  V0 -0.371699 1.33555 2.4875   V1 0 1.38426 2.4875   V2 0 1.40312 2.49844 
+  N0 0.228972 -0.849414 0.475466   N1 6.08179e-16 -0.880022 0.474933   N2 5.65179e-16 2.22045e-15 1 
+   txt003 
+STRI 
+  V0 0 1.40312 2.49844   V1 -0.376765 1.35376 2.49844   V2 -0.371699 1.33555 2.4875 
+  N0 5.65179e-16 2.22045e-15 1   N1 -1.77072e-16 2.25214e-15 1   N2 0.228972 -0.849414 0.475466 
+   txt003 
+STRI 
+  V0 -1.40312 0 2.49844   V1 -1.35376 0.376765 2.49844   V2 -1.38201 0.384628 2.4875 
+  N0 -2.22045e-15 0 1   N1 -2.13636e-15 5.93089e-16 1   N2 -0.537012 0.14476 0.831061 
+   txt003 
+STRI 
+  V0 -1.38201 0.384628 2.4875   V1 -1.43241 0 2.4875   V2 -1.40312 0 2.49844 
+  N0 -0.537012 0.14476 0.831061   N1 -0.556738 0 0.830688   N2 -2.22045e-15 0 1 
+   txt003 
+STRI 
+  V0 -1.35376 0.376765 2.49844   V1 -1.21396 0.712995 2.49844   V2 -1.2393 0.727875 2.4875 
+  N0 -2.13636e-15 5.93089e-16 1   N1 -1.87966e-15 1.16933e-15 1   N2 -0.480481 0.278679 0.83155 
+   txt003 
+STRI 
+  V0 -1.2393 0.727875 2.4875   V1 -1.38201 0.384628 2.4875   V2 -1.35376 0.376765 2.49844 
+  N0 -0.480481 0.278679 0.83155   N1 -0.537012 0.14476 0.831061   N2 -2.13636e-15 5.93089e-16 1 
+   txt003 
+STRI 
+  V0 -1.21396 0.712995 2.49844   V1 -0.996219 0.996219 2.49844   V2 -1.01701 1.01701 2.4875 
+  N0 -1.87966e-15 1.16933e-15 1   N1 -1.4538e-15 1.67359e-15 1   N2 -0.392564 0.392564 0.831737 
+   txt003 
+STRI 
+  V0 -1.01701 1.01701 2.4875   V1 -1.2393 0.727875 2.4875   V2 -1.21396 0.712995 2.49844 
+  N0 -0.392564 0.392564 0.831737   N1 -0.480481 0.278679 0.83155   N2 -1.87966e-15 1.16933e-15 1 
+   txt003 
+STRI 
+  V0 -0.996219 0.996219 2.49844   V1 -0.712995 1.21396 2.49844   V2 -0.727875 1.2393 2.4875 
+  N0 -1.4538e-15 1.67359e-15 1   N1 -8.74229e-16 2.05298e-15 1   N2 -0.278679 0.480481 0.83155 
+   txt003 
+STRI 
+  V0 -0.727875 1.2393 2.4875   V1 -1.01701 1.01701 2.4875   V2 -0.996219 0.996219 2.49844 
+  N0 -0.278679 0.480481 0.83155   N1 -0.392564 0.392564 0.831737   N2 -1.4538e-15 1.67359e-15 1 
+   txt003 
+STRI 
+  V0 -0.712995 1.21396 2.49844   V1 -0.376765 1.35376 2.49844   V2 -0.384628 1.38201 2.4875 
+  N0 -8.74229e-16 2.05298e-15 1   N1 -1.77072e-16 2.25214e-15 1   N2 -0.14476 0.537012 0.831061 
+   txt003 
+STRI 
+  V0 -0.384628 1.38201 2.4875   V1 -0.727875 1.2393 2.4875   V2 -0.712995 1.21396 2.49844 
+  N0 -0.14476 0.537012 0.831061   N1 -0.278679 0.480481 0.83155   N2 -8.74229e-16 2.05298e-15 1 
+   txt003 
+STRI 
+  V0 -0.376765 1.35376 2.49844   V1 0 1.40312 2.49844   V2 0 1.43241 2.4875 
+  N0 -1.77072e-16 2.25214e-15 1   N1 5.65179e-16 2.22045e-15 1   N2 4.5989e-16 0.556738 0.830688 
+   txt003 
+STRI 
+  V0 0 1.43241 2.4875   V1 -0.384628 1.38201 2.4875   V2 -0.376765 1.35376 2.49844 
+  N0 4.5989e-16 0.556738 0.830688   N1 -0.14476 0.537012 0.831061   N2 -1.77072e-16 2.25214e-15 1 
+   txt003 
+STRI 
+  V0 -1.43241 0 2.4875   V1 -1.38201 0.384628 2.4875   V2 -1.41495 0.393796 2.45469 
+  N0 -0.556738 0 0.830688   N1 -0.537012 0.14476 0.831061   N2 -0.755869 0.203756 0.622211 
+   txt003 
+STRI 
+  V0 -1.41495 0.393796 2.45469   V1 -1.46655 0 2.45469   V2 -1.43241 0 2.4875 
+  N0 -0.755869 0.203756 0.622211   N1 -0.783289 0 0.621658   N2 -0.556738 0 0.830688 
+   txt003 
+STRI 
+  V0 -1.38201 0.384628 2.4875   V1 -1.2393 0.727875 2.4875   V2 -1.26884 0.745225 2.45469 
+  N0 -0.537012 0.14476 0.831061   N1 -0.480481 0.278679 0.83155   N2 -0.67669 0.39248 0.622937 
+   txt003 
+STRI 
+  V0 -1.26884 0.745225 2.45469   V1 -1.41495 0.393796 2.45469   V2 -1.38201 0.384628 2.4875 
+  N0 -0.67669 0.39248 0.622937   N1 -0.755869 0.203756 0.622211   N2 -0.537012 0.14476 0.831061 
+   txt003 
+STRI 
+  V0 -1.2393 0.727875 2.4875   V1 -1.01701 1.01701 2.4875   V2 -1.04125 1.04125 2.45469 
+  N0 -0.480481 0.278679 0.83155   N1 -0.392564 0.392564 0.831737   N2 -0.552993 0.552993 0.623215 
+   txt003 
+STRI 
+  V0 -1.04125 1.04125 2.45469   V1 -1.26884 0.745225 2.45469   V2 -1.2393 0.727875 2.4875 
+  N0 -0.552993 0.552993 0.623215   N1 -0.67669 0.39248 0.622937   N2 -0.480481 0.278679 0.83155 
+   txt003 
+STRI 
+  V0 -1.01701 1.01701 2.4875   V1 -0.727875 1.2393 2.4875   V2 -0.745225 1.26884 2.45469 
+  N0 -0.392564 0.392564 0.831737   N1 -0.278679 0.480481 0.83155   N2 -0.39248 0.67669 0.622937 
+   txt003 
+STRI 
+  V0 -0.745225 1.26884 2.45469   V1 -1.04125 1.04125 2.45469   V2 -1.01701 1.01701 2.4875 
+  N0 -0.39248 0.67669 0.622937   N1 -0.552993 0.552993 0.623215   N2 -0.392564 0.392564 0.831737 
+   txt003 
+STRI 
+  V0 -0.727875 1.2393 2.4875   V1 -0.384628 1.38201 2.4875   V2 -0.393796 1.41495 2.45469 
+  N0 -0.278679 0.480481 0.83155   N1 -0.14476 0.537012 0.831061   N2 -0.203756 0.755869 0.622211 
+   txt003 
+STRI 
+  V0 -0.393796 1.41495 2.45469   V1 -0.745225 1.26884 2.45469   V2 -0.727875 1.2393 2.4875 
+  N0 -0.203756 0.755869 0.622211   N1 -0.39248 0.67669 0.622937   N2 -0.278679 0.480481 0.83155 
+   txt003 
+STRI 
+  V0 -0.384628 1.38201 2.4875   V1 0 1.43241 2.4875   V2 0 1.46655 2.45469 
+  N0 -0.14476 0.537012 0.831061   N1 4.5989e-16 0.556738 0.830688   N2 1.94969e-16 0.783289 0.621658 
+   txt003 
+STRI 
+  V0 0 1.46655 2.45469   V1 -0.393796 1.41495 2.45469   V2 -0.384628 1.38201 2.4875 
+  N0 1.94969e-16 0.783289 0.621658   N1 -0.203756 0.755869 0.622211   N2 -0.14476 0.537012 0.831061 
+   txt003 
+STRI 
+  V0 -1.46655 0 2.45469   V1 -1.41495 0.393796 2.45469   V2 -1.44722 0.402778 2.4 
+  N0 -0.783289 0 0.621658   N1 -0.755869 0.203756 0.622211   N2 -0.871509 0.234929 0.430442 
+   txt003 
+STRI 
+  V0 -1.44722 0.402778 2.4   V1 -1.5 0 2.4   V2 -1.46655 0 2.45469 
+  N0 -0.871509 0.234929 0.430442   N1 -0.902861 0 0.429934   N2 -0.783289 0 0.621658 
+   txt003 
+STRI 
+  V0 -1.41495 0.393796 2.45469   V1 -1.26884 0.745225 2.45469   V2 -1.29778 0.762222 2.4 
+  N0 -0.755869 0.203756 0.622211   N1 -0.67669 0.39248 0.622937   N2 -0.780517 0.4527 0.43111 
+   txt003 
+STRI 
+  V0 -1.29778 0.762222 2.4   V1 -1.44722 0.402778 2.4   V2 -1.41495 0.393796 2.45469 
+  N0 -0.780517 0.4527 0.43111   N1 -0.871509 0.234929 0.430442   N2 -0.755869 0.203756 0.622211 
+   txt003 
+STRI 
+  V0 -1.26884 0.745225 2.45469   V1 -1.04125 1.04125 2.45469   V2 -1.065 1.065 2.4 
+  N0 -0.67669 0.39248 0.622937   N1 -0.552993 0.552993 0.623215   N2 -0.637936 0.637936 0.431366 
+   txt003 
+STRI 
+  V0 -1.065 1.065 2.4   V1 -1.29778 0.762222 2.4   V2 -1.26884 0.745225 2.45469 
+  N0 -0.637936 0.637936 0.431366   N1 -0.780517 0.4527 0.43111   N2 -0.67669 0.39248 0.622937 
+   txt003 
+STRI 
+  V0 -1.04125 1.04125 2.45469   V1 -0.745225 1.26884 2.45469   V2 -0.762222 1.29778 2.4 
+  N0 -0.552993 0.552993 0.623215   N1 -0.39248 0.67669 0.622937   N2 -0.4527 0.780517 0.43111 
+   txt003 
+STRI 
+  V0 -0.762222 1.29778 2.4   V1 -1.065 1.065 2.4   V2 -1.04125 1.04125 2.45469 
+  N0 -0.4527 0.780517 0.43111   N1 -0.637936 0.637936 0.431366   N2 -0.552993 0.552993 0.623215 
+   txt003 
+STRI 
+  V0 -0.745225 1.26884 2.45469   V1 -0.393796 1.41495 2.45469   V2 -0.402778 1.44722 2.4 
+  N0 -0.39248 0.67669 0.622937   N1 -0.203756 0.755869 0.622211   N2 -0.234929 0.871509 0.430442 
+   txt003 
+STRI 
+  V0 -0.402778 1.44722 2.4   V1 -0.762222 1.29778 2.4   V2 -0.745225 1.26884 2.45469 
+  N0 -0.234929 0.871509 0.430442   N1 -0.4527 0.780517 0.43111   N2 -0.39248 0.67669 0.622937 
+   txt003 
+STRI 
+  V0 -0.393796 1.41495 2.45469   V1 0 1.46655 2.45469   V2 0 1.5 2.4 
+  N0 -0.203756 0.755869 0.622211   N1 1.94969e-16 0.783289 0.621658   N2 6.81889e-17 0.902861 0.429934 
+   txt003 
+STRI 
+  V0 0 1.5 2.4   V1 -0.402778 1.44722 2.4   V2 -0.393796 1.41495 2.45469 
+  N0 6.81889e-17 0.902861 0.429934   N1 -0.234929 0.871509 0.430442   N2 -0.203756 0.755869 0.622211 
+   txt003 
+STRI 
+  V0 0 1.4 2.4   V1 0.375926 1.35074 2.4   V2 0.370922 1.33276 2.45469 
+  N0 0 -0.902861 -0.429934   N1 -0.234929 -0.871509 -0.430442   N2 -0.257047 -0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 0.370922 1.33276 2.45469   V1 0 1.38137 2.45469   V2 0 1.4 2.4 
+  N0 -0.257047 -0.953562 -0.156989   N1 0 -0.987636 -0.156768   N2 0 -0.902861 -0.429934 
+   txt003 
+STRI 
+  V0 0.375926 1.35074 2.4   V1 0.711407 1.21126 2.4   V2 0.701938 1.19514 2.45469 
+  N0 -0.234929 -0.871509 -0.430442   N1 -0.4527 -0.780517 -0.43111   N2 -0.495474 -0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 0.701938 1.19514 2.45469   V1 0.370922 1.33276 2.45469   V2 0.375926 1.35074 2.4 
+  N0 -0.495474 -0.854265 -0.157281   N1 -0.257047 -0.953562 -0.156989   N2 -0.234929 -0.871509 -0.430442 
+   txt003 
+STRI 
+  V0 0.711407 1.21126 2.4   V1 0.994 0.994 2.4   V2 0.98077 0.98077 2.45469 
+  N0 -0.4527 -0.780517 -0.43111   N1 -0.637936 -0.637936 -0.431366   N2 -0.698293 -0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 0.98077 0.98077 2.45469   V1 0.701938 1.19514 2.45469   V2 0.711407 1.21126 2.4 
+  N0 -0.698293 -0.698293 -0.157393   N1 -0.495474 -0.854265 -0.157281   N2 -0.4527 -0.780517 -0.43111 
+   txt003 
+STRI 
+  V0 0.994 0.994 2.4   V1 1.21126 0.711407 2.4   V2 1.19514 0.701938 2.45469 
+  N0 -0.637936 -0.637936 -0.431366   N1 -0.780517 -0.4527 -0.43111   N2 -0.854265 -0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 1.19514 0.701938 2.45469   V1 0.98077 0.98077 2.45469   V2 0.994 0.994 2.4 
+  N0 -0.854265 -0.495474 -0.157281   N1 -0.698293 -0.698293 -0.157393   N2 -0.637936 -0.637936 -0.431366 
+   txt003 
+STRI 
+  V0 1.21126 0.711407 2.4   V1 1.35074 0.375926 2.4   V2 1.33276 0.370922 2.45469 
+  N0 -0.780517 -0.4527 -0.43111   N1 -0.871509 -0.234929 -0.430442   N2 -0.953562 -0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 1.33276 0.370922 2.45469   V1 1.19514 0.701938 2.45469   V2 1.21126 0.711407 2.4 
+  N0 -0.953562 -0.257047 -0.156989   N1 -0.854265 -0.495474 -0.157281   N2 -0.780517 -0.4527 -0.43111 
+   txt003 
+STRI 
+  V0 1.35074 0.375926 2.4   V1 1.4 0 2.4   V2 1.38137 0 2.45469 
+  N0 -0.871509 -0.234929 -0.430442   N1 -0.902861 7.30595e-17 -0.429934   N2 -0.987636 -9.89971e-17 -0.156768 
+   txt003 
+STRI 
+  V0 1.38137 0 2.45469   V1 1.33276 0.370922 2.45469   V2 1.35074 0.375926 2.4 
+  N0 -0.987636 -9.89971e-17 -0.156768   N1 -0.953562 -0.257047 -0.156989   N2 -0.871509 -0.234929 -0.430442 
+   txt003 
+STRI 
+  V0 0 1.38137 2.45469   V1 0.370922 1.33276 2.45469   V2 0.371699 1.33555 2.4875 
+  N0 0 -0.987636 -0.156768   N1 -0.257047 -0.953562 -0.156989   N2 -0.228972 -0.849414 0.475466 
+   txt003 
+STRI 
+  V0 0.371699 1.33555 2.4875   V1 0 1.38426 2.4875   V2 0 1.38137 2.45469 
+  N0 -0.228972 -0.849414 0.475466   N1 0 -0.880022 0.474933   N2 0 -0.987636 -0.156768 
+   txt003 
+STRI 
+  V0 0.370922 1.33276 2.45469   V1 0.701938 1.19514 2.45469   V2 0.703409 1.19764 2.4875 
+  N0 -0.257047 -0.953562 -0.156989   N1 -0.495474 -0.854265 -0.157281   N2 -0.441188 -0.760669 0.476167 
+   txt003 
+STRI 
+  V0 0.703409 1.19764 2.4875   V1 0.371699 1.33555 2.4875   V2 0.370922 1.33276 2.45469 
+  N0 -0.441188 -0.760669 0.476167   N1 -0.228972 -0.849414 0.475466   N2 -0.257047 -0.953562 -0.156989 
+   txt003 
+STRI 
+  V0 0.701938 1.19514 2.45469   V1 0.98077 0.98077 2.45469   V2 0.982824 0.982824 2.4875 
+  N0 -0.495474 -0.854265 -0.157281   N1 -0.698293 -0.698293 -0.157393   N2 -0.621695 -0.621695 0.476435 
+   txt003 
+STRI 
+  V0 0.982824 0.982824 2.4875   V1 0.703409 1.19764 2.4875   V2 0.701938 1.19514 2.45469 
+  N0 -0.621695 -0.621695 0.476435   N1 -0.441188 -0.760669 0.476167   N2 -0.495474 -0.854265 -0.157281 
+   txt003 
+STRI 
+  V0 0.98077 0.98077 2.45469   V1 1.19514 0.701938 2.45469   V2 1.19764 0.703409 2.4875 
+  N0 -0.698293 -0.698293 -0.157393   N1 -0.854265 -0.495474 -0.157281   N2 -0.760669 -0.441188 0.476167 
+   txt003 
+STRI 
+  V0 1.19764 0.703409 2.4875   V1 0.982824 0.982824 2.4875   V2 0.98077 0.98077 2.45469 
+  N0 -0.760669 -0.441188 0.476167   N1 -0.621695 -0.621695 0.476435   N2 -0.698293 -0.698293 -0.157393 
+   txt003 
+STRI 
+  V0 1.19514 0.701938 2.45469   V1 1.33276 0.370922 2.45469   V2 1.33555 0.371699 2.4875 
+  N0 -0.854265 -0.495474 -0.157281   N1 -0.953562 -0.257047 -0.156989   N2 -0.849414 -0.228972 0.475466 
+   txt003 
+STRI 
+  V0 1.33555 0.371699 2.4875   V1 1.19764 0.703409 2.4875   V2 1.19514 0.701938 2.45469 
+  N0 -0.849414 -0.228972 0.475466   N1 -0.760669 -0.441188 0.476167   N2 -0.854265 -0.495474 -0.157281 
+   txt003 
+STRI 
+  V0 1.33276 0.370922 2.45469   V1 1.38137 0 2.45469   V2 1.38426 0 2.4875 
+  N0 -0.953562 -0.257047 -0.156989   N1 -0.987636 -9.89971e-17 -0.156768   N2 -0.880022 -6.08179e-16 0.474933 
+   txt003 
+STRI 
+  V0 1.38426 0 2.4875   V1 1.33555 0.371699 2.4875   V2 1.33276 0.370922 2.45469 
+  N0 -0.880022 -6.08179e-16 0.474933   N1 -0.849414 -0.228972 0.475466   N2 -0.953562 -0.257047 -0.156989 
+   txt003 
+STRI 
+  V0 0 1.38426 2.4875   V1 0.371699 1.33555 2.4875   V2 0.376765 1.35376 2.49844 
+  N0 0 -0.880022 0.474933   N1 -0.228972 -0.849414 0.475466   N2 5.93089e-16 2.13636e-15 1 
+   txt003 
+STRI 
+  V0 0.376765 1.35376 2.49844   V1 0 1.40312 2.49844   V2 0 1.38426 2.4875 
+  N0 5.93089e-16 2.13636e-15 1   N1 -0 2.22045e-15 1   N2 0 -0.880022 0.474933 
+   txt003 
+STRI 
+  V0 0.371699 1.33555 2.4875   V1 0.703409 1.19764 2.4875   V2 0.712995 1.21396 2.49844 
+  N0 -0.228972 -0.849414 0.475466   N1 -0.441188 -0.760669 0.476167   N2 1.16933e-15 1.87966e-15 1 
+   txt003 
+STRI 
+  V0 0.712995 1.21396 2.49844   V1 0.376765 1.35376 2.49844   V2 0.371699 1.33555 2.4875 
+  N0 1.16933e-15 1.87966e-15 1   N1 5.93089e-16 2.13636e-15 1   N2 -0.228972 -0.849414 0.475466 
+   txt003 
+STRI 
+  V0 0.703409 1.19764 2.4875   V1 0.982824 0.982824 2.4875   V2 0.996219 0.996219 2.49844 
+  N0 -0.441188 -0.760669 0.476167   N1 -0.621695 -0.621695 0.476435   N2 1.67359e-15 1.4538e-15 1 
+   txt003 
+STRI 
+  V0 0.996219 0.996219 2.49844   V1 0.712995 1.21396 2.49844   V2 0.703409 1.19764 2.4875 
+  N0 1.67359e-15 1.4538e-15 1   N1 1.16933e-15 1.87966e-15 1   N2 -0.441188 -0.760669 0.476167 
+   txt003 
+STRI 
+  V0 0.982824 0.982824 2.4875   V1 1.19764 0.703409 2.4875   V2 1.21396 0.712995 2.49844 
+  N0 -0.621695 -0.621695 0.476435   N1 -0.760669 -0.441188 0.476167   N2 2.05298e-15 8.74229e-16 1 
+   txt003 
+STRI 
+  V0 1.21396 0.712995 2.49844   V1 0.996219 0.996219 2.49844   V2 0.982824 0.982824 2.4875 
+  N0 2.05298e-15 8.74229e-16 1   N1 1.67359e-15 1.4538e-15 1   N2 -0.621695 -0.621695 0.476435 
+   txt003 
+STRI 
+  V0 1.19764 0.703409 2.4875   V1 1.33555 0.371699 2.4875   V2 1.35376 0.376765 2.49844 
+  N0 -0.760669 -0.441188 0.476167   N1 -0.849414 -0.228972 0.475466   N2 2.25214e-15 1.77072e-16 1 
+   txt003 
+STRI 
+  V0 1.35376 0.376765 2.49844   V1 1.21396 0.712995 2.49844   V2 1.19764 0.703409 2.4875 
+  N0 2.25214e-15 1.77072e-16 1   N1 2.05298e-15 8.74229e-16 1   N2 -0.760669 -0.441188 0.476167 
+   txt003 
+STRI 
+  V0 1.33555 0.371699 2.4875   V1 1.38426 0 2.4875   V2 1.40312 0 2.49844 
+  N0 -0.849414 -0.228972 0.475466   N1 -0.880022 -6.08179e-16 0.474933   N2 2.22045e-15 -5.65179e-16 1 
+   txt003 
+STRI 
+  V0 1.40312 0 2.49844   V1 1.35376 0.376765 2.49844   V2 1.33555 0.371699 2.4875 
+  N0 2.22045e-15 -5.65179e-16 1   N1 2.25214e-15 1.77072e-16 1   N2 -0.849414 -0.228972 0.475466 
+   txt003 
+STRI 
+  V0 0 1.40312 2.49844   V1 0.376765 1.35376 2.49844   V2 0.384628 1.38201 2.4875 
+  N0 -0 2.22045e-15 1   N1 5.93089e-16 2.13636e-15 1   N2 0.14476 0.537012 0.831061 
+   txt003 
+STRI 
+  V0 0.384628 1.38201 2.4875   V1 0 1.43241 2.4875   V2 0 1.40312 2.49844 
+  N0 0.14476 0.537012 0.831061   N1 -0 0.556738 0.830688   N2 -0 2.22045e-15 1 
+   txt003 
+STRI 
+  V0 0.376765 1.35376 2.49844   V1 0.712995 1.21396 2.49844   V2 0.727875 1.2393 2.4875 
+  N0 5.93089e-16 2.13636e-15 1   N1 1.16933e-15 1.87966e-15 1   N2 0.278679 0.480481 0.83155 
+   txt003 
+STRI 
+  V0 0.727875 1.2393 2.4875   V1 0.384628 1.38201 2.4875   V2 0.376765 1.35376 2.49844 
+  N0 0.278679 0.480481 0.83155   N1 0.14476 0.537012 0.831061   N2 5.93089e-16 2.13636e-15 1 
+   txt003 
+STRI 
+  V0 0.712995 1.21396 2.49844   V1 0.996219 0.996219 2.49844   V2 1.01701 1.01701 2.4875 
+  N0 1.16933e-15 1.87966e-15 1   N1 1.67359e-15 1.4538e-15 1   N2 0.392564 0.392564 0.831737 
+   txt003 
+STRI 
+  V0 1.01701 1.01701 2.4875   V1 0.727875 1.2393 2.4875   V2 0.712995 1.21396 2.49844 
+  N0 0.392564 0.392564 0.831737   N1 0.278679 0.480481 0.83155   N2 1.16933e-15 1.87966e-15 1 
+   txt003 
+STRI 
+  V0 0.996219 0.996219 2.49844   V1 1.21396 0.712995 2.49844   V2 1.2393 0.727875 2.4875 
+  N0 1.67359e-15 1.4538e-15 1   N1 2.05298e-15 8.74229e-16 1   N2 0.480481 0.278679 0.83155 
+   txt003 
+STRI 
+  V0 1.2393 0.727875 2.4875   V1 1.01701 1.01701 2.4875   V2 0.996219 0.996219 2.49844 
+  N0 0.480481 0.278679 0.83155   N1 0.392564 0.392564 0.831737   N2 1.67359e-15 1.4538e-15 1 
+   txt003 
+STRI 
+  V0 1.21396 0.712995 2.49844   V1 1.35376 0.376765 2.49844   V2 1.38201 0.384628 2.4875 
+  N0 2.05298e-15 8.74229e-16 1   N1 2.25214e-15 1.77072e-16 1   N2 0.537012 0.14476 0.831061 
+   txt003 
+STRI 
+  V0 1.38201 0.384628 2.4875   V1 1.2393 0.727875 2.4875   V2 1.21396 0.712995 2.49844 
+  N0 0.537012 0.14476 0.831061   N1 0.480481 0.278679 0.83155   N2 2.05298e-15 8.74229e-16 1 
+   txt003 
+STRI 
+  V0 1.35376 0.376765 2.49844   V1 1.40312 0 2.49844   V2 1.43241 0 2.4875 
+  N0 2.25214e-15 1.77072e-16 1   N1 2.22045e-15 -5.65179e-16 1   N2 0.556738 -4.5989e-16 0.830688 
+   txt003 
+STRI 
+  V0 1.43241 0 2.4875   V1 1.38201 0.384628 2.4875   V2 1.35376 0.376765 2.49844 
+  N0 0.556738 -4.5989e-16 0.830688   N1 0.537012 0.14476 0.831061   N2 2.25214e-15 1.77072e-16 1 
+   txt003 
+STRI 
+  V0 0 1.43241 2.4875   V1 0.384628 1.38201 2.4875   V2 0.393796 1.41495 2.45469 
+  N0 -0 0.556738 0.830688   N1 0.14476 0.537012 0.831061   N2 0.203756 0.755869 0.622211 
+   txt003 
+STRI 
+  V0 0.393796 1.41495 2.45469   V1 0 1.46655 2.45469   V2 0 1.43241 2.4875 
+  N0 0.203756 0.755869 0.622211   N1 -0 0.783289 0.621658   N2 -0 0.556738 0.830688 
+   txt003 
+STRI 
+  V0 0.384628 1.38201 2.4875   V1 0.727875 1.2393 2.4875   V2 0.745225 1.26884 2.45469 
+  N0 0.14476 0.537012 0.831061   N1 0.278679 0.480481 0.83155   N2 0.39248 0.67669 0.622937 
+   txt003 
+STRI 
+  V0 0.745225 1.26884 2.45469   V1 0.393796 1.41495 2.45469   V2 0.384628 1.38201 2.4875 
+  N0 0.39248 0.67669 0.622937   N1 0.203756 0.755869 0.622211   N2 0.14476 0.537012 0.831061 
+   txt003 
+STRI 
+  V0 0.727875 1.2393 2.4875   V1 1.01701 1.01701 2.4875   V2 1.04125 1.04125 2.45469 
+  N0 0.278679 0.480481 0.83155   N1 0.392564 0.392564 0.831737   N2 0.552993 0.552993 0.623215 
+   txt003 
+STRI 
+  V0 1.04125 1.04125 2.45469   V1 0.745225 1.26884 2.45469   V2 0.727875 1.2393 2.4875 
+  N0 0.552993 0.552993 0.623215   N1 0.39248 0.67669 0.622937   N2 0.278679 0.480481 0.83155 
+   txt003 
+STRI 
+  V0 1.01701 1.01701 2.4875   V1 1.2393 0.727875 2.4875   V2 1.26884 0.745225 2.45469 
+  N0 0.392564 0.392564 0.831737   N1 0.480481 0.278679 0.83155   N2 0.67669 0.39248 0.622937 
+   txt003 
+STRI 
+  V0 1.26884 0.745225 2.45469   V1 1.04125 1.04125 2.45469   V2 1.01701 1.01701 2.4875 
+  N0 0.67669 0.39248 0.622937   N1 0.552993 0.552993 0.623215   N2 0.392564 0.392564 0.831737 
+   txt003 
+STRI 
+  V0 1.2393 0.727875 2.4875   V1 1.38201 0.384628 2.4875   V2 1.41495 0.393796 2.45469 
+  N0 0.480481 0.278679 0.83155   N1 0.537012 0.14476 0.831061   N2 0.755869 0.203756 0.622211 
+   txt003 
+STRI 
+  V0 1.41495 0.393796 2.45469   V1 1.26884 0.745225 2.45469   V2 1.2393 0.727875 2.4875 
+  N0 0.755869 0.203756 0.622211   N1 0.67669 0.39248 0.622937   N2 0.480481 0.278679 0.83155 
+   txt003 
+STRI 
+  V0 1.38201 0.384628 2.4875   V1 1.43241 0 2.4875   V2 1.46655 0 2.45469 
+  N0 0.537012 0.14476 0.831061   N1 0.556738 -4.5989e-16 0.830688   N2 0.783289 -1.94969e-16 0.621658 
+   txt003 
+STRI 
+  V0 1.46655 0 2.45469   V1 1.41495 0.393796 2.45469   V2 1.38201 0.384628 2.4875 
+  N0 0.783289 -1.94969e-16 0.621658   N1 0.755869 0.203756 0.622211   N2 0.537012 0.14476 0.831061 
+   txt003 
+STRI 
+  V0 0 1.46655 2.45469   V1 0.393796 1.41495 2.45469   V2 0.402778 1.44722 2.4 
+  N0 -0 0.783289 0.621658   N1 0.203756 0.755869 0.622211   N2 0.234929 0.871509 0.430442 
+   txt003 
+STRI 
+  V0 0.402778 1.44722 2.4   V1 0 1.5 2.4   V2 0 1.46655 2.45469 
+  N0 0.234929 0.871509 0.430442   N1 -0 0.902861 0.429934   N2 -0 0.783289 0.621658 
+   txt003 
+STRI 
+  V0 0.393796 1.41495 2.45469   V1 0.745225 1.26884 2.45469   V2 0.762222 1.29778 2.4 
+  N0 0.203756 0.755869 0.622211   N1 0.39248 0.67669 0.622937   N2 0.4527 0.780517 0.43111 
+   txt003 
+STRI 
+  V0 0.762222 1.29778 2.4   V1 0.402778 1.44722 2.4   V2 0.393796 1.41495 2.45469 
+  N0 0.4527 0.780517 0.43111   N1 0.234929 0.871509 0.430442   N2 0.203756 0.755869 0.622211 
+   txt003 
+STRI 
+  V0 0.745225 1.26884 2.45469   V1 1.04125 1.04125 2.45469   V2 1.065 1.065 2.4 
+  N0 0.39248 0.67669 0.622937   N1 0.552993 0.552993 0.623215   N2 0.637936 0.637936 0.431366 
+   txt003 
+STRI 
+  V0 1.065 1.065 2.4   V1 0.762222 1.29778 2.4   V2 0.745225 1.26884 2.45469 
+  N0 0.637936 0.637936 0.431366   N1 0.4527 0.780517 0.43111   N2 0.39248 0.67669 0.622937 
+   txt003 
+STRI 
+  V0 1.04125 1.04125 2.45469   V1 1.26884 0.745225 2.45469   V2 1.29778 0.762222 2.4 
+  N0 0.552993 0.552993 0.623215   N1 0.67669 0.39248 0.622937   N2 0.780517 0.4527 0.43111 
+   txt003 
+STRI 
+  V0 1.29778 0.762222 2.4   V1 1.065 1.065 2.4   V2 1.04125 1.04125 2.45469 
+  N0 0.780517 0.4527 0.43111   N1 0.637936 0.637936 0.431366   N2 0.552993 0.552993 0.623215 
+   txt003 
+STRI 
+  V0 1.26884 0.745225 2.45469   V1 1.41495 0.393796 2.45469   V2 1.44722 0.402778 2.4 
+  N0 0.67669 0.39248 0.622937   N1 0.755869 0.203756 0.622211   N2 0.871509 0.234929 0.430442 
+   txt003 
+STRI 
+  V0 1.44722 0.402778 2.4   V1 1.29778 0.762222 2.4   V2 1.26884 0.745225 2.45469 
+  N0 0.871509 0.234929 0.430442   N1 0.780517 0.4527 0.43111   N2 0.67669 0.39248 0.622937 
+   txt003 
+STRI 
+  V0 1.41495 0.393796 2.45469   V1 1.46655 0 2.45469   V2 1.5 0 2.4 
+  N0 0.755869 0.203756 0.622211   N1 0.783289 -1.94969e-16 0.621658   N2 0.902861 -6.81889e-17 0.429934 
+   txt003 
+STRI 
+  V0 1.5 0 2.4   V1 1.44722 0.402778 2.4   V2 1.41495 0.393796 2.45469 
+  N0 0.902861 -6.81889e-17 0.429934   N1 0.871509 0.234929 0.430442   N2 0.755869 0.203756 0.622211 
+   txt003 
+STRI 
+  V0 1.5 0 2.4   V1 1.44722 -0.402778 2.4   V2 1.56671 -0.436032 2.13785 
+  N0 0.902861 0 0.429934   N1 0.871509 -0.234929 0.430442   N2 0.875348 -0.235963 0.422003 
+   txt003 
+STRI 
+  V0 1.56671 -0.436032 2.13785   V1 1.62384 0 2.13785   V2 1.5 0 2.4 
+  N0 0.875348 -0.235963 0.422003   N1 0.906828 0 0.4215   N2 0.902861 0 0.429934 
+   txt003 
+STRI 
+  V0 1.44722 -0.402778 2.4   V1 1.29778 -0.762222 2.4   V2 1.40492 -0.825153 2.13785 
+  N0 0.871509 -0.234929 0.430442   N1 0.780517 -0.4527 0.43111   N2 0.783966 -0.4547 0.422664 
+   txt003 
+STRI 
+  V0 1.40492 -0.825153 2.13785   V1 1.56671 -0.436032 2.13785   V2 1.44722 -0.402778 2.4 
+  N0 0.783966 -0.4547 0.422664   N1 0.875348 -0.235963 0.422003   N2 0.871509 -0.234929 0.430442 
+   txt003 
+STRI 
+  V0 1.29778 -0.762222 2.4   V1 1.065 -1.065 2.4   V2 1.15293 -1.15293 2.13785 
+  N0 0.780517 -0.4527 0.43111   N1 0.637936 -0.637936 0.431366   N2 0.640758 -0.640758 0.422917 
+   txt003 
+STRI 
+  V0 1.15293 -1.15293 2.13785   V1 1.40492 -0.825153 2.13785   V2 1.29778 -0.762222 2.4 
+  N0 0.640758 -0.640758 0.422917   N1 0.783966 -0.4547 0.422664   N2 0.780517 -0.4527 0.43111 
+   txt003 
+STRI 
+  V0 1.065 -1.065 2.4   V1 0.762222 -1.29778 2.4   V2 0.825153 -1.40492 2.13785 
+  N0 0.637936 -0.637936 0.431366   N1 0.4527 -0.780517 0.43111   N2 0.4547 -0.783966 0.422664 
+   txt003 
+STRI 
+  V0 0.825153 -1.40492 2.13785   V1 1.15293 -1.15293 2.13785   V2 1.065 -1.065 2.4 
+  N0 0.4547 -0.783966 0.422664   N1 0.640758 -0.640758 0.422917   N2 0.637936 -0.637936 0.431366 
+   txt003 
+STRI 
+  V0 0.762222 -1.29778 2.4   V1 0.402778 -1.44722 2.4   V2 0.436032 -1.56671 2.13785 
+  N0 0.4527 -0.780517 0.43111   N1 0.234929 -0.871509 0.430442   N2 0.235963 -0.875348 0.422003 
+   txt003 
+STRI 
+  V0 0.436032 -1.56671 2.13785   V1 0.825153 -1.40492 2.13785   V2 0.762222 -1.29778 2.4 
+  N0 0.235963 -0.875348 0.422003   N1 0.4547 -0.783966 0.422664   N2 0.4527 -0.780517 0.43111 
+   txt003 
+STRI 
+  V0 0.402778 -1.44722 2.4   V1 0 -1.5 2.4   V2 2.22045e-16 -1.62384 2.13785 
+  N0 0.234929 -0.871509 0.430442   N1 -2.27296e-16 -0.902861 0.429934   N2 -2.05843e-16 -0.906828 0.4215 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.62384 2.13785   V1 0.436032 -1.56671 2.13785   V2 0.402778 -1.44722 2.4 
+  N0 -2.05843e-16 -0.906828 0.4215   N1 0.235963 -0.875348 0.422003   N2 0.234929 -0.871509 0.430442 
+   txt003 
+STRI 
+  V0 1.62384 0 2.13785   V1 1.56671 -0.436032 2.13785   V2 1.67949 -0.467421 1.87778 
+  N0 0.906828 0 0.4215   N1 0.875348 -0.235963 0.422003   N2 0.886771 -0.239043 0.395595 
+   txt003 
+STRI 
+  V0 1.67949 -0.467421 1.87778   V1 1.74074 0 1.87778   V2 1.62384 0 2.13785 
+  N0 0.886771 -0.239043 0.395595   N1 0.918633 0 0.395111   N2 0.906828 0 0.4215 
+   txt003 
+STRI 
+  V0 1.56671 -0.436032 2.13785   V1 1.40492 -0.825153 2.13785   V2 1.50606 -0.884554 1.87778 
+  N0 0.875348 -0.235963 0.422003   N1 0.783966 -0.4547 0.422664   N2 0.794229 -0.460653 0.39623 
+   txt003 
+STRI 
+  V0 1.50606 -0.884554 1.87778   V1 1.67949 -0.467421 1.87778   V2 1.56671 -0.436032 2.13785 
+  N0 0.794229 -0.460653 0.39623   N1 0.886771 -0.239043 0.395595   N2 0.875348 -0.235963 0.422003 
+   txt003 
+STRI 
+  V0 1.40492 -0.825153 2.13785   V1 1.15293 -1.15293 2.13785   V2 1.23593 -1.23593 1.87778 
+  N0 0.783966 -0.4547 0.422664   N1 0.640758 -0.640758 0.422917   N2 0.649156 -0.649156 0.396474 
+   txt003 
+STRI 
+  V0 1.23593 -1.23593 1.87778   V1 1.50606 -0.884554 1.87778   V2 1.40492 -0.825153 2.13785 
+  N0 0.649156 -0.649156 0.396474   N1 0.794229 -0.460653 0.39623   N2 0.783966 -0.4547 0.422664 
+   txt003 
+STRI 
+  V0 1.15293 -1.15293 2.13785   V1 0.825153 -1.40492 2.13785   V2 0.884554 -1.50606 1.87778 
+  N0 0.640758 -0.640758 0.422917   N1 0.4547 -0.783966 0.422664   N2 0.460653 -0.794229 0.39623 
+   txt003 
+STRI 
+  V0 0.884554 -1.50606 1.87778   V1 1.23593 -1.23593 1.87778   V2 1.15293 -1.15293 2.13785 
+  N0 0.460653 -0.794229 0.39623   N1 0.649156 -0.649156 0.396474   N2 0.640758 -0.640758 0.422917 
+   txt003 
+STRI 
+  V0 0.825153 -1.40492 2.13785   V1 0.436032 -1.56671 2.13785   V2 0.467421 -1.67949 1.87778 
+  N0 0.4547 -0.783966 0.422664   N1 0.235963 -0.875348 0.422003   N2 0.239043 -0.886771 0.395595 
+   txt003 
+STRI 
+  V0 0.467421 -1.67949 1.87778   V1 0.884554 -1.50606 1.87778   V2 0.825153 -1.40492 2.13785 
+  N0 0.239043 -0.886771 0.395595   N1 0.460653 -0.794229 0.39623   N2 0.4547 -0.783966 0.422664 
+   txt003 
+STRI 
+  V0 0.436032 -1.56671 2.13785   V1 2.22045e-16 -1.62384 2.13785   V2 0 -1.74074 1.87778 
+  N0 0.235963 -0.875348 0.422003   N1 -2.05843e-16 -0.906828 0.4215   N2 -1.79998e-16 -0.918633 0.395111 
+   txt003 
+STRI 
+  V0 0 -1.74074 1.87778   V1 0.467421 -1.67949 1.87778   V2 0.436032 -1.56671 2.13785 
+  N0 -1.79998e-16 -0.918633 0.395111   N1 0.239043 -0.886771 0.395595   N2 0.235963 -0.875348 0.422003 
+   txt003 
+STRI 
+  V0 1.74074 0 1.87778   V1 1.67949 -0.467421 1.87778   V2 1.77888 -0.495081 1.62188 
+  N0 0.918633 0 0.395111   N1 0.886771 -0.239043 0.395595   N2 0.90527 -0.244029 0.347757 
+   txt003 
+STRI 
+  V0 1.77888 -0.495081 1.62188   V1 1.84375 0 1.62188   V2 1.74074 0 1.87778 
+  N0 0.90527 -0.244029 0.347757   N1 0.937749 0 0.347314   N2 0.918633 0 0.395111 
+   txt003 
+STRI 
+  V0 1.67949 -0.467421 1.87778   V1 1.50606 -0.884554 1.87778   V2 1.59519 -0.936898 1.62188 
+  N0 0.886771 -0.239043 0.395595   N1 0.794229 -0.460653 0.39623   N2 0.810853 -0.470295 0.34834 
+   txt003 
+STRI 
+  V0 1.59519 -0.936898 1.62188   V1 1.77888 -0.495081 1.62188   V2 1.67949 -0.467421 1.87778 
+  N0 0.810853 -0.470295 0.34834   N1 0.90527 -0.244029 0.347757   N2 0.886771 -0.239043 0.395595 
+   txt003 
+STRI 
+  V0 1.50606 -0.884554 1.87778   V1 1.23593 -1.23593 1.87778   V2 1.30906 -1.30906 1.62188 
+  N0 0.794229 -0.460653 0.39623   N1 0.649156 -0.649156 0.396474   N2 0.662761 -0.662761 0.348563 
+   txt003 
+STRI 
+  V0 1.30906 -1.30906 1.62188   V1 1.59519 -0.936898 1.62188   V2 1.50606 -0.884554 1.87778 
+  N0 0.662761 -0.662761 0.348563   N1 0.810853 -0.470295 0.34834   N2 0.794229 -0.460653 0.39623 
+   txt003 
+STRI 
+  V0 1.23593 -1.23593 1.87778   V1 0.884554 -1.50606 1.87778   V2 0.936898 -1.59519 1.62187 
+  N0 0.649156 -0.649156 0.396474   N1 0.460653 -0.794229 0.39623   N2 0.470295 -0.810853 0.34834 
+   txt003 
+STRI 
+  V0 0.936898 -1.59519 1.62187   V1 1.30906 -1.30906 1.62188   V2 1.23593 -1.23593 1.87778 
+  N0 0.470295 -0.810853 0.34834   N1 0.662761 -0.662761 0.348563   N2 0.649156 -0.649156 0.396474 
+   txt003 
+STRI 
+  V0 0.884554 -1.50606 1.87778   V1 0.467421 -1.67949 1.87778   V2 0.495081 -1.77888 1.62187 
+  N0 0.460653 -0.794229 0.39623   N1 0.239043 -0.886771 0.395595   N2 0.244029 -0.90527 0.347757 
+   txt003 
+STRI 
+  V0 0.495081 -1.77888 1.62187   V1 0.936898 -1.59519 1.62187   V2 0.884554 -1.50606 1.87778 
+  N0 0.244029 -0.90527 0.347757   N1 0.470295 -0.810853 0.34834   N2 0.460653 -0.794229 0.39623 
+   txt003 
+STRI 
+  V0 0.467421 -1.67949 1.87778   V1 0 -1.74074 1.87778   V2 0 -1.84375 1.62187 
+  N0 0.239043 -0.886771 0.395595   N1 -1.79998e-16 -0.918633 0.395111   N2 -1.49384e-16 -0.937749 0.347314 
+   txt003 
+STRI 
+  V0 0 -1.84375 1.62187   V1 0.495081 -1.77888 1.62187   V2 0.467421 -1.67949 1.87778 
+  N0 -1.49384e-16 -0.937749 0.347314   N1 0.244029 -0.90527 0.347757   N2 0.239043 -0.886771 0.395595 
+   txt003 
+STRI 
+  V0 1.84375 0 1.62188   V1 1.77888 -0.495081 1.62188   V2 1.85816 -0.517147 1.37222 
+  N0 0.937749 0 0.347314   N1 0.90527 -0.244029 0.347757   N2 0.929073 -0.250446 0.272213 
+   txt003 
+STRI 
+  V0 1.85816 -0.517147 1.37222   V1 1.92593 0 1.37222   V2 1.84375 0 1.62188 
+  N0 0.929073 -0.250446 0.272213   N1 0.96234 0 0.271848   N2 0.937749 0 0.347314 
+   txt003 
+STRI 
+  V0 1.77888 -0.495081 1.62188   V1 1.59519 -0.936898 1.62188   V2 1.66628 -0.978656 1.37222 
+  N0 0.90527 -0.244029 0.347757   N1 0.810853 -0.470295 0.34834   N2 0.832247 -0.482704 0.272693 
+   txt003 
+STRI 
+  V0 1.66628 -0.978656 1.37222   V1 1.85816 -0.517147 1.37222   V2 1.77888 -0.495081 1.62188 
+  N0 0.832247 -0.482704 0.272693   N1 0.929073 -0.250446 0.272213   N2 0.90527 -0.244029 0.347757 
+   txt003 
+STRI 
+  V0 1.59519 -0.936898 1.62188   V1 1.30906 -1.30906 1.62188   V2 1.36741 -1.36741 1.37222 
+  N0 0.810853 -0.470295 0.34834   N1 0.662761 -0.662761 0.348563   N2 0.680271 -0.680271 0.272877 
+   txt003 
+STRI 
+  V0 1.36741 -1.36741 1.37222   V1 1.66628 -0.978656 1.37222   V2 1.59519 -0.936898 1.62188 
+  N0 0.680271 -0.680271 0.272877   N1 0.832247 -0.482704 0.272693   N2 0.810853 -0.470295 0.34834 
+   txt003 
+STRI 
+  V0 1.30906 -1.30906 1.62188   V1 0.936898 -1.59519 1.62187   V2 0.978656 -1.66628 1.37222 
+  N0 0.662761 -0.662761 0.348563   N1 0.470295 -0.810853 0.34834   N2 0.482704 -0.832247 0.272693 
+   txt003 
+STRI 
+  V0 0.978656 -1.66628 1.37222   V1 1.36741 -1.36741 1.37222   V2 1.30906 -1.30906 1.62188 
+  N0 0.482704 -0.832247 0.272693   N1 0.680271 -0.680271 0.272877   N2 0.662761 -0.662761 0.348563 
+   txt003 
+STRI 
+  V0 0.936898 -1.59519 1.62187   V1 0.495081 -1.77888 1.62187   V2 0.517147 -1.85816 1.37222 
+  N0 0.470295 -0.810853 0.34834   N1 0.244029 -0.90527 0.347757   N2 0.250446 -0.929073 0.272213 
+   txt003 
+STRI 
+  V0 0.517147 -1.85816 1.37222   V1 0.978656 -1.66628 1.37222   V2 0.936898 -1.59519 1.62187 
+  N0 0.250446 -0.929073 0.272213   N1 0.482704 -0.832247 0.272693   N2 0.470295 -0.810853 0.34834 
+   txt003 
+STRI 
+  V0 0.495081 -1.77888 1.62187   V1 0 -1.84375 1.62187   V2 2.22045e-16 -1.92593 1.37222 
+  N0 0.244029 -0.90527 0.347757   N1 -1.49384e-16 -0.937749 0.347314   N2 -1.11936e-16 -0.96234 0.271848 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.92593 1.37222   V1 0.517147 -1.85816 1.37222   V2 0.495081 -1.77888 1.62187 
+  N0 -1.11936e-16 -0.96234 0.271848   N1 0.250446 -0.929073 0.272213   N2 0.244029 -0.90527 0.347757 
+   txt003 
+STRI 
+  V0 1.92593 0 1.37222   V1 1.85816 -0.517147 1.37222   V2 1.91065 -0.531754 1.1309 
+  N0 0.96234 0 0.271848   N1 0.929073 -0.250446 0.272213   N2 0.953145 -0.256935 0.159686 
+   txt003 
+STRI 
+  V0 1.91065 -0.531754 1.1309   V1 1.98032 0 1.1309   V2 1.92593 0 1.37222 
+  N0 0.953145 -0.256935 0.159686   N1 0.987204 0 0.15946   N2 0.96234 0 0.271848 
+   txt003 
+STRI 
+  V0 1.85816 -0.517147 1.37222   V1 1.66628 -0.978656 1.37222   V2 1.71335 -1.0063 1.1309 
+  N0 0.929073 -0.250446 0.272213   N1 0.832247 -0.482704 0.272693   N2 0.853889 -0.495256 0.159982 
+   txt003 
+STRI 
+  V0 1.71335 -1.0063 1.1309   V1 1.91065 -0.531754 1.1309   V2 1.85816 -0.517147 1.37222 
+  N0 0.853889 -0.495256 0.159982   N1 0.953145 -0.256935 0.159686   N2 0.929073 -0.250446 0.272213 
+   txt003 
+STRI 
+  V0 1.66628 -0.978656 1.37222   V1 1.36741 -1.36741 1.37222   V2 1.40603 -1.40603 1.1309 
+  N0 0.832247 -0.482704 0.272693   N1 0.680271 -0.680271 0.272877   N2 0.697986 -0.697986 0.160096 
+   txt003 
+STRI 
+  V0 1.40603 -1.40603 1.1309   V1 1.71335 -1.0063 1.1309   V2 1.66628 -0.978656 1.37222 
+  N0 0.697986 -0.697986 0.160096   N1 0.853889 -0.495256 0.159982   N2 0.832247 -0.482704 0.272693 
+   txt003 
+STRI 
+  V0 1.36741 -1.36741 1.37222   V1 0.978656 -1.66628 1.37222   V2 1.0063 -1.71335 1.1309 
+  N0 0.680271 -0.680271 0.272877   N1 0.482704 -0.832247 0.272693   N2 0.495256 -0.853889 0.159982 
+   txt003 
+STRI 
+  V0 1.0063 -1.71335 1.1309   V1 1.40603 -1.40603 1.1309   V2 1.36741 -1.36741 1.37222 
+  N0 0.495256 -0.853889 0.159982   N1 0.697986 -0.697986 0.160096   N2 0.680271 -0.680271 0.272877 
+   txt003 
+STRI 
+  V0 0.978656 -1.66628 1.37222   V1 0.517147 -1.85816 1.37222   V2 0.531754 -1.91065 1.1309 
+  N0 0.482704 -0.832247 0.272693   N1 0.250446 -0.929073 0.272213   N2 0.256935 -0.953145 0.159686 
+   txt003 
+STRI 
+  V0 0.531754 -1.91065 1.1309   V1 1.0063 -1.71335 1.1309   V2 0.978656 -1.66628 1.37222 
+  N0 0.256935 -0.953145 0.159686   N1 0.495256 -0.853889 0.159982   N2 0.482704 -0.832247 0.272693 
+   txt003 
+STRI 
+  V0 0.517147 -1.85816 1.37222   V1 2.22045e-16 -1.92593 1.37222   V2 -2.22045e-16 -1.98032 1.1309 
+  N0 0.250446 -0.929073 0.272213   N1 -1.11936e-16 -0.96234 0.271848   N2 -6.38555e-17 -0.987204 0.15946 
+   txt003 
+STRI 
+  V0 -2.22045e-16 -1.98032 1.1309   V1 0.531754 -1.91065 1.1309   V2 0.517147 -1.85816 1.37222 
+  N0 -6.38555e-17 -0.987204 0.15946   N1 0.256935 -0.953145 0.159686   N2 0.250446 -0.929073 0.272213 
+   txt003 
+STRI 
+  V0 1.98032 0 1.1309   V1 1.91065 -0.531754 1.1309   V2 1.92963 -0.537037 0.9 
+  N0 0.987204 0 0.15946   N1 0.953145 -0.256935 0.159686   N2 0.965535 -0.260275 5.17854e-17 
+   txt003 
+STRI 
+  V0 1.92963 -0.537037 0.9   V1 2 0 0.9   V2 1.98032 0 1.1309 
+  N0 0.965535 -0.260275 5.17854e-17   N1 1 0 0   N2 0.987204 0 0.15946 
+   txt003 
+STRI 
+  V0 1.91065 -0.531754 1.1309   V1 1.71335 -1.0063 1.1309   V2 1.73037 -1.0163 0.9 
+  N0 0.953145 -0.256935 0.159686   N1 0.853889 -0.495256 0.159982   N2 0.865031 -0.501718 1.36587e-16 
+   txt003 
+STRI 
+  V0 1.73037 -1.0163 0.9   V1 1.92963 -0.537037 0.9   V2 1.91065 -0.531754 1.1309 
+  N0 0.865031 -0.501718 1.36587e-16   N1 0.965535 -0.260275 5.17854e-17   N2 0.953145 -0.256935 0.159686 
+   txt003 
+STRI 
+  V0 1.71335 -1.0063 1.1309   V1 1.40603 -1.40603 1.1309   V2 1.42 -1.42 0.9 
+  N0 0.853889 -0.495256 0.159982   N1 0.697986 -0.697986 0.160096   N2 0.707107 -0.707107 1.74455e-16 
+   txt003 
+STRI 
+  V0 1.42 -1.42 0.9   V1 1.73037 -1.0163 0.9   V2 1.71335 -1.0063 1.1309 
+  N0 0.707107 -0.707107 1.74455e-16   N1 0.865031 -0.501718 1.36587e-16   N2 0.853889 -0.495256 0.159982 
+   txt003 
+STRI 
+  V0 1.40603 -1.40603 1.1309   V1 1.0063 -1.71335 1.1309   V2 1.0163 -1.73037 0.9 
+  N0 0.697986 -0.697986 0.160096   N1 0.495256 -0.853889 0.159982   N2 0.501718 -0.865031 1.36587e-16 
+   txt003 
+STRI 
+  V0 1.0163 -1.73037 0.9   V1 1.42 -1.42 0.9   V2 1.40603 -1.40603 1.1309 
+  N0 0.501718 -0.865031 1.36587e-16   N1 0.707107 -0.707107 1.74455e-16   N2 0.697986 -0.697986 0.160096 
+   txt003 
+STRI 
+  V0 1.0063 -1.71335 1.1309   V1 0.531754 -1.91065 1.1309   V2 0.537037 -1.92963 0.9 
+  N0 0.495256 -0.853889 0.159982   N1 0.256935 -0.953145 0.159686   N2 0.260275 -0.965535 5.17854e-17 
+   txt003 
+STRI 
+  V0 0.537037 -1.92963 0.9   V1 1.0163 -1.73037 0.9   V2 1.0063 -1.71335 1.1309 
+  N0 0.260275 -0.965535 5.17854e-17   N1 0.501718 -0.865031 1.36587e-16   N2 0.495256 -0.853889 0.159982 
+   txt003 
+STRI 
+  V0 0.531754 -1.91065 1.1309   V1 -2.22045e-16 -1.98032 1.1309   V2 0 -2 0.9 
+  N0 0.256935 -0.953145 0.159686   N1 -6.38555e-17 -0.987204 0.15946   N2 0 -1 -0 
+   txt003 
+STRI 
+  V0 0 -2 0.9   V1 0.537037 -1.92963 0.9   V2 0.531754 -1.91065 1.1309 
+  N0 0 -1 -0   N1 0.260275 -0.965535 5.17854e-17   N2 0.256935 -0.953145 0.159686 
+   txt003 
+STRI 
+  V0 0 -1.5 2.4   V1 -0.402778 -1.44722 2.4   V2 -0.436032 -1.56671 2.13785 
+  N0 0 -0.902861 0.429934   N1 -0.234929 -0.871509 0.430442   N2 -0.235963 -0.875348 0.422003 
+   txt003 
+STRI 
+  V0 -0.436032 -1.56671 2.13785   V1 0 -1.62384 2.13785   V2 0 -1.5 2.4 
+  N0 -0.235963 -0.875348 0.422003   N1 0 -0.906828 0.4215   N2 0 -0.902861 0.429934 
+   txt003 
+STRI 
+  V0 -0.402778 -1.44722 2.4   V1 -0.762222 -1.29778 2.4   V2 -0.825153 -1.40492 2.13785 
+  N0 -0.234929 -0.871509 0.430442   N1 -0.4527 -0.780517 0.43111   N2 -0.4547 -0.783966 0.422664 
+   txt003 
+STRI 
+  V0 -0.825153 -1.40492 2.13785   V1 -0.436032 -1.56671 2.13785   V2 -0.402778 -1.44722 2.4 
+  N0 -0.4547 -0.783966 0.422664   N1 -0.235963 -0.875348 0.422003   N2 -0.234929 -0.871509 0.430442 
+   txt003 
+STRI 
+  V0 -0.762222 -1.29778 2.4   V1 -1.065 -1.065 2.4   V2 -1.15293 -1.15293 2.13785 
+  N0 -0.4527 -0.780517 0.43111   N1 -0.637936 -0.637936 0.431366   N2 -0.640758 -0.640758 0.422917 
+   txt003 
+STRI 
+  V0 -1.15293 -1.15293 2.13785   V1 -0.825153 -1.40492 2.13785   V2 -0.762222 -1.29778 2.4 
+  N0 -0.640758 -0.640758 0.422917   N1 -0.4547 -0.783966 0.422664   N2 -0.4527 -0.780517 0.43111 
+   txt003 
+STRI 
+  V0 -1.065 -1.065 2.4   V1 -1.29778 -0.762222 2.4   V2 -1.40492 -0.825153 2.13785 
+  N0 -0.637936 -0.637936 0.431366   N1 -0.780517 -0.4527 0.43111   N2 -0.783966 -0.4547 0.422664 
+   txt003 
+STRI 
+  V0 -1.40492 -0.825153 2.13785   V1 -1.15293 -1.15293 2.13785   V2 -1.065 -1.065 2.4 
+  N0 -0.783966 -0.4547 0.422664   N1 -0.640758 -0.640758 0.422917   N2 -0.637936 -0.637936 0.431366 
+   txt003 
+STRI 
+  V0 -1.29778 -0.762222 2.4   V1 -1.44722 -0.402778 2.4   V2 -1.56671 -0.436032 2.13785 
+  N0 -0.780517 -0.4527 0.43111   N1 -0.871509 -0.234929 0.430442   N2 -0.875348 -0.235963 0.422003 
+   txt003 
+STRI 
+  V0 -1.56671 -0.436032 2.13785   V1 -1.40492 -0.825153 2.13785   V2 -1.29778 -0.762222 2.4 
+  N0 -0.875348 -0.235963 0.422003   N1 -0.783966 -0.4547 0.422664   N2 -0.780517 -0.4527 0.43111 
+   txt003 
+STRI 
+  V0 -1.44722 -0.402778 2.4   V1 -1.5 0 2.4   V2 -1.62384 -2.22045e-16 2.13785 
+  N0 -0.871509 -0.234929 0.430442   N1 -0.902861 2.27296e-16 0.429934   N2 -0.906828 2.05843e-16 0.4215 
+   txt003 
+STRI 
+  V0 -1.62384 -2.22045e-16 2.13785   V1 -1.56671 -0.436032 2.13785   V2 -1.44722 -0.402778 2.4 
+  N0 -0.906828 2.05843e-16 0.4215   N1 -0.875348 -0.235963 0.422003   N2 -0.871509 -0.234929 0.430442 
+   txt003 
+STRI 
+  V0 0 -1.62384 2.13785   V1 -0.436032 -1.56671 2.13785   V2 -0.467421 -1.67949 1.87778 
+  N0 0 -0.906828 0.4215   N1 -0.235963 -0.875348 0.422003   N2 -0.239043 -0.886771 0.395595 
+   txt003 
+STRI 
+  V0 -0.467421 -1.67949 1.87778   V1 0 -1.74074 1.87778   V2 0 -1.62384 2.13785 
+  N0 -0.239043 -0.886771 0.395595   N1 0 -0.918633 0.395111   N2 0 -0.906828 0.4215 
+   txt003 
+STRI 
+  V0 -0.436032 -1.56671 2.13785   V1 -0.825153 -1.40492 2.13785   V2 -0.884554 -1.50606 1.87778 
+  N0 -0.235963 -0.875348 0.422003   N1 -0.4547 -0.783966 0.422664   N2 -0.460653 -0.794229 0.39623 
+   txt003 
+STRI 
+  V0 -0.884554 -1.50606 1.87778   V1 -0.467421 -1.67949 1.87778   V2 -0.436032 -1.56671 2.13785 
+  N0 -0.460653 -0.794229 0.39623   N1 -0.239043 -0.886771 0.395595   N2 -0.235963 -0.875348 0.422003 
+   txt003 
+STRI 
+  V0 -0.825153 -1.40492 2.13785   V1 -1.15293 -1.15293 2.13785   V2 -1.23593 -1.23593 1.87778 
+  N0 -0.4547 -0.783966 0.422664   N1 -0.640758 -0.640758 0.422917   N2 -0.649156 -0.649156 0.396474 
+   txt003 
+STRI 
+  V0 -1.23593 -1.23593 1.87778   V1 -0.884554 -1.50606 1.87778   V2 -0.825153 -1.40492 2.13785 
+  N0 -0.649156 -0.649156 0.396474   N1 -0.460653 -0.794229 0.39623   N2 -0.4547 -0.783966 0.422664 
+   txt003 
+STRI 
+  V0 -1.15293 -1.15293 2.13785   V1 -1.40492 -0.825153 2.13785   V2 -1.50606 -0.884554 1.87778 
+  N0 -0.640758 -0.640758 0.422917   N1 -0.783966 -0.4547 0.422664   N2 -0.794229 -0.460653 0.39623 
+   txt003 
+STRI 
+  V0 -1.50606 -0.884554 1.87778   V1 -1.23593 -1.23593 1.87778   V2 -1.15293 -1.15293 2.13785 
+  N0 -0.794229 -0.460653 0.39623   N1 -0.649156 -0.649156 0.396474   N2 -0.640758 -0.640758 0.422917 
+   txt003 
+STRI 
+  V0 -1.40492 -0.825153 2.13785   V1 -1.56671 -0.436032 2.13785   V2 -1.67949 -0.467421 1.87778 
+  N0 -0.783966 -0.4547 0.422664   N1 -0.875348 -0.235963 0.422003   N2 -0.886771 -0.239043 0.395595 
+   txt003 
+STRI 
+  V0 -1.67949 -0.467421 1.87778   V1 -1.50606 -0.884554 1.87778   V2 -1.40492 -0.825153 2.13785 
+  N0 -0.886771 -0.239043 0.395595   N1 -0.794229 -0.460653 0.39623   N2 -0.783966 -0.4547 0.422664 
+   txt003 
+STRI 
+  V0 -1.56671 -0.436032 2.13785   V1 -1.62384 -2.22045e-16 2.13785   V2 -1.74074 0 1.87778 
+  N0 -0.875348 -0.235963 0.422003   N1 -0.906828 2.05843e-16 0.4215   N2 -0.918633 1.79998e-16 0.395111 
+   txt003 
+STRI 
+  V0 -1.74074 0 1.87778   V1 -1.67949 -0.467421 1.87778   V2 -1.56671 -0.436032 2.13785 
+  N0 -0.918633 1.79998e-16 0.395111   N1 -0.886771 -0.239043 0.395595   N2 -0.875348 -0.235963 0.422003 
+   txt003 
+STRI 
+  V0 0 -1.74074 1.87778   V1 -0.467421 -1.67949 1.87778   V2 -0.495081 -1.77888 1.62188 
+  N0 0 -0.918633 0.395111   N1 -0.239043 -0.886771 0.395595   N2 -0.244029 -0.90527 0.347757 
+   txt003 
+STRI 
+  V0 -0.495081 -1.77888 1.62188   V1 0 -1.84375 1.62188   V2 0 -1.74074 1.87778 
+  N0 -0.244029 -0.90527 0.347757   N1 0 -0.937749 0.347314   N2 0 -0.918633 0.395111 
+   txt003 
+STRI 
+  V0 -0.467421 -1.67949 1.87778   V1 -0.884554 -1.50606 1.87778   V2 -0.936898 -1.59519 1.62188 
+  N0 -0.239043 -0.886771 0.395595   N1 -0.460653 -0.794229 0.39623   N2 -0.470295 -0.810853 0.34834 
+   txt003 
+STRI 
+  V0 -0.936898 -1.59519 1.62188   V1 -0.495081 -1.77888 1.62188   V2 -0.467421 -1.67949 1.87778 
+  N0 -0.470295 -0.810853 0.34834   N1 -0.244029 -0.90527 0.347757   N2 -0.239043 -0.886771 0.395595 
+   txt003 
+STRI 
+  V0 -0.884554 -1.50606 1.87778   V1 -1.23593 -1.23593 1.87778   V2 -1.30906 -1.30906 1.62188 
+  N0 -0.460653 -0.794229 0.39623   N1 -0.649156 -0.649156 0.396474   N2 -0.662761 -0.662761 0.348563 
+   txt003 
+STRI 
+  V0 -1.30906 -1.30906 1.62188   V1 -0.936898 -1.59519 1.62188   V2 -0.884554 -1.50606 1.87778 
+  N0 -0.662761 -0.662761 0.348563   N1 -0.470295 -0.810853 0.34834   N2 -0.460653 -0.794229 0.39623 
+   txt003 
+STRI 
+  V0 -1.23593 -1.23593 1.87778   V1 -1.50606 -0.884554 1.87778   V2 -1.59519 -0.936898 1.62187 
+  N0 -0.649156 -0.649156 0.396474   N1 -0.794229 -0.460653 0.39623   N2 -0.810853 -0.470295 0.34834 
+   txt003 
+STRI 
+  V0 -1.59519 -0.936898 1.62187   V1 -1.30906 -1.30906 1.62188   V2 -1.23593 -1.23593 1.87778 
+  N0 -0.810853 -0.470295 0.34834   N1 -0.662761 -0.662761 0.348563   N2 -0.649156 -0.649156 0.396474 
+   txt003 
+STRI 
+  V0 -1.50606 -0.884554 1.87778   V1 -1.67949 -0.467421 1.87778   V2 -1.77888 -0.495081 1.62187 
+  N0 -0.794229 -0.460653 0.39623   N1 -0.886771 -0.239043 0.395595   N2 -0.90527 -0.244029 0.347757 
+   txt003 
+STRI 
+  V0 -1.77888 -0.495081 1.62187   V1 -1.59519 -0.936898 1.62187   V2 -1.50606 -0.884554 1.87778 
+  N0 -0.90527 -0.244029 0.347757   N1 -0.810853 -0.470295 0.34834   N2 -0.794229 -0.460653 0.39623 
+   txt003 
+STRI 
+  V0 -1.67949 -0.467421 1.87778   V1 -1.74074 0 1.87778   V2 -1.84375 0 1.62187 
+  N0 -0.886771 -0.239043 0.395595   N1 -0.918633 1.79998e-16 0.395111   N2 -0.937749 1.49384e-16 0.347314 
+   txt003 
+STRI 
+  V0 -1.84375 0 1.62187   V1 -1.77888 -0.495081 1.62187   V2 -1.67949 -0.467421 1.87778 
+  N0 -0.937749 1.49384e-16 0.347314   N1 -0.90527 -0.244029 0.347757   N2 -0.886771 -0.239043 0.395595 
+   txt003 
+STRI 
+  V0 0 -1.84375 1.62188   V1 -0.495081 -1.77888 1.62188   V2 -0.517147 -1.85816 1.37222 
+  N0 0 -0.937749 0.347314   N1 -0.244029 -0.90527 0.347757   N2 -0.250446 -0.929073 0.272213 
+   txt003 
+STRI 
+  V0 -0.517147 -1.85816 1.37222   V1 0 -1.92593 1.37222   V2 0 -1.84375 1.62188 
+  N0 -0.250446 -0.929073 0.272213   N1 0 -0.96234 0.271848   N2 0 -0.937749 0.347314 
+   txt003 
+STRI 
+  V0 -0.495081 -1.77888 1.62188   V1 -0.936898 -1.59519 1.62188   V2 -0.978656 -1.66628 1.37222 
+  N0 -0.244029 -0.90527 0.347757   N1 -0.470295 -0.810853 0.34834   N2 -0.482704 -0.832247 0.272693 
+   txt003 
+STRI 
+  V0 -0.978656 -1.66628 1.37222   V1 -0.517147 -1.85816 1.37222   V2 -0.495081 -1.77888 1.62188 
+  N0 -0.482704 -0.832247 0.272693   N1 -0.250446 -0.929073 0.272213   N2 -0.244029 -0.90527 0.347757 
+   txt003 
+STRI 
+  V0 -0.936898 -1.59519 1.62188   V1 -1.30906 -1.30906 1.62188   V2 -1.36741 -1.36741 1.37222 
+  N0 -0.470295 -0.810853 0.34834   N1 -0.662761 -0.662761 0.348563   N2 -0.680271 -0.680271 0.272877 
+   txt003 
+STRI 
+  V0 -1.36741 -1.36741 1.37222   V1 -0.978656 -1.66628 1.37222   V2 -0.936898 -1.59519 1.62188 
+  N0 -0.680271 -0.680271 0.272877   N1 -0.482704 -0.832247 0.272693   N2 -0.470295 -0.810853 0.34834 
+   txt003 
+STRI 
+  V0 -1.30906 -1.30906 1.62188   V1 -1.59519 -0.936898 1.62187   V2 -1.66628 -0.978656 1.37222 
+  N0 -0.662761 -0.662761 0.348563   N1 -0.810853 -0.470295 0.34834   N2 -0.832247 -0.482704 0.272693 
+   txt003 
+STRI 
+  V0 -1.66628 -0.978656 1.37222   V1 -1.36741 -1.36741 1.37222   V2 -1.30906 -1.30906 1.62188 
+  N0 -0.832247 -0.482704 0.272693   N1 -0.680271 -0.680271 0.272877   N2 -0.662761 -0.662761 0.348563 
+   txt003 
+STRI 
+  V0 -1.59519 -0.936898 1.62187   V1 -1.77888 -0.495081 1.62187   V2 -1.85816 -0.517147 1.37222 
+  N0 -0.810853 -0.470295 0.34834   N1 -0.90527 -0.244029 0.347757   N2 -0.929073 -0.250446 0.272213 
+   txt003 
+STRI 
+  V0 -1.85816 -0.517147 1.37222   V1 -1.66628 -0.978656 1.37222   V2 -1.59519 -0.936898 1.62187 
+  N0 -0.929073 -0.250446 0.272213   N1 -0.832247 -0.482704 0.272693   N2 -0.810853 -0.470295 0.34834 
+   txt003 
+STRI 
+  V0 -1.77888 -0.495081 1.62187   V1 -1.84375 0 1.62187   V2 -1.92593 -2.22045e-16 1.37222 
+  N0 -0.90527 -0.244029 0.347757   N1 -0.937749 1.49384e-16 0.347314   N2 -0.96234 1.11936e-16 0.271848 
+   txt003 
+STRI 
+  V0 -1.92593 -2.22045e-16 1.37222   V1 -1.85816 -0.517147 1.37222   V2 -1.77888 -0.495081 1.62187 
+  N0 -0.96234 1.11936e-16 0.271848   N1 -0.929073 -0.250446 0.272213   N2 -0.90527 -0.244029 0.347757 
+   txt003 
+STRI 
+  V0 0 -1.92593 1.37222   V1 -0.517147 -1.85816 1.37222   V2 -0.531754 -1.91065 1.1309 
+  N0 0 -0.96234 0.271848   N1 -0.250446 -0.929073 0.272213   N2 -0.256935 -0.953145 0.159686 
+   txt003 
+STRI 
+  V0 -0.531754 -1.91065 1.1309   V1 0 -1.98032 1.1309   V2 0 -1.92593 1.37222 
+  N0 -0.256935 -0.953145 0.159686   N1 0 -0.987204 0.15946   N2 0 -0.96234 0.271848 
+   txt003 
+STRI 
+  V0 -0.517147 -1.85816 1.37222   V1 -0.978656 -1.66628 1.37222   V2 -1.0063 -1.71335 1.1309 
+  N0 -0.250446 -0.929073 0.272213   N1 -0.482704 -0.832247 0.272693   N2 -0.495256 -0.853889 0.159982 
+   txt003 
+STRI 
+  V0 -1.0063 -1.71335 1.1309   V1 -0.531754 -1.91065 1.1309   V2 -0.517147 -1.85816 1.37222 
+  N0 -0.495256 -0.853889 0.159982   N1 -0.256935 -0.953145 0.159686   N2 -0.250446 -0.929073 0.272213 
+   txt003 
+STRI 
+  V0 -0.978656 -1.66628 1.37222   V1 -1.36741 -1.36741 1.37222   V2 -1.40603 -1.40603 1.1309 
+  N0 -0.482704 -0.832247 0.272693   N1 -0.680271 -0.680271 0.272877   N2 -0.697986 -0.697986 0.160096 
+   txt003 
+STRI 
+  V0 -1.40603 -1.40603 1.1309   V1 -1.0063 -1.71335 1.1309   V2 -0.978656 -1.66628 1.37222 
+  N0 -0.697986 -0.697986 0.160096   N1 -0.495256 -0.853889 0.159982   N2 -0.482704 -0.832247 0.272693 
+   txt003 
+STRI 
+  V0 -1.36741 -1.36741 1.37222   V1 -1.66628 -0.978656 1.37222   V2 -1.71335 -1.0063 1.1309 
+  N0 -0.680271 -0.680271 0.272877   N1 -0.832247 -0.482704 0.272693   N2 -0.853889 -0.495256 0.159982 
+   txt003 
+STRI 
+  V0 -1.71335 -1.0063 1.1309   V1 -1.40603 -1.40603 1.1309   V2 -1.36741 -1.36741 1.37222 
+  N0 -0.853889 -0.495256 0.159982   N1 -0.697986 -0.697986 0.160096   N2 -0.680271 -0.680271 0.272877 
+   txt003 
+STRI 
+  V0 -1.66628 -0.978656 1.37222   V1 -1.85816 -0.517147 1.37222   V2 -1.91065 -0.531754 1.1309 
+  N0 -0.832247 -0.482704 0.272693   N1 -0.929073 -0.250446 0.272213   N2 -0.953145 -0.256935 0.159686 
+   txt003 
+STRI 
+  V0 -1.91065 -0.531754 1.1309   V1 -1.71335 -1.0063 1.1309   V2 -1.66628 -0.978656 1.37222 
+  N0 -0.953145 -0.256935 0.159686   N1 -0.853889 -0.495256 0.159982   N2 -0.832247 -0.482704 0.272693 
+   txt003 
+STRI 
+  V0 -1.85816 -0.517147 1.37222   V1 -1.92593 -2.22045e-16 1.37222   V2 -1.98032 2.22045e-16 1.1309 
+  N0 -0.929073 -0.250446 0.272213   N1 -0.96234 1.11936e-16 0.271848   N2 -0.987204 6.38555e-17 0.15946 
+   txt003 
+STRI 
+  V0 -1.98032 2.22045e-16 1.1309   V1 -1.91065 -0.531754 1.1309   V2 -1.85816 -0.517147 1.37222 
+  N0 -0.987204 6.38555e-17 0.15946   N1 -0.953145 -0.256935 0.159686   N2 -0.929073 -0.250446 0.272213 
+   txt003 
+STRI 
+  V0 0 -1.98032 1.1309   V1 -0.531754 -1.91065 1.1309   V2 -0.537037 -1.92963 0.9 
+  N0 0 -0.987204 0.15946   N1 -0.256935 -0.953145 0.159686   N2 -0.260275 -0.965535 5.17854e-17 
+   txt003 
+STRI 
+  V0 -0.537037 -1.92963 0.9   V1 0 -2 0.9   V2 0 -1.98032 1.1309 
+  N0 -0.260275 -0.965535 5.17854e-17   N1 -0 -1 -0   N2 0 -0.987204 0.15946 
+   txt003 
+STRI 
+  V0 -0.531754 -1.91065 1.1309   V1 -1.0063 -1.71335 1.1309   V2 -1.0163 -1.73037 0.9 
+  N0 -0.256935 -0.953145 0.159686   N1 -0.495256 -0.853889 0.159982   N2 -0.501718 -0.865031 1.36587e-16 
+   txt003 
+STRI 
+  V0 -1.0163 -1.73037 0.9   V1 -0.537037 -1.92963 0.9   V2 -0.531754 -1.91065 1.1309 
+  N0 -0.501718 -0.865031 1.36587e-16   N1 -0.260275 -0.965535 5.17854e-17   N2 -0.256935 -0.953145 0.159686 
+   txt003 
+STRI 
+  V0 -1.0063 -1.71335 1.1309   V1 -1.40603 -1.40603 1.1309   V2 -1.42 -1.42 0.9 
+  N0 -0.495256 -0.853889 0.159982   N1 -0.697986 -0.697986 0.160096   N2 -0.707107 -0.707107 1.74455e-16 
+   txt003 
+STRI 
+  V0 -1.42 -1.42 0.9   V1 -1.0163 -1.73037 0.9   V2 -1.0063 -1.71335 1.1309 
+  N0 -0.707107 -0.707107 1.74455e-16   N1 -0.501718 -0.865031 1.36587e-16   N2 -0.495256 -0.853889 0.159982 
+   txt003 
+STRI 
+  V0 -1.40603 -1.40603 1.1309   V1 -1.71335 -1.0063 1.1309   V2 -1.73037 -1.0163 0.9 
+  N0 -0.697986 -0.697986 0.160096   N1 -0.853889 -0.495256 0.159982   N2 -0.865031 -0.501718 1.36587e-16 
+   txt003 
+STRI 
+  V0 -1.73037 -1.0163 0.9   V1 -1.42 -1.42 0.9   V2 -1.40603 -1.40603 1.1309 
+  N0 -0.865031 -0.501718 1.36587e-16   N1 -0.707107 -0.707107 1.74455e-16   N2 -0.697986 -0.697986 0.160096 
+   txt003 
+STRI 
+  V0 -1.71335 -1.0063 1.1309   V1 -1.91065 -0.531754 1.1309   V2 -1.92963 -0.537037 0.9 
+  N0 -0.853889 -0.495256 0.159982   N1 -0.953145 -0.256935 0.159686   N2 -0.965535 -0.260275 5.17854e-17 
+   txt003 
+STRI 
+  V0 -1.92963 -0.537037 0.9   V1 -1.73037 -1.0163 0.9   V2 -1.71335 -1.0063 1.1309 
+  N0 -0.965535 -0.260275 5.17854e-17   N1 -0.865031 -0.501718 1.36587e-16   N2 -0.853889 -0.495256 0.159982 
+   txt003 
+STRI 
+  V0 -1.91065 -0.531754 1.1309   V1 -1.98032 2.22045e-16 1.1309   V2 -2 0 0.9 
+  N0 -0.953145 -0.256935 0.159686   N1 -0.987204 6.38555e-17 0.15946   N2 -1 0 0 
+   txt003 
+STRI 
+  V0 -2 0 0.9   V1 -1.92963 -0.537037 0.9   V2 -1.91065 -0.531754 1.1309 
+  N0 -1 0 0   N1 -0.965535 -0.260275 5.17854e-17   N2 -0.953145 -0.256935 0.159686 
+   txt003 
+STRI 
+  V0 -1.5 0 2.4   V1 -1.44722 0.402778 2.4   V2 -1.56671 0.436032 2.13785 
+  N0 -0.902861 0 0.429934   N1 -0.871509 0.234929 0.430442   N2 -0.875348 0.235963 0.422003 
+   txt003 
+STRI 
+  V0 -1.56671 0.436032 2.13785   V1 -1.62384 0 2.13785   V2 -1.5 0 2.4 
+  N0 -0.875348 0.235963 0.422003   N1 -0.906828 0 0.4215   N2 -0.902861 0 0.429934 
+   txt003 
+STRI 
+  V0 -1.44722 0.402778 2.4   V1 -1.29778 0.762222 2.4   V2 -1.40492 0.825153 2.13785 
+  N0 -0.871509 0.234929 0.430442   N1 -0.780517 0.4527 0.43111   N2 -0.783966 0.4547 0.422664 
+   txt003 
+STRI 
+  V0 -1.40492 0.825153 2.13785   V1 -1.56671 0.436032 2.13785   V2 -1.44722 0.402778 2.4 
+  N0 -0.783966 0.4547 0.422664   N1 -0.875348 0.235963 0.422003   N2 -0.871509 0.234929 0.430442 
+   txt003 
+STRI 
+  V0 -1.29778 0.762222 2.4   V1 -1.065 1.065 2.4   V2 -1.15293 1.15293 2.13785 
+  N0 -0.780517 0.4527 0.43111   N1 -0.637936 0.637936 0.431366   N2 -0.640758 0.640758 0.422917 
+   txt003 
+STRI 
+  V0 -1.15293 1.15293 2.13785   V1 -1.40492 0.825153 2.13785   V2 -1.29778 0.762222 2.4 
+  N0 -0.640758 0.640758 0.422917   N1 -0.783966 0.4547 0.422664   N2 -0.780517 0.4527 0.43111 
+   txt003 
+STRI 
+  V0 -1.065 1.065 2.4   V1 -0.762222 1.29778 2.4   V2 -0.825153 1.40492 2.13785 
+  N0 -0.637936 0.637936 0.431366   N1 -0.4527 0.780517 0.43111   N2 -0.4547 0.783966 0.422664 
+   txt003 
+STRI 
+  V0 -0.825153 1.40492 2.13785   V1 -1.15293 1.15293 2.13785   V2 -1.065 1.065 2.4 
+  N0 -0.4547 0.783966 0.422664   N1 -0.640758 0.640758 0.422917   N2 -0.637936 0.637936 0.431366 
+   txt003 
+STRI 
+  V0 -0.762222 1.29778 2.4   V1 -0.402778 1.44722 2.4   V2 -0.436032 1.56671 2.13785 
+  N0 -0.4527 0.780517 0.43111   N1 -0.234929 0.871509 0.430442   N2 -0.235963 0.875348 0.422003 
+   txt003 
+STRI 
+  V0 -0.436032 1.56671 2.13785   V1 -0.825153 1.40492 2.13785   V2 -0.762222 1.29778 2.4 
+  N0 -0.235963 0.875348 0.422003   N1 -0.4547 0.783966 0.422664   N2 -0.4527 0.780517 0.43111 
+   txt003 
+STRI 
+  V0 -0.402778 1.44722 2.4   V1 0 1.5 2.4   V2 -2.22045e-16 1.62384 2.13785 
+  N0 -0.234929 0.871509 0.430442   N1 2.27296e-16 0.902861 0.429934   N2 2.05843e-16 0.906828 0.4215 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.62384 2.13785   V1 -0.436032 1.56671 2.13785   V2 -0.402778 1.44722 2.4 
+  N0 2.05843e-16 0.906828 0.4215   N1 -0.235963 0.875348 0.422003   N2 -0.234929 0.871509 0.430442 
+   txt003 
+STRI 
+  V0 -1.62384 0 2.13785   V1 -1.56671 0.436032 2.13785   V2 -1.67949 0.467421 1.87778 
+  N0 -0.906828 0 0.4215   N1 -0.875348 0.235963 0.422003   N2 -0.886771 0.239043 0.395595 
+   txt003 
+STRI 
+  V0 -1.67949 0.467421 1.87778   V1 -1.74074 0 1.87778   V2 -1.62384 0 2.13785 
+  N0 -0.886771 0.239043 0.395595   N1 -0.918633 0 0.395111   N2 -0.906828 0 0.4215 
+   txt003 
+STRI 
+  V0 -1.56671 0.436032 2.13785   V1 -1.40492 0.825153 2.13785   V2 -1.50606 0.884554 1.87778 
+  N0 -0.875348 0.235963 0.422003   N1 -0.783966 0.4547 0.422664   N2 -0.794229 0.460653 0.39623 
+   txt003 
+STRI 
+  V0 -1.50606 0.884554 1.87778   V1 -1.67949 0.467421 1.87778   V2 -1.56671 0.436032 2.13785 
+  N0 -0.794229 0.460653 0.39623   N1 -0.886771 0.239043 0.395595   N2 -0.875348 0.235963 0.422003 
+   txt003 
+STRI 
+  V0 -1.40492 0.825153 2.13785   V1 -1.15293 1.15293 2.13785   V2 -1.23593 1.23593 1.87778 
+  N0 -0.783966 0.4547 0.422664   N1 -0.640758 0.640758 0.422917   N2 -0.649156 0.649156 0.396474 
+   txt003 
+STRI 
+  V0 -1.23593 1.23593 1.87778   V1 -1.50606 0.884554 1.87778   V2 -1.40492 0.825153 2.13785 
+  N0 -0.649156 0.649156 0.396474   N1 -0.794229 0.460653 0.39623   N2 -0.783966 0.4547 0.422664 
+   txt003 
+STRI 
+  V0 -1.15293 1.15293 2.13785   V1 -0.825153 1.40492 2.13785   V2 -0.884554 1.50606 1.87778 
+  N0 -0.640758 0.640758 0.422917   N1 -0.4547 0.783966 0.422664   N2 -0.460653 0.794229 0.39623 
+   txt003 
+STRI 
+  V0 -0.884554 1.50606 1.87778   V1 -1.23593 1.23593 1.87778   V2 -1.15293 1.15293 2.13785 
+  N0 -0.460653 0.794229 0.39623   N1 -0.649156 0.649156 0.396474   N2 -0.640758 0.640758 0.422917 
+   txt003 
+STRI 
+  V0 -0.825153 1.40492 2.13785   V1 -0.436032 1.56671 2.13785   V2 -0.467421 1.67949 1.87778 
+  N0 -0.4547 0.783966 0.422664   N1 -0.235963 0.875348 0.422003   N2 -0.239043 0.886771 0.395595 
+   txt003 
+STRI 
+  V0 -0.467421 1.67949 1.87778   V1 -0.884554 1.50606 1.87778   V2 -0.825153 1.40492 2.13785 
+  N0 -0.239043 0.886771 0.395595   N1 -0.460653 0.794229 0.39623   N2 -0.4547 0.783966 0.422664 
+   txt003 
+STRI 
+  V0 -0.436032 1.56671 2.13785   V1 -2.22045e-16 1.62384 2.13785   V2 0 1.74074 1.87778 
+  N0 -0.235963 0.875348 0.422003   N1 2.05843e-16 0.906828 0.4215   N2 1.79998e-16 0.918633 0.395111 
+   txt003 
+STRI 
+  V0 0 1.74074 1.87778   V1 -0.467421 1.67949 1.87778   V2 -0.436032 1.56671 2.13785 
+  N0 1.79998e-16 0.918633 0.395111   N1 -0.239043 0.886771 0.395595   N2 -0.235963 0.875348 0.422003 
+   txt003 
+STRI 
+  V0 -1.74074 0 1.87778   V1 -1.67949 0.467421 1.87778   V2 -1.77888 0.495081 1.62188 
+  N0 -0.918633 0 0.395111   N1 -0.886771 0.239043 0.395595   N2 -0.90527 0.244029 0.347757 
+   txt003 
+STRI 
+  V0 -1.77888 0.495081 1.62188   V1 -1.84375 0 1.62188   V2 -1.74074 0 1.87778 
+  N0 -0.90527 0.244029 0.347757   N1 -0.937749 0 0.347314   N2 -0.918633 0 0.395111 
+   txt003 
+STRI 
+  V0 -1.67949 0.467421 1.87778   V1 -1.50606 0.884554 1.87778   V2 -1.59519 0.936898 1.62188 
+  N0 -0.886771 0.239043 0.395595   N1 -0.794229 0.460653 0.39623   N2 -0.810853 0.470295 0.34834 
+   txt003 
+STRI 
+  V0 -1.59519 0.936898 1.62188   V1 -1.77888 0.495081 1.62188   V2 -1.67949 0.467421 1.87778 
+  N0 -0.810853 0.470295 0.34834   N1 -0.90527 0.244029 0.347757   N2 -0.886771 0.239043 0.395595 
+   txt003 
+STRI 
+  V0 -1.50606 0.884554 1.87778   V1 -1.23593 1.23593 1.87778   V2 -1.30906 1.30906 1.62188 
+  N0 -0.794229 0.460653 0.39623   N1 -0.649156 0.649156 0.396474   N2 -0.662761 0.662761 0.348563 
+   txt003 
+STRI 
+  V0 -1.30906 1.30906 1.62188   V1 -1.59519 0.936898 1.62188   V2 -1.50606 0.884554 1.87778 
+  N0 -0.662761 0.662761 0.348563   N1 -0.810853 0.470295 0.34834   N2 -0.794229 0.460653 0.39623 
+   txt003 
+STRI 
+  V0 -1.23593 1.23593 1.87778   V1 -0.884554 1.50606 1.87778   V2 -0.936898 1.59519 1.62187 
+  N0 -0.649156 0.649156 0.396474   N1 -0.460653 0.794229 0.39623   N2 -0.470295 0.810853 0.34834 
+   txt003 
+STRI 
+  V0 -0.936898 1.59519 1.62187   V1 -1.30906 1.30906 1.62188   V2 -1.23593 1.23593 1.87778 
+  N0 -0.470295 0.810853 0.34834   N1 -0.662761 0.662761 0.348563   N2 -0.649156 0.649156 0.396474 
+   txt003 
+STRI 
+  V0 -0.884554 1.50606 1.87778   V1 -0.467421 1.67949 1.87778   V2 -0.495081 1.77888 1.62187 
+  N0 -0.460653 0.794229 0.39623   N1 -0.239043 0.886771 0.395595   N2 -0.244029 0.90527 0.347757 
+   txt003 
+STRI 
+  V0 -0.495081 1.77888 1.62187   V1 -0.936898 1.59519 1.62187   V2 -0.884554 1.50606 1.87778 
+  N0 -0.244029 0.90527 0.347757   N1 -0.470295 0.810853 0.34834   N2 -0.460653 0.794229 0.39623 
+   txt003 
+STRI 
+  V0 -0.467421 1.67949 1.87778   V1 0 1.74074 1.87778   V2 0 1.84375 1.62187 
+  N0 -0.239043 0.886771 0.395595   N1 1.79998e-16 0.918633 0.395111   N2 1.49384e-16 0.937749 0.347314 
+   txt003 
+STRI 
+  V0 0 1.84375 1.62187   V1 -0.495081 1.77888 1.62187   V2 -0.467421 1.67949 1.87778 
+  N0 1.49384e-16 0.937749 0.347314   N1 -0.244029 0.90527 0.347757   N2 -0.239043 0.886771 0.395595 
+   txt003 
+STRI 
+  V0 -1.84375 0 1.62188   V1 -1.77888 0.495081 1.62188   V2 -1.85816 0.517147 1.37222 
+  N0 -0.937749 0 0.347314   N1 -0.90527 0.244029 0.347757   N2 -0.929073 0.250446 0.272213 
+   txt003 
+STRI 
+  V0 -1.85816 0.517147 1.37222   V1 -1.92593 0 1.37222   V2 -1.84375 0 1.62188 
+  N0 -0.929073 0.250446 0.272213   N1 -0.96234 0 0.271848   N2 -0.937749 0 0.347314 
+   txt003 
+STRI 
+  V0 -1.77888 0.495081 1.62188   V1 -1.59519 0.936898 1.62188   V2 -1.66628 0.978656 1.37222 
+  N0 -0.90527 0.244029 0.347757   N1 -0.810853 0.470295 0.34834   N2 -0.832247 0.482704 0.272693 
+   txt003 
+STRI 
+  V0 -1.66628 0.978656 1.37222   V1 -1.85816 0.517147 1.37222   V2 -1.77888 0.495081 1.62188 
+  N0 -0.832247 0.482704 0.272693   N1 -0.929073 0.250446 0.272213   N2 -0.90527 0.244029 0.347757 
+   txt003 
+STRI 
+  V0 -1.59519 0.936898 1.62188   V1 -1.30906 1.30906 1.62188   V2 -1.36741 1.36741 1.37222 
+  N0 -0.810853 0.470295 0.34834   N1 -0.662761 0.662761 0.348563   N2 -0.680271 0.680271 0.272877 
+   txt003 
+STRI 
+  V0 -1.36741 1.36741 1.37222   V1 -1.66628 0.978656 1.37222   V2 -1.59519 0.936898 1.62188 
+  N0 -0.680271 0.680271 0.272877   N1 -0.832247 0.482704 0.272693   N2 -0.810853 0.470295 0.34834 
+   txt003 
+STRI 
+  V0 -1.30906 1.30906 1.62188   V1 -0.936898 1.59519 1.62187   V2 -0.978656 1.66628 1.37222 
+  N0 -0.662761 0.662761 0.348563   N1 -0.470295 0.810853 0.34834   N2 -0.482704 0.832247 0.272693 
+   txt003 
+STRI 
+  V0 -0.978656 1.66628 1.37222   V1 -1.36741 1.36741 1.37222   V2 -1.30906 1.30906 1.62188 
+  N0 -0.482704 0.832247 0.272693   N1 -0.680271 0.680271 0.272877   N2 -0.662761 0.662761 0.348563 
+   txt003 
+STRI 
+  V0 -0.936898 1.59519 1.62187   V1 -0.495081 1.77888 1.62187   V2 -0.517147 1.85816 1.37222 
+  N0 -0.470295 0.810853 0.34834   N1 -0.244029 0.90527 0.347757   N2 -0.250446 0.929073 0.272213 
+   txt003 
+STRI 
+  V0 -0.517147 1.85816 1.37222   V1 -0.978656 1.66628 1.37222   V2 -0.936898 1.59519 1.62187 
+  N0 -0.250446 0.929073 0.272213   N1 -0.482704 0.832247 0.272693   N2 -0.470295 0.810853 0.34834 
+   txt003 
+STRI 
+  V0 -0.495081 1.77888 1.62187   V1 0 1.84375 1.62187   V2 -2.22045e-16 1.92593 1.37222 
+  N0 -0.244029 0.90527 0.347757   N1 1.49384e-16 0.937749 0.347314   N2 1.11936e-16 0.96234 0.271848 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.92593 1.37222   V1 -0.517147 1.85816 1.37222   V2 -0.495081 1.77888 1.62187 
+  N0 1.11936e-16 0.96234 0.271848   N1 -0.250446 0.929073 0.272213   N2 -0.244029 0.90527 0.347757 
+   txt003 
+STRI 
+  V0 -1.92593 0 1.37222   V1 -1.85816 0.517147 1.37222   V2 -1.91065 0.531754 1.1309 
+  N0 -0.96234 0 0.271848   N1 -0.929073 0.250446 0.272213   N2 -0.953145 0.256935 0.159686 
+   txt003 
+STRI 
+  V0 -1.91065 0.531754 1.1309   V1 -1.98032 0 1.1309   V2 -1.92593 0 1.37222 
+  N0 -0.953145 0.256935 0.159686   N1 -0.987204 0 0.15946   N2 -0.96234 0 0.271848 
+   txt003 
+STRI 
+  V0 -1.85816 0.517147 1.37222   V1 -1.66628 0.978656 1.37222   V2 -1.71335 1.0063 1.1309 
+  N0 -0.929073 0.250446 0.272213   N1 -0.832247 0.482704 0.272693   N2 -0.853889 0.495256 0.159982 
+   txt003 
+STRI 
+  V0 -1.71335 1.0063 1.1309   V1 -1.91065 0.531754 1.1309   V2 -1.85816 0.517147 1.37222 
+  N0 -0.853889 0.495256 0.159982   N1 -0.953145 0.256935 0.159686   N2 -0.929073 0.250446 0.272213 
+   txt003 
+STRI 
+  V0 -1.66628 0.978656 1.37222   V1 -1.36741 1.36741 1.37222   V2 -1.40603 1.40603 1.1309 
+  N0 -0.832247 0.482704 0.272693   N1 -0.680271 0.680271 0.272877   N2 -0.697986 0.697986 0.160096 
+   txt003 
+STRI 
+  V0 -1.40603 1.40603 1.1309   V1 -1.71335 1.0063 1.1309   V2 -1.66628 0.978656 1.37222 
+  N0 -0.697986 0.697986 0.160096   N1 -0.853889 0.495256 0.159982   N2 -0.832247 0.482704 0.272693 
+   txt003 
+STRI 
+  V0 -1.36741 1.36741 1.37222   V1 -0.978656 1.66628 1.37222   V2 -1.0063 1.71335 1.1309 
+  N0 -0.680271 0.680271 0.272877   N1 -0.482704 0.832247 0.272693   N2 -0.495256 0.853889 0.159982 
+   txt003 
+STRI 
+  V0 -1.0063 1.71335 1.1309   V1 -1.40603 1.40603 1.1309   V2 -1.36741 1.36741 1.37222 
+  N0 -0.495256 0.853889 0.159982   N1 -0.697986 0.697986 0.160096   N2 -0.680271 0.680271 0.272877 
+   txt003 
+STRI 
+  V0 -0.978656 1.66628 1.37222   V1 -0.517147 1.85816 1.37222   V2 -0.531754 1.91065 1.1309 
+  N0 -0.482704 0.832247 0.272693   N1 -0.250446 0.929073 0.272213   N2 -0.256935 0.953145 0.159686 
+   txt003 
+STRI 
+  V0 -0.531754 1.91065 1.1309   V1 -1.0063 1.71335 1.1309   V2 -0.978656 1.66628 1.37222 
+  N0 -0.256935 0.953145 0.159686   N1 -0.495256 0.853889 0.159982   N2 -0.482704 0.832247 0.272693 
+   txt003 
+STRI 
+  V0 -0.517147 1.85816 1.37222   V1 -2.22045e-16 1.92593 1.37222   V2 2.22045e-16 1.98032 1.1309 
+  N0 -0.250446 0.929073 0.272213   N1 1.11936e-16 0.96234 0.271848   N2 6.38555e-17 0.987204 0.15946 
+   txt003 
+STRI 
+  V0 2.22045e-16 1.98032 1.1309   V1 -0.531754 1.91065 1.1309   V2 -0.517147 1.85816 1.37222 
+  N0 6.38555e-17 0.987204 0.15946   N1 -0.256935 0.953145 0.159686   N2 -0.250446 0.929073 0.272213 
+   txt003 
+STRI 
+  V0 -1.98032 0 1.1309   V1 -1.91065 0.531754 1.1309   V2 -1.92963 0.537037 0.9 
+  N0 -0.987204 0 0.15946   N1 -0.953145 0.256935 0.159686   N2 -0.965535 0.260275 5.17854e-17 
+   txt003 
+STRI 
+  V0 -1.92963 0.537037 0.9   V1 -2 0 0.9   V2 -1.98032 0 1.1309 
+  N0 -0.965535 0.260275 5.17854e-17   N1 -1 0 0   N2 -0.987204 0 0.15946 
+   txt003 
+STRI 
+  V0 -1.91065 0.531754 1.1309   V1 -1.71335 1.0063 1.1309   V2 -1.73037 1.0163 0.9 
+  N0 -0.953145 0.256935 0.159686   N1 -0.853889 0.495256 0.159982   N2 -0.865031 0.501718 1.36587e-16 
+   txt003 
+STRI 
+  V0 -1.73037 1.0163 0.9   V1 -1.92963 0.537037 0.9   V2 -1.91065 0.531754 1.1309 
+  N0 -0.865031 0.501718 1.36587e-16   N1 -0.965535 0.260275 5.17854e-17   N2 -0.953145 0.256935 0.159686 
+   txt003 
+STRI 
+  V0 -1.71335 1.0063 1.1309   V1 -1.40603 1.40603 1.1309   V2 -1.42 1.42 0.9 
+  N0 -0.853889 0.495256 0.159982   N1 -0.697986 0.697986 0.160096   N2 -0.707107 0.707107 1.74455e-16 
+   txt003 
+STRI 
+  V0 -1.42 1.42 0.9   V1 -1.73037 1.0163 0.9   V2 -1.71335 1.0063 1.1309 
+  N0 -0.707107 0.707107 1.74455e-16   N1 -0.865031 0.501718 1.36587e-16   N2 -0.853889 0.495256 0.159982 
+   txt003 
+STRI 
+  V0 -1.40603 1.40603 1.1309   V1 -1.0063 1.71335 1.1309   V2 -1.0163 1.73037 0.9 
+  N0 -0.697986 0.697986 0.160096   N1 -0.495256 0.853889 0.159982   N2 -0.501718 0.865031 1.36587e-16 
+   txt003 
+STRI 
+  V0 -1.0163 1.73037 0.9   V1 -1.42 1.42 0.9   V2 -1.40603 1.40603 1.1309 
+  N0 -0.501718 0.865031 1.36587e-16   N1 -0.707107 0.707107 1.74455e-16   N2 -0.697986 0.697986 0.160096 
+   txt003 
+STRI 
+  V0 -1.0063 1.71335 1.1309   V1 -0.531754 1.91065 1.1309   V2 -0.537037 1.92963 0.9 
+  N0 -0.495256 0.853889 0.159982   N1 -0.256935 0.953145 0.159686   N2 -0.260275 0.965535 5.17854e-17 
+   txt003 
+STRI 
+  V0 -0.537037 1.92963 0.9   V1 -1.0163 1.73037 0.9   V2 -1.0063 1.71335 1.1309 
+  N0 -0.260275 0.965535 5.17854e-17   N1 -0.501718 0.865031 1.36587e-16   N2 -0.495256 0.853889 0.159982 
+   txt003 
+STRI 
+  V0 -0.531754 1.91065 1.1309   V1 2.22045e-16 1.98032 1.1309   V2 0 2 0.9 
+  N0 -0.256935 0.953145 0.159686   N1 6.38555e-17 0.987204 0.15946   N2 0 1 0 
+   txt003 
+STRI 
+  V0 0 2 0.9   V1 -0.537037 1.92963 0.9   V2 -0.531754 1.91065 1.1309 
+  N0 0 1 0   N1 -0.260275 0.965535 5.17854e-17   N2 -0.256935 0.953145 0.159686 
+   txt003 
+STRI 
+  V0 0 1.5 2.4   V1 0.402778 1.44722 2.4   V2 0.436032 1.56671 2.13785 
+  N0 -0 0.902861 0.429934   N1 0.234929 0.871509 0.430442   N2 0.235963 0.875348 0.422003 
+   txt003 
+STRI 
+  V0 0.436032 1.56671 2.13785   V1 0 1.62384 2.13785   V2 0 1.5 2.4 
+  N0 0.235963 0.875348 0.422003   N1 -0 0.906828 0.4215   N2 -0 0.902861 0.429934 
+   txt003 
+STRI 
+  V0 0.402778 1.44722 2.4   V1 0.762222 1.29778 2.4   V2 0.825153 1.40492 2.13785 
+  N0 0.234929 0.871509 0.430442   N1 0.4527 0.780517 0.43111   N2 0.4547 0.783966 0.422664 
+   txt003 
+STRI 
+  V0 0.825153 1.40492 2.13785   V1 0.436032 1.56671 2.13785   V2 0.402778 1.44722 2.4 
+  N0 0.4547 0.783966 0.422664   N1 0.235963 0.875348 0.422003   N2 0.234929 0.871509 0.430442 
+   txt003 
+STRI 
+  V0 0.762222 1.29778 2.4   V1 1.065 1.065 2.4   V2 1.15293 1.15293 2.13785 
+  N0 0.4527 0.780517 0.43111   N1 0.637936 0.637936 0.431366   N2 0.640758 0.640758 0.422917 
+   txt003 
+STRI 
+  V0 1.15293 1.15293 2.13785   V1 0.825153 1.40492 2.13785   V2 0.762222 1.29778 2.4 
+  N0 0.640758 0.640758 0.422917   N1 0.4547 0.783966 0.422664   N2 0.4527 0.780517 0.43111 
+   txt003 
+STRI 
+  V0 1.065 1.065 2.4   V1 1.29778 0.762222 2.4   V2 1.40492 0.825153 2.13785 
+  N0 0.637936 0.637936 0.431366   N1 0.780517 0.4527 0.43111   N2 0.783966 0.4547 0.422664 
+   txt003 
+STRI 
+  V0 1.40492 0.825153 2.13785   V1 1.15293 1.15293 2.13785   V2 1.065 1.065 2.4 
+  N0 0.783966 0.4547 0.422664   N1 0.640758 0.640758 0.422917   N2 0.637936 0.637936 0.431366 
+   txt003 
+STRI 
+  V0 1.29778 0.762222 2.4   V1 1.44722 0.402778 2.4   V2 1.56671 0.436032 2.13785 
+  N0 0.780517 0.4527 0.43111   N1 0.871509 0.234929 0.430442   N2 0.875348 0.235963 0.422003 
+   txt003 
+STRI 
+  V0 1.56671 0.436032 2.13785   V1 1.40492 0.825153 2.13785   V2 1.29778 0.762222 2.4 
+  N0 0.875348 0.235963 0.422003   N1 0.783966 0.4547 0.422664   N2 0.780517 0.4527 0.43111 
+   txt003 
+STRI 
+  V0 1.44722 0.402778 2.4   V1 1.5 0 2.4   V2 1.62384 2.22045e-16 2.13785 
+  N0 0.871509 0.234929 0.430442   N1 0.902861 -2.27296e-16 0.429934   N2 0.906828 -2.05843e-16 0.4215 
+   txt003 
+STRI 
+  V0 1.62384 2.22045e-16 2.13785   V1 1.56671 0.436032 2.13785   V2 1.44722 0.402778 2.4 
+  N0 0.906828 -2.05843e-16 0.4215   N1 0.875348 0.235963 0.422003   N2 0.871509 0.234929 0.430442 
+   txt003 
+STRI 
+  V0 0 1.62384 2.13785   V1 0.436032 1.56671 2.13785   V2 0.467421 1.67949 1.87778 
+  N0 -0 0.906828 0.4215   N1 0.235963 0.875348 0.422003   N2 0.239043 0.886771 0.395595 
+   txt003 
+STRI 
+  V0 0.467421 1.67949 1.87778   V1 0 1.74074 1.87778   V2 0 1.62384 2.13785 
+  N0 0.239043 0.886771 0.395595   N1 -0 0.918633 0.395111   N2 -0 0.906828 0.4215 
+   txt003 
+STRI 
+  V0 0.436032 1.56671 2.13785   V1 0.825153 1.40492 2.13785   V2 0.884554 1.50606 1.87778 
+  N0 0.235963 0.875348 0.422003   N1 0.4547 0.783966 0.422664   N2 0.460653 0.794229 0.39623 
+   txt003 
+STRI 
+  V0 0.884554 1.50606 1.87778   V1 0.467421 1.67949 1.87778   V2 0.436032 1.56671 2.13785 
+  N0 0.460653 0.794229 0.39623   N1 0.239043 0.886771 0.395595   N2 0.235963 0.875348 0.422003 
+   txt003 
+STRI 
+  V0 0.825153 1.40492 2.13785   V1 1.15293 1.15293 2.13785   V2 1.23593 1.23593 1.87778 
+  N0 0.4547 0.783966 0.422664   N1 0.640758 0.640758 0.422917   N2 0.649156 0.649156 0.396474 
+   txt003 
+STRI 
+  V0 1.23593 1.23593 1.87778   V1 0.884554 1.50606 1.87778   V2 0.825153 1.40492 2.13785 
+  N0 0.649156 0.649156 0.396474   N1 0.460653 0.794229 0.39623   N2 0.4547 0.783966 0.422664 
+   txt003 
+STRI 
+  V0 1.15293 1.15293 2.13785   V1 1.40492 0.825153 2.13785   V2 1.50606 0.884554 1.87778 
+  N0 0.640758 0.640758 0.422917   N1 0.783966 0.4547 0.422664   N2 0.794229 0.460653 0.39623 
+   txt003 
+STRI 
+  V0 1.50606 0.884554 1.87778   V1 1.23593 1.23593 1.87778   V2 1.15293 1.15293 2.13785 
+  N0 0.794229 0.460653 0.39623   N1 0.649156 0.649156 0.396474   N2 0.640758 0.640758 0.422917 
+   txt003 
+STRI 
+  V0 1.40492 0.825153 2.13785   V1 1.56671 0.436032 2.13785   V2 1.67949 0.467421 1.87778 
+  N0 0.783966 0.4547 0.422664   N1 0.875348 0.235963 0.422003   N2 0.886771 0.239043 0.395595 
+   txt003 
+STRI 
+  V0 1.67949 0.467421 1.87778   V1 1.50606 0.884554 1.87778   V2 1.40492 0.825153 2.13785 
+  N0 0.886771 0.239043 0.395595   N1 0.794229 0.460653 0.39623   N2 0.783966 0.4547 0.422664 
+   txt003 
+STRI 
+  V0 1.56671 0.436032 2.13785   V1 1.62384 2.22045e-16 2.13785   V2 1.74074 0 1.87778 
+  N0 0.875348 0.235963 0.422003   N1 0.906828 -2.05843e-16 0.4215   N2 0.918633 -1.79998e-16 0.395111 
+   txt003 
+STRI 
+  V0 1.74074 0 1.87778   V1 1.67949 0.467421 1.87778   V2 1.56671 0.436032 2.13785 
+  N0 0.918633 -1.79998e-16 0.395111   N1 0.886771 0.239043 0.395595   N2 0.875348 0.235963 0.422003 
+   txt003 
+STRI 
+  V0 0 1.74074 1.87778   V1 0.467421 1.67949 1.87778   V2 0.495081 1.77888 1.62188 
+  N0 -0 0.918633 0.395111   N1 0.239043 0.886771 0.395595   N2 0.244029 0.90527 0.347757 
+   txt003 
+STRI 
+  V0 0.495081 1.77888 1.62188   V1 0 1.84375 1.62188   V2 0 1.74074 1.87778 
+  N0 0.244029 0.90527 0.347757   N1 -0 0.937749 0.347314   N2 -0 0.918633 0.395111 
+   txt003 
+STRI 
+  V0 0.467421 1.67949 1.87778   V1 0.884554 1.50606 1.87778   V2 0.936898 1.59519 1.62188 
+  N0 0.239043 0.886771 0.395595   N1 0.460653 0.794229 0.39623   N2 0.470295 0.810853 0.34834 
+   txt003 
+STRI 
+  V0 0.936898 1.59519 1.62188   V1 0.495081 1.77888 1.62188   V2 0.467421 1.67949 1.87778 
+  N0 0.470295 0.810853 0.34834   N1 0.244029 0.90527 0.347757   N2 0.239043 0.886771 0.395595 
+   txt003 
+STRI 
+  V0 0.884554 1.50606 1.87778   V1 1.23593 1.23593 1.87778   V2 1.30906 1.30906 1.62188 
+  N0 0.460653 0.794229 0.39623   N1 0.649156 0.649156 0.396474   N2 0.662761 0.662761 0.348563 
+   txt003 
+STRI 
+  V0 1.30906 1.30906 1.62188   V1 0.936898 1.59519 1.62188   V2 0.884554 1.50606 1.87778 
+  N0 0.662761 0.662761 0.348563   N1 0.470295 0.810853 0.34834   N2 0.460653 0.794229 0.39623 
+   txt003 
+STRI 
+  V0 1.23593 1.23593 1.87778   V1 1.50606 0.884554 1.87778   V2 1.59519 0.936898 1.62187 
+  N0 0.649156 0.649156 0.396474   N1 0.794229 0.460653 0.39623   N2 0.810853 0.470295 0.34834 
+   txt003 
+STRI 
+  V0 1.59519 0.936898 1.62187   V1 1.30906 1.30906 1.62188   V2 1.23593 1.23593 1.87778 
+  N0 0.810853 0.470295 0.34834   N1 0.662761 0.662761 0.348563   N2 0.649156 0.649156 0.396474 
+   txt003 
+STRI 
+  V0 1.50606 0.884554 1.87778   V1 1.67949 0.467421 1.87778   V2 1.77888 0.495081 1.62187 
+  N0 0.794229 0.460653 0.39623   N1 0.886771 0.239043 0.395595   N2 0.90527 0.244029 0.347757 
+   txt003 
+STRI 
+  V0 1.77888 0.495081 1.62187   V1 1.59519 0.936898 1.62187   V2 1.50606 0.884554 1.87778 
+  N0 0.90527 0.244029 0.347757   N1 0.810853 0.470295 0.34834   N2 0.794229 0.460653 0.39623 
+   txt003 
+STRI 
+  V0 1.67949 0.467421 1.87778   V1 1.74074 0 1.87778   V2 1.84375 0 1.62187 
+  N0 0.886771 0.239043 0.395595   N1 0.918633 -1.79998e-16 0.395111   N2 0.937749 -1.49384e-16 0.347314 
+   txt003 
+STRI 
+  V0 1.84375 0 1.62187   V1 1.77888 0.495081 1.62187   V2 1.67949 0.467421 1.87778 
+  N0 0.937749 -1.49384e-16 0.347314   N1 0.90527 0.244029 0.347757   N2 0.886771 0.239043 0.395595 
+   txt003 
+STRI 
+  V0 0 1.84375 1.62188   V1 0.495081 1.77888 1.62188   V2 0.517147 1.85816 1.37222 
+  N0 -0 0.937749 0.347314   N1 0.244029 0.90527 0.347757   N2 0.250446 0.929073 0.272213 
+   txt003 
+STRI 
+  V0 0.517147 1.85816 1.37222   V1 0 1.92593 1.37222   V2 0 1.84375 1.62188 
+  N0 0.250446 0.929073 0.272213   N1 -0 0.96234 0.271848   N2 -0 0.937749 0.347314 
+   txt003 
+STRI 
+  V0 0.495081 1.77888 1.62188   V1 0.936898 1.59519 1.62188   V2 0.978656 1.66628 1.37222 
+  N0 0.244029 0.90527 0.347757   N1 0.470295 0.810853 0.34834   N2 0.482704 0.832247 0.272693 
+   txt003 
+STRI 
+  V0 0.978656 1.66628 1.37222   V1 0.517147 1.85816 1.37222   V2 0.495081 1.77888 1.62188 
+  N0 0.482704 0.832247 0.272693   N1 0.250446 0.929073 0.272213   N2 0.244029 0.90527 0.347757 
+   txt003 
+STRI 
+  V0 0.936898 1.59519 1.62188   V1 1.30906 1.30906 1.62188   V2 1.36741 1.36741 1.37222 
+  N0 0.470295 0.810853 0.34834   N1 0.662761 0.662761 0.348563   N2 0.680271 0.680271 0.272877 
+   txt003 
+STRI 
+  V0 1.36741 1.36741 1.37222   V1 0.978656 1.66628 1.37222   V2 0.936898 1.59519 1.62188 
+  N0 0.680271 0.680271 0.272877   N1 0.482704 0.832247 0.272693   N2 0.470295 0.810853 0.34834 
+   txt003 
+STRI 
+  V0 1.30906 1.30906 1.62188   V1 1.59519 0.936898 1.62187   V2 1.66628 0.978656 1.37222 
+  N0 0.662761 0.662761 0.348563   N1 0.810853 0.470295 0.34834   N2 0.832247 0.482704 0.272693 
+   txt003 
+STRI 
+  V0 1.66628 0.978656 1.37222   V1 1.36741 1.36741 1.37222   V2 1.30906 1.30906 1.62188 
+  N0 0.832247 0.482704 0.272693   N1 0.680271 0.680271 0.272877   N2 0.662761 0.662761 0.348563 
+   txt003 
+STRI 
+  V0 1.59519 0.936898 1.62187   V1 1.77888 0.495081 1.62187   V2 1.85816 0.517147 1.37222 
+  N0 0.810853 0.470295 0.34834   N1 0.90527 0.244029 0.347757   N2 0.929073 0.250446 0.272213 
+   txt003 
+STRI 
+  V0 1.85816 0.517147 1.37222   V1 1.66628 0.978656 1.37222   V2 1.59519 0.936898 1.62187 
+  N0 0.929073 0.250446 0.272213   N1 0.832247 0.482704 0.272693   N2 0.810853 0.470295 0.34834 
+   txt003 
+STRI 
+  V0 1.77888 0.495081 1.62187   V1 1.84375 0 1.62187   V2 1.92593 2.22045e-16 1.37222 
+  N0 0.90527 0.244029 0.347757   N1 0.937749 -1.49384e-16 0.347314   N2 0.96234 -1.11936e-16 0.271848 
+   txt003 
+STRI 
+  V0 1.92593 2.22045e-16 1.37222   V1 1.85816 0.517147 1.37222   V2 1.77888 0.495081 1.62187 
+  N0 0.96234 -1.11936e-16 0.271848   N1 0.929073 0.250446 0.272213   N2 0.90527 0.244029 0.347757 
+   txt003 
+STRI 
+  V0 0 1.92593 1.37222   V1 0.517147 1.85816 1.37222   V2 0.531754 1.91065 1.1309 
+  N0 -0 0.96234 0.271848   N1 0.250446 0.929073 0.272213   N2 0.256935 0.953145 0.159686 
+   txt003 
+STRI 
+  V0 0.531754 1.91065 1.1309   V1 0 1.98032 1.1309   V2 0 1.92593 1.37222 
+  N0 0.256935 0.953145 0.159686   N1 -0 0.987204 0.15946   N2 -0 0.96234 0.271848 
+   txt003 
+STRI 
+  V0 0.517147 1.85816 1.37222   V1 0.978656 1.66628 1.37222   V2 1.0063 1.71335 1.1309 
+  N0 0.250446 0.929073 0.272213   N1 0.482704 0.832247 0.272693   N2 0.495256 0.853889 0.159982 
+   txt003 
+STRI 
+  V0 1.0063 1.71335 1.1309   V1 0.531754 1.91065 1.1309   V2 0.517147 1.85816 1.37222 
+  N0 0.495256 0.853889 0.159982   N1 0.256935 0.953145 0.159686   N2 0.250446 0.929073 0.272213 
+   txt003 
+STRI 
+  V0 0.978656 1.66628 1.37222   V1 1.36741 1.36741 1.37222   V2 1.40603 1.40603 1.1309 
+  N0 0.482704 0.832247 0.272693   N1 0.680271 0.680271 0.272877   N2 0.697986 0.697986 0.160096 
+   txt003 
+STRI 
+  V0 1.40603 1.40603 1.1309   V1 1.0063 1.71335 1.1309   V2 0.978656 1.66628 1.37222 
+  N0 0.697986 0.697986 0.160096   N1 0.495256 0.853889 0.159982   N2 0.482704 0.832247 0.272693 
+   txt003 
+STRI 
+  V0 1.36741 1.36741 1.37222   V1 1.66628 0.978656 1.37222   V2 1.71335 1.0063 1.1309 
+  N0 0.680271 0.680271 0.272877   N1 0.832247 0.482704 0.272693   N2 0.853889 0.495256 0.159982 
+   txt003 
+STRI 
+  V0 1.71335 1.0063 1.1309   V1 1.40603 1.40603 1.1309   V2 1.36741 1.36741 1.37222 
+  N0 0.853889 0.495256 0.159982   N1 0.697986 0.697986 0.160096   N2 0.680271 0.680271 0.272877 
+   txt003 
+STRI 
+  V0 1.66628 0.978656 1.37222   V1 1.85816 0.517147 1.37222   V2 1.91065 0.531754 1.1309 
+  N0 0.832247 0.482704 0.272693   N1 0.929073 0.250446 0.272213   N2 0.953145 0.256935 0.159686 
+   txt003 
+STRI 
+  V0 1.91065 0.531754 1.1309   V1 1.71335 1.0063 1.1309   V2 1.66628 0.978656 1.37222 
+  N0 0.953145 0.256935 0.159686   N1 0.853889 0.495256 0.159982   N2 0.832247 0.482704 0.272693 
+   txt003 
+STRI 
+  V0 1.85816 0.517147 1.37222   V1 1.92593 2.22045e-16 1.37222   V2 1.98032 -2.22045e-16 1.1309 
+  N0 0.929073 0.250446 0.272213   N1 0.96234 -1.11936e-16 0.271848   N2 0.987204 -6.38555e-17 0.15946 
+   txt003 
+STRI 
+  V0 1.98032 -2.22045e-16 1.1309   V1 1.91065 0.531754 1.1309   V2 1.85816 0.517147 1.37222 
+  N0 0.987204 -6.38555e-17 0.15946   N1 0.953145 0.256935 0.159686   N2 0.929073 0.250446 0.272213 
+   txt003 
+STRI 
+  V0 0 1.98032 1.1309   V1 0.531754 1.91065 1.1309   V2 0.537037 1.92963 0.9 
+  N0 -0 0.987204 0.15946   N1 0.256935 0.953145 0.159686   N2 0.260275 0.965535 5.17854e-17 
+   txt003 
+STRI 
+  V0 0.537037 1.92963 0.9   V1 0 2 0.9   V2 0 1.98032 1.1309 
+  N0 0.260275 0.965535 5.17854e-17   N1 -0 1 0   N2 -0 0.987204 0.15946 
+   txt003 
+STRI 
+  V0 0.531754 1.91065 1.1309   V1 1.0063 1.71335 1.1309   V2 1.0163 1.73037 0.9 
+  N0 0.256935 0.953145 0.159686   N1 0.495256 0.853889 0.159982   N2 0.501718 0.865031 1.36587e-16 
+   txt003 
+STRI 
+  V0 1.0163 1.73037 0.9   V1 0.537037 1.92963 0.9   V2 0.531754 1.91065 1.1309 
+  N0 0.501718 0.865031 1.36587e-16   N1 0.260275 0.965535 5.17854e-17   N2 0.256935 0.953145 0.159686 
+   txt003 
+STRI 
+  V0 1.0063 1.71335 1.1309   V1 1.40603 1.40603 1.1309   V2 1.42 1.42 0.9 
+  N0 0.495256 0.853889 0.159982   N1 0.697986 0.697986 0.160096   N2 0.707107 0.707107 1.74455e-16 
+   txt003 
+STRI 
+  V0 1.42 1.42 0.9   V1 1.0163 1.73037 0.9   V2 1.0063 1.71335 1.1309 
+  N0 0.707107 0.707107 1.74455e-16   N1 0.501718 0.865031 1.36587e-16   N2 0.495256 0.853889 0.159982 
+   txt003 
+STRI 
+  V0 1.40603 1.40603 1.1309   V1 1.71335 1.0063 1.1309   V2 1.73037 1.0163 0.9 
+  N0 0.697986 0.697986 0.160096   N1 0.853889 0.495256 0.159982   N2 0.865031 0.501718 1.36587e-16 
+   txt003 
+STRI 
+  V0 1.73037 1.0163 0.9   V1 1.42 1.42 0.9   V2 1.40603 1.40603 1.1309 
+  N0 0.865031 0.501718 1.36587e-16   N1 0.707107 0.707107 1.74455e-16   N2 0.697986 0.697986 0.160096 
+   txt003 
+STRI 
+  V0 1.71335 1.0063 1.1309   V1 1.91065 0.531754 1.1309   V2 1.92963 0.537037 0.9 
+  N0 0.853889 0.495256 0.159982   N1 0.953145 0.256935 0.159686   N2 0.965535 0.260275 5.17854e-17 
+   txt003 
+STRI 
+  V0 1.92963 0.537037 0.9   V1 1.73037 1.0163 0.9   V2 1.71335 1.0063 1.1309 
+  N0 0.965535 0.260275 5.17854e-17   N1 0.865031 0.501718 1.36587e-16   N2 0.853889 0.495256 0.159982 
+   txt003 
+STRI 
+  V0 1.91065 0.531754 1.1309   V1 1.98032 -2.22045e-16 1.1309   V2 2 0 0.9 
+  N0 0.953145 0.256935 0.159686   N1 0.987204 -6.38555e-17 0.15946   N2 1 0 0 
+   txt003 
+STRI 
+  V0 2 0 0.9   V1 1.92963 0.537037 0.9   V2 1.91065 0.531754 1.1309 
+  N0 1 0 0   N1 0.965535 0.260275 5.17854e-17   N2 0.953145 0.256935 0.159686 
+   txt003 
+STRI 
+  V0 2 0 0.9   V1 1.92963 -0.537037 0.9   V2 1.8939 -0.527092 0.693403 
+  N0 1 0 0   N1 0.965535 -0.260275 0   N2 0.905874 -0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 1.8939 -0.527092 0.693403   V1 1.96296 0 0.693403   V2 2 0 0.9 
+  N0 0.905874 -0.244192 -0.346067   N1 0.938373 0 -0.345625   N2 1 0 0 
+   txt003 
+STRI 
+  V0 1.92963 -0.537037 0.9   V1 1.73037 -1.0163 0.9   V2 1.69833 -0.997476 0.693403 
+  N0 0.965535 -0.260275 0   N1 0.865031 -0.501718 0   N2 0.811395 -0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 1.69833 -0.997476 0.693403   V1 1.8939 -0.527092 0.693403   V2 1.92963 -0.537037 0.9 
+  N0 0.811395 -0.470609 -0.346647   N1 0.905874 -0.244192 -0.346067   N2 0.965535 -0.260275 0 
+   txt003 
+STRI 
+  V0 1.73037 -1.0163 0.9   V1 1.42 -1.42 0.9   V2 1.3937 -1.3937 0.693403 
+  N0 0.865031 -0.501718 0   N1 0.707107 -0.707107 0   N2 0.663205 -0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 1.3937 -1.3937 0.693403   V1 1.69833 -0.997476 0.693403   V2 1.73037 -1.0163 0.9 
+  N0 0.663205 -0.663205 -0.34687   N1 0.811395 -0.470609 -0.346647   N2 0.865031 -0.501718 0 
+   txt003 
+STRI 
+  V0 1.42 -1.42 0.9   V1 1.0163 -1.73037 0.9   V2 0.997476 -1.69833 0.693403 
+  N0 0.707107 -0.707107 0   N1 0.501718 -0.865031 0   N2 0.470609 -0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 0.997476 -1.69833 0.693403   V1 1.3937 -1.3937 0.693403   V2 1.42 -1.42 0.9 
+  N0 0.470609 -0.811395 -0.346647   N1 0.663205 -0.663205 -0.34687   N2 0.707107 -0.707107 0 
+   txt003 
+STRI 
+  V0 1.0163 -1.73037 0.9   V1 0.537037 -1.92963 0.9   V2 0.527092 -1.8939 0.693403 
+  N0 0.501718 -0.865031 0   N1 0.260275 -0.965535 0   N2 0.244192 -0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 0.527092 -1.8939 0.693403   V1 0.997476 -1.69833 0.693403   V2 1.0163 -1.73037 0.9 
+  N0 0.244192 -0.905874 -0.346067   N1 0.470609 -0.811395 -0.346647   N2 0.501718 -0.865031 0 
+   txt003 
+STRI 
+  V0 0.537037 -1.92963 0.9   V1 0 -2 0.9   V2 2.22045e-16 -1.96296 0.693403 
+  N0 0.260275 -0.965535 0   N1 -0 -1 -0   N2 -3.49072e-17 -0.938373 -0.345625 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.96296 0.693403   V1 0.527092 -1.8939 0.693403   V2 0.537037 -1.92963 0.9 
+  N0 -3.49072e-17 -0.938373 -0.345625   N1 0.244192 -0.905874 -0.346067   N2 0.260275 -0.965535 0 
+   txt003 
+STRI 
+  V0 1.96296 0 0.693403   V1 1.8939 -0.527092 0.693403   V2 1.80456 -0.502229 0.522222 
+  N0 0.938373 0 -0.345625   N1 0.905874 -0.244192 -0.346067   N2 0.782908 -0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 1.80456 -0.502229 0.522222   V1 1.87037 0 0.522222   V2 1.96296 0 0.693403 
+  N0 0.782908 -0.211045 -0.585248   N1 0.811257 0 -0.58469   N2 0.938373 0 -0.345625 
+   txt003 
+STRI 
+  V0 1.8939 -0.527092 0.693403   V1 1.69833 -0.997476 0.693403   V2 1.61822 -0.950425 0.522222 
+  N0 0.905874 -0.244192 -0.346067   N1 0.811395 -0.470609 -0.346647   N2 0.700957 -0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 1.61822 -0.950425 0.522222   V1 1.80456 -0.502229 0.522222   V2 1.8939 -0.527092 0.693403 
+  N0 0.700957 -0.406555 -0.58598   N1 0.782908 -0.211045 -0.585248   N2 0.905874 -0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 1.69833 -0.997476 0.693403   V1 1.3937 -1.3937 0.693403   V2 1.32796 -1.32796 0.522222 
+  N0 0.811395 -0.470609 -0.346647   N1 0.663205 -0.663205 -0.34687   N2 0.572843 -0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 1.32796 -1.32796 0.522222   V1 1.61822 -0.950425 0.522222   V2 1.69833 -0.997476 0.693403 
+  N0 0.572843 -0.572843 -0.586261   N1 0.700957 -0.406555 -0.58598   N2 0.811395 -0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 1.3937 -1.3937 0.693403   V1 0.997476 -1.69833 0.693403   V2 0.950425 -1.61822 0.522222 
+  N0 0.663205 -0.663205 -0.34687   N1 0.470609 -0.811395 -0.346647   N2 0.406555 -0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 0.950425 -1.61822 0.522222   V1 1.32796 -1.32796 0.522222   V2 1.3937 -1.3937 0.693403 
+  N0 0.406555 -0.700957 -0.58598   N1 0.572843 -0.572843 -0.586261   N2 0.663205 -0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 0.997476 -1.69833 0.693403   V1 0.527092 -1.8939 0.693403   V2 0.502229 -1.80456 0.522222 
+  N0 0.470609 -0.811395 -0.346647   N1 0.244192 -0.905874 -0.346067   N2 0.211045 -0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 0.502229 -1.80456 0.522222   V1 0.950425 -1.61822 0.522222   V2 0.997476 -1.69833 0.693403 
+  N0 0.211045 -0.782908 -0.585248   N1 0.406555 -0.700957 -0.58598   N2 0.470609 -0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 0.527092 -1.8939 0.693403   V1 2.22045e-16 -1.96296 0.693403   V2 2.22045e-16 -1.87037 0.522222 
+  N0 0.244192 -0.905874 -0.346067   N1 -3.49072e-17 -0.938373 -0.345625   N2 -6.19755e-17 -0.811257 -0.58469 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.87037 0.522222   V1 0.502229 -1.80456 0.522222   V2 0.527092 -1.8939 0.693403 
+  N0 -6.19755e-17 -0.811257 -0.58469   N1 0.211045 -0.782908 -0.585248   N2 0.244192 -0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 1.87037 0 0.522222   V1 1.80456 -0.502229 0.522222   V2 1.68843 -0.469907 0.384375 
+  N0 0.811257 0 -0.58469   N1 0.782908 -0.211045 -0.585248   N2 0.673539 -0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 1.68843 -0.469907 0.384375   V1 1.75 0 0.384375   V2 1.87037 0 0.522222 
+  N0 0.673539 -0.181563 -0.716506   N1 0.6981 0 -0.716   N2 0.811257 0 -0.58469 
+   txt003 
+STRI 
+  V0 1.80456 -0.502229 0.522222   V1 1.61822 -0.950425 0.522222   V2 1.51407 -0.889259 0.384375 
+  N0 0.782908 -0.211045 -0.585248   N1 0.700957 -0.406555 -0.58598   N2 0.602839 -0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 1.51407 -0.889259 0.384375   V1 1.68843 -0.469907 0.384375   V2 1.80456 -0.502229 0.522222 
+  N0 0.602839 -0.349647 -0.717169   N1 0.673539 -0.181563 -0.716506   N2 0.782908 -0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 1.61822 -0.950425 0.522222   V1 1.32796 -1.32796 0.522222   V2 1.2425 -1.2425 0.384375 
+  N0 0.700957 -0.406555 -0.58598   N1 0.572843 -0.572843 -0.586261   N2 0.492597 -0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 1.2425 -1.2425 0.384375   V1 1.51407 -0.889259 0.384375   V2 1.61822 -0.950425 0.522222 
+  N0 0.492597 -0.492597 -0.717423   N1 0.602839 -0.349647 -0.717169   N2 0.700957 -0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 1.32796 -1.32796 0.522222   V1 0.950425 -1.61822 0.522222   V2 0.889259 -1.51407 0.384375 
+  N0 0.572843 -0.572843 -0.586261   N1 0.406555 -0.700957 -0.58598   N2 0.349647 -0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 0.889259 -1.51407 0.384375   V1 1.2425 -1.2425 0.384375   V2 1.32796 -1.32796 0.522222 
+  N0 0.349647 -0.602839 -0.717169   N1 0.492597 -0.492597 -0.717423   N2 0.572843 -0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 0.950425 -1.61822 0.522222   V1 0.502229 -1.80456 0.522222   V2 0.469907 -1.68843 0.384375 
+  N0 0.406555 -0.700957 -0.58598   N1 0.211045 -0.782908 -0.585248   N2 0.181563 -0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 0.469907 -1.68843 0.384375   V1 0.889259 -1.51407 0.384375   V2 0.950425 -1.61822 0.522222 
+  N0 0.181563 -0.673539 -0.716506   N1 0.349647 -0.602839 -0.717169   N2 0.406555 -0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 0.502229 -1.80456 0.522222   V1 2.22045e-16 -1.87037 0.522222   V2 2.22045e-16 -1.75 0.384375 
+  N0 0.211045 -0.782908 -0.585248   N1 -6.19755e-17 -0.811257 -0.58469   N2 -8.11143e-17 -0.6981 -0.716 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.75 0.384375   V1 0.469907 -1.68843 0.384375   V2 0.502229 -1.80456 0.522222 
+  N0 -8.11143e-17 -0.6981 -0.716   N1 0.181563 -0.673539 -0.716506   N2 0.211045 -0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 1.75 0 0.384375   V1 1.68843 -0.469907 0.384375   V2 1.57229 -0.437586 0.277778 
+  N0 0.6981 0 -0.716   N1 0.673539 -0.181563 -0.716506   N2 0.61392 -0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 1.57229 -0.437586 0.277778   V1 1.62963 0 0.277778   V2 1.75 0 0.384375 
+  N0 0.61392 -0.165491 -0.771826   N1 0.636383 0 -0.771373   N2 0.6981 0 -0.716 
+   txt003 
+STRI 
+  V0 1.68843 -0.469907 0.384375   V1 1.51407 -0.889259 0.384375   V2 1.40993 -0.828093 0.277778 
+  N0 0.673539 -0.181563 -0.716506   N1 0.602839 -0.349647 -0.717169   N2 0.549392 -0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 1.40993 -0.828093 0.277778   V1 1.57229 -0.437586 0.277778   V2 1.68843 -0.469907 0.384375 
+  N0 0.549392 -0.318647 -0.77242   N1 0.61392 -0.165491 -0.771826   N2 0.673539 -0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 1.51407 -0.889259 0.384375   V1 1.2425 -1.2425 0.384375   V2 1.15704 -1.15704 0.277778 
+  N0 0.602839 -0.349647 -0.717169   N1 0.492597 -0.492597 -0.717423   N2 0.448897 -0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 1.15704 -1.15704 0.277778   V1 1.40993 -0.828093 0.277778   V2 1.51407 -0.889259 0.384375 
+  N0 0.448897 -0.448897 -0.772647   N1 0.549392 -0.318647 -0.77242   N2 0.602839 -0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 1.2425 -1.2425 0.384375   V1 0.889259 -1.51407 0.384375   V2 0.828093 -1.40993 0.277778 
+  N0 0.492597 -0.492597 -0.717423   N1 0.349647 -0.602839 -0.717169   N2 0.318647 -0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 0.828093 -1.40993 0.277778   V1 1.15704 -1.15704 0.277778   V2 1.2425 -1.2425 0.384375 
+  N0 0.318647 -0.549392 -0.77242   N1 0.448897 -0.448897 -0.772647   N2 0.492597 -0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 0.889259 -1.51407 0.384375   V1 0.469907 -1.68843 0.384375   V2 0.437586 -1.57229 0.277778 
+  N0 0.349647 -0.602839 -0.717169   N1 0.181563 -0.673539 -0.716506   N2 0.165491 -0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 0.437586 -1.57229 0.277778   V1 0.828093 -1.40993 0.277778   V2 0.889259 -1.51407 0.384375 
+  N0 0.165491 -0.61392 -0.771826   N1 0.318647 -0.549392 -0.77242   N2 0.349647 -0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 0.469907 -1.68843 0.384375   V1 2.22045e-16 -1.75 0.384375   V2 0 -1.62963 0.277778 
+  N0 0.181563 -0.673539 -0.716506   N1 -8.11143e-17 -0.6981 -0.716   N2 -1.97068e-16 -0.636383 -0.771373 
+   txt003 
+STRI 
+  V0 0 -1.62963 0.277778   V1 0.437586 -1.57229 0.277778   V2 0.469907 -1.68843 0.384375 
+  N0 -1.97068e-16 -0.636383 -0.771373   N1 0.165491 -0.61392 -0.771826   N2 0.181563 -0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 1.62963 0 0.277778   V1 1.57229 -0.437586 0.277778   V2 1.48296 -0.412723 0.200347 
+  N0 0.636383 0 -0.771373   N1 0.61392 -0.165491 -0.771826   N2 0.651276 -0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 1.48296 -0.412723 0.200347   V1 1.53704 0 0.200347   V2 1.62963 0 0.277778 
+  N0 0.651276 -0.175561 -0.738253   N1 0.675056 0 -0.737766   N2 0.636383 0 -0.771373 
+   txt003 
+STRI 
+  V0 1.57229 -0.437586 0.277778   V1 1.40993 -0.828093 0.277778   V2 1.32982 -0.781043 0.200347 
+  N0 0.61392 -0.165491 -0.771826   N1 0.549392 -0.318647 -0.77242   N2 0.582878 -0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 1.32982 -0.781043 0.200347   V1 1.48296 -0.412723 0.200347   V2 1.57229 -0.437586 0.277778 
+  N0 0.582878 -0.338069 -0.738893   N1 0.651276 -0.175561 -0.738253   N2 0.61392 -0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 1.40993 -0.828093 0.277778   V1 1.15704 -1.15704 0.277778   V2 1.0913 -1.0913 0.200347 
+  N0 0.549392 -0.318647 -0.77242   N1 0.448897 -0.448897 -0.772647   N2 0.476275 -0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 1.0913 -1.0913 0.200347   V1 1.32982 -0.781043 0.200347   V2 1.40993 -0.828093 0.277778 
+  N0 0.476275 -0.476275 -0.739137   N1 0.582878 -0.338069 -0.738893   N2 0.549392 -0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 1.15704 -1.15704 0.277778   V1 0.828093 -1.40993 0.277778   V2 0.781043 -1.32982 0.200347 
+  N0 0.448897 -0.448897 -0.772647   N1 0.318647 -0.549392 -0.77242   N2 0.338069 -0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 0.781043 -1.32982 0.200347   V1 1.0913 -1.0913 0.200347   V2 1.15704 -1.15704 0.277778 
+  N0 0.338069 -0.582878 -0.738893   N1 0.476275 -0.476275 -0.739137   N2 0.448897 -0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 0.828093 -1.40993 0.277778   V1 0.437586 -1.57229 0.277778   V2 0.412723 -1.48296 0.200347 
+  N0 0.318647 -0.549392 -0.77242   N1 0.165491 -0.61392 -0.771826   N2 0.175561 -0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 0.412723 -1.48296 0.200347   V1 0.781043 -1.32982 0.200347   V2 0.828093 -1.40993 0.277778 
+  N0 0.175561 -0.651276 -0.738253   N1 0.338069 -0.582878 -0.738893   N2 0.318647 -0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 0.437586 -1.57229 0.277778   V1 0 -1.62963 0.277778   V2 0 -1.53704 0.200347 
+  N0 0.165491 -0.61392 -0.771826   N1 -1.97068e-16 -0.636383 -0.771373   N2 -9.51605e-17 -0.675056 -0.737766 
+   txt003 
+STRI 
+  V0 0 -1.53704 0.200347   V1 0.412723 -1.48296 0.200347   V2 0.437586 -1.57229 0.277778 
+  N0 -9.51605e-17 -0.675056 -0.737766   N1 0.175561 -0.651276 -0.738253   N2 0.165491 -0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 1.53704 0 0.200347   V1 1.48296 -0.412723 0.200347   V2 1.44722 -0.402778 0.15 
+  N0 0.675056 0 -0.737766   N1 0.651276 -0.175561 -0.738253   N2 0.965535 -0.260275 0 
+   txt003 
+STRI 
+  V0 1.44722 -0.402778 0.15   V1 1.5 0 0.15   V2 1.53704 0 0.200347 
+  N0 0.965535 -0.260275 0   N1 1 0 0   N2 0.675056 0 -0.737766 
+   txt003 
+STRI 
+  V0 1.48296 -0.412723 0.200347   V1 1.32982 -0.781043 0.200347   V2 1.29778 -0.762222 0.15 
+  N0 0.651276 -0.175561 -0.738253   N1 0.582878 -0.338069 -0.738893   N2 0.865031 -0.501718 0 
+   txt003 
+STRI 
+  V0 1.29778 -0.762222 0.15   V1 1.44722 -0.402778 0.15   V2 1.48296 -0.412723 0.200347 
+  N0 0.865031 -0.501718 0   N1 0.965535 -0.260275 0   N2 0.651276 -0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 1.32982 -0.781043 0.200347   V1 1.0913 -1.0913 0.200347   V2 1.065 -1.065 0.15 
+  N0 0.582878 -0.338069 -0.738893   N1 0.476275 -0.476275 -0.739137   N2 0.707107 -0.707107 0 
+   txt003 
+STRI 
+  V0 1.065 -1.065 0.15   V1 1.29778 -0.762222 0.15   V2 1.32982 -0.781043 0.200347 
+  N0 0.707107 -0.707107 0   N1 0.865031 -0.501718 0   N2 0.582878 -0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 1.0913 -1.0913 0.200347   V1 0.781043 -1.32982 0.200347   V2 0.762222 -1.29778 0.15 
+  N0 0.476275 -0.476275 -0.739137   N1 0.338069 -0.582878 -0.738893   N2 0.501718 -0.865031 0 
+   txt003 
+STRI 
+  V0 0.762222 -1.29778 0.15   V1 1.065 -1.065 0.15   V2 1.0913 -1.0913 0.200347 
+  N0 0.501718 -0.865031 0   N1 0.707107 -0.707107 0   N2 0.476275 -0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 0.781043 -1.32982 0.200347   V1 0.412723 -1.48296 0.200347   V2 0.402778 -1.44722 0.15 
+  N0 0.338069 -0.582878 -0.738893   N1 0.175561 -0.651276 -0.738253   N2 0.260275 -0.965535 0 
+   txt003 
+STRI 
+  V0 0.402778 -1.44722 0.15   V1 0.762222 -1.29778 0.15   V2 0.781043 -1.32982 0.200347 
+  N0 0.260275 -0.965535 0   N1 0.501718 -0.865031 0   N2 0.338069 -0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 0.412723 -1.48296 0.200347   V1 0 -1.53704 0.200347   V2 0 -1.5 0.15 
+  N0 0.175561 -0.651276 -0.738253   N1 -9.51605e-17 -0.675056 -0.737766   N2 -0 -1 -0 
+   txt003 
+STRI 
+  V0 0 -1.5 0.15   V1 0.402778 -1.44722 0.15   V2 0.412723 -1.48296 0.200347 
+  N0 -0 -1 -0   N1 0.260275 -0.965535 0   N2 0.175561 -0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 0 -2 0.9   V1 -0.537037 -1.92963 0.9   V2 -0.527092 -1.8939 0.693403 
+  N0 -0 -1 -0   N1 -0.260275 -0.965535 -0   N2 -0.244192 -0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 -0.527092 -1.8939 0.693403   V1 0 -1.96296 0.693403   V2 0 -2 0.9 
+  N0 -0.244192 -0.905874 -0.346067   N1 -0 -0.938373 -0.345625   N2 -0 -1 -0 
+   txt003 
+STRI 
+  V0 -0.537037 -1.92963 0.9   V1 -1.0163 -1.73037 0.9   V2 -0.997476 -1.69833 0.693403 
+  N0 -0.260275 -0.965535 -0   N1 -0.501718 -0.865031 -0   N2 -0.470609 -0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 -0.997476 -1.69833 0.693403   V1 -0.527092 -1.8939 0.693403   V2 -0.537037 -1.92963 0.9 
+  N0 -0.470609 -0.811395 -0.346647   N1 -0.244192 -0.905874 -0.346067   N2 -0.260275 -0.965535 -0 
+   txt003 
+STRI 
+  V0 -1.0163 -1.73037 0.9   V1 -1.42 -1.42 0.9   V2 -1.3937 -1.3937 0.693403 
+  N0 -0.501718 -0.865031 -0   N1 -0.707107 -0.707107 -0   N2 -0.663205 -0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 -1.3937 -1.3937 0.693403   V1 -0.997476 -1.69833 0.693403   V2 -1.0163 -1.73037 0.9 
+  N0 -0.663205 -0.663205 -0.34687   N1 -0.470609 -0.811395 -0.346647   N2 -0.501718 -0.865031 -0 
+   txt003 
+STRI 
+  V0 -1.42 -1.42 0.9   V1 -1.73037 -1.0163 0.9   V2 -1.69833 -0.997476 0.693403 
+  N0 -0.707107 -0.707107 -0   N1 -0.865031 -0.501718 -0   N2 -0.811395 -0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 -1.69833 -0.997476 0.693403   V1 -1.3937 -1.3937 0.693403   V2 -1.42 -1.42 0.9 
+  N0 -0.811395 -0.470609 -0.346647   N1 -0.663205 -0.663205 -0.34687   N2 -0.707107 -0.707107 -0 
+   txt003 
+STRI 
+  V0 -1.73037 -1.0163 0.9   V1 -1.92963 -0.537037 0.9   V2 -1.8939 -0.527092 0.693403 
+  N0 -0.865031 -0.501718 -0   N1 -0.965535 -0.260275 -0   N2 -0.905874 -0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 -1.8939 -0.527092 0.693403   V1 -1.69833 -0.997476 0.693403   V2 -1.73037 -1.0163 0.9 
+  N0 -0.905874 -0.244192 -0.346067   N1 -0.811395 -0.470609 -0.346647   N2 -0.865031 -0.501718 -0 
+   txt003 
+STRI 
+  V0 -1.92963 -0.537037 0.9   V1 -2 0 0.9   V2 -1.96296 -2.22045e-16 0.693403 
+  N0 -0.965535 -0.260275 -0   N1 -1 0 0   N2 -0.938373 3.49072e-17 -0.345625 
+   txt003 
+STRI 
+  V0 -1.96296 -2.22045e-16 0.693403   V1 -1.8939 -0.527092 0.693403   V2 -1.92963 -0.537037 0.9 
+  N0 -0.938373 3.49072e-17 -0.345625   N1 -0.905874 -0.244192 -0.346067   N2 -0.965535 -0.260275 -0 
+   txt003 
+STRI 
+  V0 0 -1.96296 0.693403   V1 -0.527092 -1.8939 0.693403   V2 -0.502229 -1.80456 0.522222 
+  N0 -0 -0.938373 -0.345625   N1 -0.244192 -0.905874 -0.346067   N2 -0.211045 -0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 -0.502229 -1.80456 0.522222   V1 0 -1.87037 0.522222   V2 0 -1.96296 0.693403 
+  N0 -0.211045 -0.782908 -0.585248   N1 -0 -0.811257 -0.58469   N2 -0 -0.938373 -0.345625 
+   txt003 
+STRI 
+  V0 -0.527092 -1.8939 0.693403   V1 -0.997476 -1.69833 0.693403   V2 -0.950425 -1.61822 0.522222 
+  N0 -0.244192 -0.905874 -0.346067   N1 -0.470609 -0.811395 -0.346647   N2 -0.406555 -0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 -0.950425 -1.61822 0.522222   V1 -0.502229 -1.80456 0.522222   V2 -0.527092 -1.8939 0.693403 
+  N0 -0.406555 -0.700957 -0.58598   N1 -0.211045 -0.782908 -0.585248   N2 -0.244192 -0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 -0.997476 -1.69833 0.693403   V1 -1.3937 -1.3937 0.693403   V2 -1.32796 -1.32796 0.522222 
+  N0 -0.470609 -0.811395 -0.346647   N1 -0.663205 -0.663205 -0.34687   N2 -0.572843 -0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 -1.32796 -1.32796 0.522222   V1 -0.950425 -1.61822 0.522222   V2 -0.997476 -1.69833 0.693403 
+  N0 -0.572843 -0.572843 -0.586261   N1 -0.406555 -0.700957 -0.58598   N2 -0.470609 -0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 -1.3937 -1.3937 0.693403   V1 -1.69833 -0.997476 0.693403   V2 -1.61822 -0.950425 0.522222 
+  N0 -0.663205 -0.663205 -0.34687   N1 -0.811395 -0.470609 -0.346647   N2 -0.700957 -0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 -1.61822 -0.950425 0.522222   V1 -1.32796 -1.32796 0.522222   V2 -1.3937 -1.3937 0.693403 
+  N0 -0.700957 -0.406555 -0.58598   N1 -0.572843 -0.572843 -0.586261   N2 -0.663205 -0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 -1.69833 -0.997476 0.693403   V1 -1.8939 -0.527092 0.693403   V2 -1.80456 -0.502229 0.522222 
+  N0 -0.811395 -0.470609 -0.346647   N1 -0.905874 -0.244192 -0.346067   N2 -0.782908 -0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 -1.80456 -0.502229 0.522222   V1 -1.61822 -0.950425 0.522222   V2 -1.69833 -0.997476 0.693403 
+  N0 -0.782908 -0.211045 -0.585248   N1 -0.700957 -0.406555 -0.58598   N2 -0.811395 -0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 -1.8939 -0.527092 0.693403   V1 -1.96296 -2.22045e-16 0.693403   V2 -1.87037 -2.22045e-16 0.522222 
+  N0 -0.905874 -0.244192 -0.346067   N1 -0.938373 3.49072e-17 -0.345625   N2 -0.811257 6.19755e-17 -0.58469 
+   txt003 
+STRI 
+  V0 -1.87037 -2.22045e-16 0.522222   V1 -1.80456 -0.502229 0.522222   V2 -1.8939 -0.527092 0.693403 
+  N0 -0.811257 6.19755e-17 -0.58469   N1 -0.782908 -0.211045 -0.585248   N2 -0.905874 -0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 0 -1.87037 0.522222   V1 -0.502229 -1.80456 0.522222   V2 -0.469907 -1.68843 0.384375 
+  N0 -0 -0.811257 -0.58469   N1 -0.211045 -0.782908 -0.585248   N2 -0.181563 -0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 -0.469907 -1.68843 0.384375   V1 0 -1.75 0.384375   V2 0 -1.87037 0.522222 
+  N0 -0.181563 -0.673539 -0.716506   N1 -0 -0.6981 -0.716   N2 -0 -0.811257 -0.58469 
+   txt003 
+STRI 
+  V0 -0.502229 -1.80456 0.522222   V1 -0.950425 -1.61822 0.522222   V2 -0.889259 -1.51407 0.384375 
+  N0 -0.211045 -0.782908 -0.585248   N1 -0.406555 -0.700957 -0.58598   N2 -0.349647 -0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 -0.889259 -1.51407 0.384375   V1 -0.469907 -1.68843 0.384375   V2 -0.502229 -1.80456 0.522222 
+  N0 -0.349647 -0.602839 -0.717169   N1 -0.181563 -0.673539 -0.716506   N2 -0.211045 -0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 -0.950425 -1.61822 0.522222   V1 -1.32796 -1.32796 0.522222   V2 -1.2425 -1.2425 0.384375 
+  N0 -0.406555 -0.700957 -0.58598   N1 -0.572843 -0.572843 -0.586261   N2 -0.492597 -0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 -1.2425 -1.2425 0.384375   V1 -0.889259 -1.51407 0.384375   V2 -0.950425 -1.61822 0.522222 
+  N0 -0.492597 -0.492597 -0.717423   N1 -0.349647 -0.602839 -0.717169   N2 -0.406555 -0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 -1.32796 -1.32796 0.522222   V1 -1.61822 -0.950425 0.522222   V2 -1.51407 -0.889259 0.384375 
+  N0 -0.572843 -0.572843 -0.586261   N1 -0.700957 -0.406555 -0.58598   N2 -0.602839 -0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 -1.51407 -0.889259 0.384375   V1 -1.2425 -1.2425 0.384375   V2 -1.32796 -1.32796 0.522222 
+  N0 -0.602839 -0.349647 -0.717169   N1 -0.492597 -0.492597 -0.717423   N2 -0.572843 -0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 -1.61822 -0.950425 0.522222   V1 -1.80456 -0.502229 0.522222   V2 -1.68843 -0.469907 0.384375 
+  N0 -0.700957 -0.406555 -0.58598   N1 -0.782908 -0.211045 -0.585248   N2 -0.673539 -0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 -1.68843 -0.469907 0.384375   V1 -1.51407 -0.889259 0.384375   V2 -1.61822 -0.950425 0.522222 
+  N0 -0.673539 -0.181563 -0.716506   N1 -0.602839 -0.349647 -0.717169   N2 -0.700957 -0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 -1.80456 -0.502229 0.522222   V1 -1.87037 -2.22045e-16 0.522222   V2 -1.75 -2.22045e-16 0.384375 
+  N0 -0.782908 -0.211045 -0.585248   N1 -0.811257 6.19755e-17 -0.58469   N2 -0.6981 8.11143e-17 -0.716 
+   txt003 
+STRI 
+  V0 -1.75 -2.22045e-16 0.384375   V1 -1.68843 -0.469907 0.384375   V2 -1.80456 -0.502229 0.522222 
+  N0 -0.6981 8.11143e-17 -0.716   N1 -0.673539 -0.181563 -0.716506   N2 -0.782908 -0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 0 -1.75 0.384375   V1 -0.469907 -1.68843 0.384375   V2 -0.437586 -1.57229 0.277778 
+  N0 -0 -0.6981 -0.716   N1 -0.181563 -0.673539 -0.716506   N2 -0.165491 -0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 -0.437586 -1.57229 0.277778   V1 0 -1.62963 0.277778   V2 0 -1.75 0.384375 
+  N0 -0.165491 -0.61392 -0.771826   N1 -0 -0.636383 -0.771373   N2 -0 -0.6981 -0.716 
+   txt003 
+STRI 
+  V0 -0.469907 -1.68843 0.384375   V1 -0.889259 -1.51407 0.384375   V2 -0.828093 -1.40993 0.277778 
+  N0 -0.181563 -0.673539 -0.716506   N1 -0.349647 -0.602839 -0.717169   N2 -0.318647 -0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 -0.828093 -1.40993 0.277778   V1 -0.437586 -1.57229 0.277778   V2 -0.469907 -1.68843 0.384375 
+  N0 -0.318647 -0.549392 -0.77242   N1 -0.165491 -0.61392 -0.771826   N2 -0.181563 -0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 -0.889259 -1.51407 0.384375   V1 -1.2425 -1.2425 0.384375   V2 -1.15704 -1.15704 0.277778 
+  N0 -0.349647 -0.602839 -0.717169   N1 -0.492597 -0.492597 -0.717423   N2 -0.448897 -0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 -1.15704 -1.15704 0.277778   V1 -0.828093 -1.40993 0.277778   V2 -0.889259 -1.51407 0.384375 
+  N0 -0.448897 -0.448897 -0.772647   N1 -0.318647 -0.549392 -0.77242   N2 -0.349647 -0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 -1.2425 -1.2425 0.384375   V1 -1.51407 -0.889259 0.384375   V2 -1.40993 -0.828093 0.277778 
+  N0 -0.492597 -0.492597 -0.717423   N1 -0.602839 -0.349647 -0.717169   N2 -0.549392 -0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 -1.40993 -0.828093 0.277778   V1 -1.15704 -1.15704 0.277778   V2 -1.2425 -1.2425 0.384375 
+  N0 -0.549392 -0.318647 -0.77242   N1 -0.448897 -0.448897 -0.772647   N2 -0.492597 -0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 -1.51407 -0.889259 0.384375   V1 -1.68843 -0.469907 0.384375   V2 -1.57229 -0.437586 0.277778 
+  N0 -0.602839 -0.349647 -0.717169   N1 -0.673539 -0.181563 -0.716506   N2 -0.61392 -0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 -1.57229 -0.437586 0.277778   V1 -1.40993 -0.828093 0.277778   V2 -1.51407 -0.889259 0.384375 
+  N0 -0.61392 -0.165491 -0.771826   N1 -0.549392 -0.318647 -0.77242   N2 -0.602839 -0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 -1.68843 -0.469907 0.384375   V1 -1.75 -2.22045e-16 0.384375   V2 -1.62963 0 0.277778 
+  N0 -0.673539 -0.181563 -0.716506   N1 -0.6981 8.11143e-17 -0.716   N2 -0.636383 1.97068e-16 -0.771373 
+   txt003 
+STRI 
+  V0 -1.62963 0 0.277778   V1 -1.57229 -0.437586 0.277778   V2 -1.68843 -0.469907 0.384375 
+  N0 -0.636383 1.97068e-16 -0.771373   N1 -0.61392 -0.165491 -0.771826   N2 -0.673539 -0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 0 -1.62963 0.277778   V1 -0.437586 -1.57229 0.277778   V2 -0.412723 -1.48296 0.200347 
+  N0 -0 -0.636383 -0.771373   N1 -0.165491 -0.61392 -0.771826   N2 -0.175561 -0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 -0.412723 -1.48296 0.200347   V1 0 -1.53704 0.200347   V2 0 -1.62963 0.277778 
+  N0 -0.175561 -0.651276 -0.738253   N1 -0 -0.675056 -0.737766   N2 -0 -0.636383 -0.771373 
+   txt003 
+STRI 
+  V0 -0.437586 -1.57229 0.277778   V1 -0.828093 -1.40993 0.277778   V2 -0.781043 -1.32982 0.200347 
+  N0 -0.165491 -0.61392 -0.771826   N1 -0.318647 -0.549392 -0.77242   N2 -0.338069 -0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 -0.781043 -1.32982 0.200347   V1 -0.412723 -1.48296 0.200347   V2 -0.437586 -1.57229 0.277778 
+  N0 -0.338069 -0.582878 -0.738893   N1 -0.175561 -0.651276 -0.738253   N2 -0.165491 -0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 -0.828093 -1.40993 0.277778   V1 -1.15704 -1.15704 0.277778   V2 -1.0913 -1.0913 0.200347 
+  N0 -0.318647 -0.549392 -0.77242   N1 -0.448897 -0.448897 -0.772647   N2 -0.476275 -0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 -1.0913 -1.0913 0.200347   V1 -0.781043 -1.32982 0.200347   V2 -0.828093 -1.40993 0.277778 
+  N0 -0.476275 -0.476275 -0.739137   N1 -0.338069 -0.582878 -0.738893   N2 -0.318647 -0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 -1.15704 -1.15704 0.277778   V1 -1.40993 -0.828093 0.277778   V2 -1.32982 -0.781043 0.200347 
+  N0 -0.448897 -0.448897 -0.772647   N1 -0.549392 -0.318647 -0.77242   N2 -0.582878 -0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 -1.32982 -0.781043 0.200347   V1 -1.0913 -1.0913 0.200347   V2 -1.15704 -1.15704 0.277778 
+  N0 -0.582878 -0.338069 -0.738893   N1 -0.476275 -0.476275 -0.739137   N2 -0.448897 -0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 -1.40993 -0.828093 0.277778   V1 -1.57229 -0.437586 0.277778   V2 -1.48296 -0.412723 0.200347 
+  N0 -0.549392 -0.318647 -0.77242   N1 -0.61392 -0.165491 -0.771826   N2 -0.651276 -0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 -1.48296 -0.412723 0.200347   V1 -1.32982 -0.781043 0.200347   V2 -1.40993 -0.828093 0.277778 
+  N0 -0.651276 -0.175561 -0.738253   N1 -0.582878 -0.338069 -0.738893   N2 -0.549392 -0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 -1.57229 -0.437586 0.277778   V1 -1.62963 0 0.277778   V2 -1.53704 0 0.200347 
+  N0 -0.61392 -0.165491 -0.771826   N1 -0.636383 1.97068e-16 -0.771373   N2 -0.675056 9.51605e-17 -0.737766 
+   txt003 
+STRI 
+  V0 -1.53704 0 0.200347   V1 -1.48296 -0.412723 0.200347   V2 -1.57229 -0.437586 0.277778 
+  N0 -0.675056 9.51605e-17 -0.737766   N1 -0.651276 -0.175561 -0.738253   N2 -0.61392 -0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 0 -1.53704 0.200347   V1 -0.412723 -1.48296 0.200347   V2 -0.402778 -1.44722 0.15 
+  N0 -0 -0.675056 -0.737766   N1 -0.175561 -0.651276 -0.738253   N2 -0.260275 -0.965535 -0 
+   txt003 
+STRI 
+  V0 -0.402778 -1.44722 0.15   V1 0 -1.5 0.15   V2 0 -1.53704 0.200347 
+  N0 -0.260275 -0.965535 -0   N1 -0 -1 -0   N2 -0 -0.675056 -0.737766 
+   txt003 
+STRI 
+  V0 -0.412723 -1.48296 0.200347   V1 -0.781043 -1.32982 0.200347   V2 -0.762222 -1.29778 0.15 
+  N0 -0.175561 -0.651276 -0.738253   N1 -0.338069 -0.582878 -0.738893   N2 -0.501718 -0.865031 -0 
+   txt003 
+STRI 
+  V0 -0.762222 -1.29778 0.15   V1 -0.402778 -1.44722 0.15   V2 -0.412723 -1.48296 0.200347 
+  N0 -0.501718 -0.865031 -0   N1 -0.260275 -0.965535 -0   N2 -0.175561 -0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 -0.781043 -1.32982 0.200347   V1 -1.0913 -1.0913 0.200347   V2 -1.065 -1.065 0.15 
+  N0 -0.338069 -0.582878 -0.738893   N1 -0.476275 -0.476275 -0.739137   N2 -0.707107 -0.707107 -0 
+   txt003 
+STRI 
+  V0 -1.065 -1.065 0.15   V1 -0.762222 -1.29778 0.15   V2 -0.781043 -1.32982 0.200347 
+  N0 -0.707107 -0.707107 -0   N1 -0.501718 -0.865031 -0   N2 -0.338069 -0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 -1.0913 -1.0913 0.200347   V1 -1.32982 -0.781043 0.200347   V2 -1.29778 -0.762222 0.15 
+  N0 -0.476275 -0.476275 -0.739137   N1 -0.582878 -0.338069 -0.738893   N2 -0.865031 -0.501718 -0 
+   txt003 
+STRI 
+  V0 -1.29778 -0.762222 0.15   V1 -1.065 -1.065 0.15   V2 -1.0913 -1.0913 0.200347 
+  N0 -0.865031 -0.501718 -0   N1 -0.707107 -0.707107 -0   N2 -0.476275 -0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 -1.32982 -0.781043 0.200347   V1 -1.48296 -0.412723 0.200347   V2 -1.44722 -0.402778 0.15 
+  N0 -0.582878 -0.338069 -0.738893   N1 -0.651276 -0.175561 -0.738253   N2 -0.965535 -0.260275 -0 
+   txt003 
+STRI 
+  V0 -1.44722 -0.402778 0.15   V1 -1.29778 -0.762222 0.15   V2 -1.32982 -0.781043 0.200347 
+  N0 -0.965535 -0.260275 -0   N1 -0.865031 -0.501718 -0   N2 -0.582878 -0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 -1.48296 -0.412723 0.200347   V1 -1.53704 0 0.200347   V2 -1.5 0 0.15 
+  N0 -0.651276 -0.175561 -0.738253   N1 -0.675056 9.51605e-17 -0.737766   N2 -1 0 0 
+   txt003 
+STRI 
+  V0 -1.5 0 0.15   V1 -1.44722 -0.402778 0.15   V2 -1.48296 -0.412723 0.200347 
+  N0 -1 0 0   N1 -0.965535 -0.260275 -0   N2 -0.651276 -0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 -2 0 0.9   V1 -1.92963 0.537037 0.9   V2 -1.8939 0.527092 0.693403 
+  N0 -1 0 0   N1 -0.965535 0.260275 0   N2 -0.905874 0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 -1.8939 0.527092 0.693403   V1 -1.96296 0 0.693403   V2 -2 0 0.9 
+  N0 -0.905874 0.244192 -0.346067   N1 -0.938373 0 -0.345625   N2 -1 0 0 
+   txt003 
+STRI 
+  V0 -1.92963 0.537037 0.9   V1 -1.73037 1.0163 0.9   V2 -1.69833 0.997476 0.693403 
+  N0 -0.965535 0.260275 0   N1 -0.865031 0.501718 0   N2 -0.811395 0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 -1.69833 0.997476 0.693403   V1 -1.8939 0.527092 0.693403   V2 -1.92963 0.537037 0.9 
+  N0 -0.811395 0.470609 -0.346647   N1 -0.905874 0.244192 -0.346067   N2 -0.965535 0.260275 0 
+   txt003 
+STRI 
+  V0 -1.73037 1.0163 0.9   V1 -1.42 1.42 0.9   V2 -1.3937 1.3937 0.693403 
+  N0 -0.865031 0.501718 0   N1 -0.707107 0.707107 0   N2 -0.663205 0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 -1.3937 1.3937 0.693403   V1 -1.69833 0.997476 0.693403   V2 -1.73037 1.0163 0.9 
+  N0 -0.663205 0.663205 -0.34687   N1 -0.811395 0.470609 -0.346647   N2 -0.865031 0.501718 0 
+   txt003 
+STRI 
+  V0 -1.42 1.42 0.9   V1 -1.0163 1.73037 0.9   V2 -0.997476 1.69833 0.693403 
+  N0 -0.707107 0.707107 0   N1 -0.501718 0.865031 0   N2 -0.470609 0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 -0.997476 1.69833 0.693403   V1 -1.3937 1.3937 0.693403   V2 -1.42 1.42 0.9 
+  N0 -0.470609 0.811395 -0.346647   N1 -0.663205 0.663205 -0.34687   N2 -0.707107 0.707107 0 
+   txt003 
+STRI 
+  V0 -1.0163 1.73037 0.9   V1 -0.537037 1.92963 0.9   V2 -0.527092 1.8939 0.693403 
+  N0 -0.501718 0.865031 0   N1 -0.260275 0.965535 0   N2 -0.244192 0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 -0.527092 1.8939 0.693403   V1 -0.997476 1.69833 0.693403   V2 -1.0163 1.73037 0.9 
+  N0 -0.244192 0.905874 -0.346067   N1 -0.470609 0.811395 -0.346647   N2 -0.501718 0.865031 0 
+   txt003 
+STRI 
+  V0 -0.537037 1.92963 0.9   V1 0 2 0.9   V2 -2.22045e-16 1.96296 0.693403 
+  N0 -0.260275 0.965535 0   N1 -0 1 0   N2 3.49072e-17 0.938373 -0.345625 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.96296 0.693403   V1 -0.527092 1.8939 0.693403   V2 -0.537037 1.92963 0.9 
+  N0 3.49072e-17 0.938373 -0.345625   N1 -0.244192 0.905874 -0.346067   N2 -0.260275 0.965535 0 
+   txt003 
+STRI 
+  V0 -1.96296 0 0.693403   V1 -1.8939 0.527092 0.693403   V2 -1.80456 0.502229 0.522222 
+  N0 -0.938373 0 -0.345625   N1 -0.905874 0.244192 -0.346067   N2 -0.782908 0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 -1.80456 0.502229 0.522222   V1 -1.87037 0 0.522222   V2 -1.96296 0 0.693403 
+  N0 -0.782908 0.211045 -0.585248   N1 -0.811257 0 -0.58469   N2 -0.938373 0 -0.345625 
+   txt003 
+STRI 
+  V0 -1.8939 0.527092 0.693403   V1 -1.69833 0.997476 0.693403   V2 -1.61822 0.950425 0.522222 
+  N0 -0.905874 0.244192 -0.346067   N1 -0.811395 0.470609 -0.346647   N2 -0.700957 0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 -1.61822 0.950425 0.522222   V1 -1.80456 0.502229 0.522222   V2 -1.8939 0.527092 0.693403 
+  N0 -0.700957 0.406555 -0.58598   N1 -0.782908 0.211045 -0.585248   N2 -0.905874 0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 -1.69833 0.997476 0.693403   V1 -1.3937 1.3937 0.693403   V2 -1.32796 1.32796 0.522222 
+  N0 -0.811395 0.470609 -0.346647   N1 -0.663205 0.663205 -0.34687   N2 -0.572843 0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 -1.32796 1.32796 0.522222   V1 -1.61822 0.950425 0.522222   V2 -1.69833 0.997476 0.693403 
+  N0 -0.572843 0.572843 -0.586261   N1 -0.700957 0.406555 -0.58598   N2 -0.811395 0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 -1.3937 1.3937 0.693403   V1 -0.997476 1.69833 0.693403   V2 -0.950425 1.61822 0.522222 
+  N0 -0.663205 0.663205 -0.34687   N1 -0.470609 0.811395 -0.346647   N2 -0.406555 0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 -0.950425 1.61822 0.522222   V1 -1.32796 1.32796 0.522222   V2 -1.3937 1.3937 0.693403 
+  N0 -0.406555 0.700957 -0.58598   N1 -0.572843 0.572843 -0.586261   N2 -0.663205 0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 -0.997476 1.69833 0.693403   V1 -0.527092 1.8939 0.693403   V2 -0.502229 1.80456 0.522222 
+  N0 -0.470609 0.811395 -0.346647   N1 -0.244192 0.905874 -0.346067   N2 -0.211045 0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 -0.502229 1.80456 0.522222   V1 -0.950425 1.61822 0.522222   V2 -0.997476 1.69833 0.693403 
+  N0 -0.211045 0.782908 -0.585248   N1 -0.406555 0.700957 -0.58598   N2 -0.470609 0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 -0.527092 1.8939 0.693403   V1 -2.22045e-16 1.96296 0.693403   V2 -2.22045e-16 1.87037 0.522222 
+  N0 -0.244192 0.905874 -0.346067   N1 3.49072e-17 0.938373 -0.345625   N2 6.19755e-17 0.811257 -0.58469 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.87037 0.522222   V1 -0.502229 1.80456 0.522222   V2 -0.527092 1.8939 0.693403 
+  N0 6.19755e-17 0.811257 -0.58469   N1 -0.211045 0.782908 -0.585248   N2 -0.244192 0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 -1.87037 0 0.522222   V1 -1.80456 0.502229 0.522222   V2 -1.68843 0.469907 0.384375 
+  N0 -0.811257 0 -0.58469   N1 -0.782908 0.211045 -0.585248   N2 -0.673539 0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 -1.68843 0.469907 0.384375   V1 -1.75 0 0.384375   V2 -1.87037 0 0.522222 
+  N0 -0.673539 0.181563 -0.716506   N1 -0.6981 0 -0.716   N2 -0.811257 0 -0.58469 
+   txt003 
+STRI 
+  V0 -1.80456 0.502229 0.522222   V1 -1.61822 0.950425 0.522222   V2 -1.51407 0.889259 0.384375 
+  N0 -0.782908 0.211045 -0.585248   N1 -0.700957 0.406555 -0.58598   N2 -0.602839 0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 -1.51407 0.889259 0.384375   V1 -1.68843 0.469907 0.384375   V2 -1.80456 0.502229 0.522222 
+  N0 -0.602839 0.349647 -0.717169   N1 -0.673539 0.181563 -0.716506   N2 -0.782908 0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 -1.61822 0.950425 0.522222   V1 -1.32796 1.32796 0.522222   V2 -1.2425 1.2425 0.384375 
+  N0 -0.700957 0.406555 -0.58598   N1 -0.572843 0.572843 -0.586261   N2 -0.492597 0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 -1.2425 1.2425 0.384375   V1 -1.51407 0.889259 0.384375   V2 -1.61822 0.950425 0.522222 
+  N0 -0.492597 0.492597 -0.717423   N1 -0.602839 0.349647 -0.717169   N2 -0.700957 0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 -1.32796 1.32796 0.522222   V1 -0.950425 1.61822 0.522222   V2 -0.889259 1.51407 0.384375 
+  N0 -0.572843 0.572843 -0.586261   N1 -0.406555 0.700957 -0.58598   N2 -0.349647 0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 -0.889259 1.51407 0.384375   V1 -1.2425 1.2425 0.384375   V2 -1.32796 1.32796 0.522222 
+  N0 -0.349647 0.602839 -0.717169   N1 -0.492597 0.492597 -0.717423   N2 -0.572843 0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 -0.950425 1.61822 0.522222   V1 -0.502229 1.80456 0.522222   V2 -0.469907 1.68843 0.384375 
+  N0 -0.406555 0.700957 -0.58598   N1 -0.211045 0.782908 -0.585248   N2 -0.181563 0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 -0.469907 1.68843 0.384375   V1 -0.889259 1.51407 0.384375   V2 -0.950425 1.61822 0.522222 
+  N0 -0.181563 0.673539 -0.716506   N1 -0.349647 0.602839 -0.717169   N2 -0.406555 0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 -0.502229 1.80456 0.522222   V1 -2.22045e-16 1.87037 0.522222   V2 -2.22045e-16 1.75 0.384375 
+  N0 -0.211045 0.782908 -0.585248   N1 6.19755e-17 0.811257 -0.58469   N2 8.11143e-17 0.6981 -0.716 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.75 0.384375   V1 -0.469907 1.68843 0.384375   V2 -0.502229 1.80456 0.522222 
+  N0 8.11143e-17 0.6981 -0.716   N1 -0.181563 0.673539 -0.716506   N2 -0.211045 0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 -1.75 0 0.384375   V1 -1.68843 0.469907 0.384375   V2 -1.57229 0.437586 0.277778 
+  N0 -0.6981 0 -0.716   N1 -0.673539 0.181563 -0.716506   N2 -0.61392 0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 -1.57229 0.437586 0.277778   V1 -1.62963 0 0.277778   V2 -1.75 0 0.384375 
+  N0 -0.61392 0.165491 -0.771826   N1 -0.636383 0 -0.771373   N2 -0.6981 0 -0.716 
+   txt003 
+STRI 
+  V0 -1.68843 0.469907 0.384375   V1 -1.51407 0.889259 0.384375   V2 -1.40993 0.828093 0.277778 
+  N0 -0.673539 0.181563 -0.716506   N1 -0.602839 0.349647 -0.717169   N2 -0.549392 0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 -1.40993 0.828093 0.277778   V1 -1.57229 0.437586 0.277778   V2 -1.68843 0.469907 0.384375 
+  N0 -0.549392 0.318647 -0.77242   N1 -0.61392 0.165491 -0.771826   N2 -0.673539 0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 -1.51407 0.889259 0.384375   V1 -1.2425 1.2425 0.384375   V2 -1.15704 1.15704 0.277778 
+  N0 -0.602839 0.349647 -0.717169   N1 -0.492597 0.492597 -0.717423   N2 -0.448897 0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 -1.15704 1.15704 0.277778   V1 -1.40993 0.828093 0.277778   V2 -1.51407 0.889259 0.384375 
+  N0 -0.448897 0.448897 -0.772647   N1 -0.549392 0.318647 -0.77242   N2 -0.602839 0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 -1.2425 1.2425 0.384375   V1 -0.889259 1.51407 0.384375   V2 -0.828093 1.40993 0.277778 
+  N0 -0.492597 0.492597 -0.717423   N1 -0.349647 0.602839 -0.717169   N2 -0.318647 0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 -0.828093 1.40993 0.277778   V1 -1.15704 1.15704 0.277778   V2 -1.2425 1.2425 0.384375 
+  N0 -0.318647 0.549392 -0.77242   N1 -0.448897 0.448897 -0.772647   N2 -0.492597 0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 -0.889259 1.51407 0.384375   V1 -0.469907 1.68843 0.384375   V2 -0.437586 1.57229 0.277778 
+  N0 -0.349647 0.602839 -0.717169   N1 -0.181563 0.673539 -0.716506   N2 -0.165491 0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 -0.437586 1.57229 0.277778   V1 -0.828093 1.40993 0.277778   V2 -0.889259 1.51407 0.384375 
+  N0 -0.165491 0.61392 -0.771826   N1 -0.318647 0.549392 -0.77242   N2 -0.349647 0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 -0.469907 1.68843 0.384375   V1 -2.22045e-16 1.75 0.384375   V2 0 1.62963 0.277778 
+  N0 -0.181563 0.673539 -0.716506   N1 8.11143e-17 0.6981 -0.716   N2 1.97068e-16 0.636383 -0.771373 
+   txt003 
+STRI 
+  V0 0 1.62963 0.277778   V1 -0.437586 1.57229 0.277778   V2 -0.469907 1.68843 0.384375 
+  N0 1.97068e-16 0.636383 -0.771373   N1 -0.165491 0.61392 -0.771826   N2 -0.181563 0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 -1.62963 0 0.277778   V1 -1.57229 0.437586 0.277778   V2 -1.48296 0.412723 0.200347 
+  N0 -0.636383 0 -0.771373   N1 -0.61392 0.165491 -0.771826   N2 -0.651276 0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 -1.48296 0.412723 0.200347   V1 -1.53704 0 0.200347   V2 -1.62963 0 0.277778 
+  N0 -0.651276 0.175561 -0.738253   N1 -0.675056 0 -0.737766   N2 -0.636383 0 -0.771373 
+   txt003 
+STRI 
+  V0 -1.57229 0.437586 0.277778   V1 -1.40993 0.828093 0.277778   V2 -1.32982 0.781043 0.200347 
+  N0 -0.61392 0.165491 -0.771826   N1 -0.549392 0.318647 -0.77242   N2 -0.582878 0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 -1.32982 0.781043 0.200347   V1 -1.48296 0.412723 0.200347   V2 -1.57229 0.437586 0.277778 
+  N0 -0.582878 0.338069 -0.738893   N1 -0.651276 0.175561 -0.738253   N2 -0.61392 0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 -1.40993 0.828093 0.277778   V1 -1.15704 1.15704 0.277778   V2 -1.0913 1.0913 0.200347 
+  N0 -0.549392 0.318647 -0.77242   N1 -0.448897 0.448897 -0.772647   N2 -0.476275 0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 -1.0913 1.0913 0.200347   V1 -1.32982 0.781043 0.200347   V2 -1.40993 0.828093 0.277778 
+  N0 -0.476275 0.476275 -0.739137   N1 -0.582878 0.338069 -0.738893   N2 -0.549392 0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 -1.15704 1.15704 0.277778   V1 -0.828093 1.40993 0.277778   V2 -0.781043 1.32982 0.200347 
+  N0 -0.448897 0.448897 -0.772647   N1 -0.318647 0.549392 -0.77242   N2 -0.338069 0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 -0.781043 1.32982 0.200347   V1 -1.0913 1.0913 0.200347   V2 -1.15704 1.15704 0.277778 
+  N0 -0.338069 0.582878 -0.738893   N1 -0.476275 0.476275 -0.739137   N2 -0.448897 0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 -0.828093 1.40993 0.277778   V1 -0.437586 1.57229 0.277778   V2 -0.412723 1.48296 0.200347 
+  N0 -0.318647 0.549392 -0.77242   N1 -0.165491 0.61392 -0.771826   N2 -0.175561 0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 -0.412723 1.48296 0.200347   V1 -0.781043 1.32982 0.200347   V2 -0.828093 1.40993 0.277778 
+  N0 -0.175561 0.651276 -0.738253   N1 -0.338069 0.582878 -0.738893   N2 -0.318647 0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 -0.437586 1.57229 0.277778   V1 0 1.62963 0.277778   V2 0 1.53704 0.200347 
+  N0 -0.165491 0.61392 -0.771826   N1 1.97068e-16 0.636383 -0.771373   N2 9.51605e-17 0.675056 -0.737766 
+   txt003 
+STRI 
+  V0 0 1.53704 0.200347   V1 -0.412723 1.48296 0.200347   V2 -0.437586 1.57229 0.277778 
+  N0 9.51605e-17 0.675056 -0.737766   N1 -0.175561 0.651276 -0.738253   N2 -0.165491 0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 -1.53704 0 0.200347   V1 -1.48296 0.412723 0.200347   V2 -1.44722 0.402778 0.15 
+  N0 -0.675056 0 -0.737766   N1 -0.651276 0.175561 -0.738253   N2 -0.965535 0.260275 0 
+   txt003 
+STRI 
+  V0 -1.44722 0.402778 0.15   V1 -1.5 0 0.15   V2 -1.53704 0 0.200347 
+  N0 -0.965535 0.260275 0   N1 -1 0 0   N2 -0.675056 0 -0.737766 
+   txt003 
+STRI 
+  V0 -1.48296 0.412723 0.200347   V1 -1.32982 0.781043 0.200347   V2 -1.29778 0.762222 0.15 
+  N0 -0.651276 0.175561 -0.738253   N1 -0.582878 0.338069 -0.738893   N2 -0.865031 0.501718 0 
+   txt003 
+STRI 
+  V0 -1.29778 0.762222 0.15   V1 -1.44722 0.402778 0.15   V2 -1.48296 0.412723 0.200347 
+  N0 -0.865031 0.501718 0   N1 -0.965535 0.260275 0   N2 -0.651276 0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 -1.32982 0.781043 0.200347   V1 -1.0913 1.0913 0.200347   V2 -1.065 1.065 0.15 
+  N0 -0.582878 0.338069 -0.738893   N1 -0.476275 0.476275 -0.739137   N2 -0.707107 0.707107 0 
+   txt003 
+STRI 
+  V0 -1.065 1.065 0.15   V1 -1.29778 0.762222 0.15   V2 -1.32982 0.781043 0.200347 
+  N0 -0.707107 0.707107 0   N1 -0.865031 0.501718 0   N2 -0.582878 0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 -1.0913 1.0913 0.200347   V1 -0.781043 1.32982 0.200347   V2 -0.762222 1.29778 0.15 
+  N0 -0.476275 0.476275 -0.739137   N1 -0.338069 0.582878 -0.738893   N2 -0.501718 0.865031 0 
+   txt003 
+STRI 
+  V0 -0.762222 1.29778 0.15   V1 -1.065 1.065 0.15   V2 -1.0913 1.0913 0.200347 
+  N0 -0.501718 0.865031 0   N1 -0.707107 0.707107 0   N2 -0.476275 0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 -0.781043 1.32982 0.200347   V1 -0.412723 1.48296 0.200347   V2 -0.402778 1.44722 0.15 
+  N0 -0.338069 0.582878 -0.738893   N1 -0.175561 0.651276 -0.738253   N2 -0.260275 0.965535 0 
+   txt003 
+STRI 
+  V0 -0.402778 1.44722 0.15   V1 -0.762222 1.29778 0.15   V2 -0.781043 1.32982 0.200347 
+  N0 -0.260275 0.965535 0   N1 -0.501718 0.865031 0   N2 -0.338069 0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 -0.412723 1.48296 0.200347   V1 0 1.53704 0.200347   V2 0 1.5 0.15 
+  N0 -0.175561 0.651276 -0.738253   N1 9.51605e-17 0.675056 -0.737766   N2 -0 1 0 
+   txt003 
+STRI 
+  V0 0 1.5 0.15   V1 -0.402778 1.44722 0.15   V2 -0.412723 1.48296 0.200347 
+  N0 -0 1 0   N1 -0.260275 0.965535 0   N2 -0.175561 0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 0 2 0.9   V1 0.537037 1.92963 0.9   V2 0.527092 1.8939 0.693403 
+  N0 -0 1 0   N1 0.260275 0.965535 0   N2 0.244192 0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 0.527092 1.8939 0.693403   V1 0 1.96296 0.693403   V2 0 2 0.9 
+  N0 0.244192 0.905874 -0.346067   N1 0 0.938373 -0.345625   N2 -0 1 0 
+   txt003 
+STRI 
+  V0 0.537037 1.92963 0.9   V1 1.0163 1.73037 0.9   V2 0.997476 1.69833 0.693403 
+  N0 0.260275 0.965535 0   N1 0.501718 0.865031 0   N2 0.470609 0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 0.997476 1.69833 0.693403   V1 0.527092 1.8939 0.693403   V2 0.537037 1.92963 0.9 
+  N0 0.470609 0.811395 -0.346647   N1 0.244192 0.905874 -0.346067   N2 0.260275 0.965535 0 
+   txt003 
+STRI 
+  V0 1.0163 1.73037 0.9   V1 1.42 1.42 0.9   V2 1.3937 1.3937 0.693403 
+  N0 0.501718 0.865031 0   N1 0.707107 0.707107 0   N2 0.663205 0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 1.3937 1.3937 0.693403   V1 0.997476 1.69833 0.693403   V2 1.0163 1.73037 0.9 
+  N0 0.663205 0.663205 -0.34687   N1 0.470609 0.811395 -0.346647   N2 0.501718 0.865031 0 
+   txt003 
+STRI 
+  V0 1.42 1.42 0.9   V1 1.73037 1.0163 0.9   V2 1.69833 0.997476 0.693403 
+  N0 0.707107 0.707107 0   N1 0.865031 0.501718 0   N2 0.811395 0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 1.69833 0.997476 0.693403   V1 1.3937 1.3937 0.693403   V2 1.42 1.42 0.9 
+  N0 0.811395 0.470609 -0.346647   N1 0.663205 0.663205 -0.34687   N2 0.707107 0.707107 0 
+   txt003 
+STRI 
+  V0 1.73037 1.0163 0.9   V1 1.92963 0.537037 0.9   V2 1.8939 0.527092 0.693403 
+  N0 0.865031 0.501718 0   N1 0.965535 0.260275 0   N2 0.905874 0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 1.8939 0.527092 0.693403   V1 1.69833 0.997476 0.693403   V2 1.73037 1.0163 0.9 
+  N0 0.905874 0.244192 -0.346067   N1 0.811395 0.470609 -0.346647   N2 0.865031 0.501718 0 
+   txt003 
+STRI 
+  V0 1.92963 0.537037 0.9   V1 2 0 0.9   V2 1.96296 2.22045e-16 0.693403 
+  N0 0.965535 0.260275 0   N1 1 0 0   N2 0.938373 -3.49072e-17 -0.345625 
+   txt003 
+STRI 
+  V0 1.96296 2.22045e-16 0.693403   V1 1.8939 0.527092 0.693403   V2 1.92963 0.537037 0.9 
+  N0 0.938373 -3.49072e-17 -0.345625   N1 0.905874 0.244192 -0.346067   N2 0.965535 0.260275 0 
+   txt003 
+STRI 
+  V0 0 1.96296 0.693403   V1 0.527092 1.8939 0.693403   V2 0.502229 1.80456 0.522222 
+  N0 0 0.938373 -0.345625   N1 0.244192 0.905874 -0.346067   N2 0.211045 0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 0.502229 1.80456 0.522222   V1 0 1.87037 0.522222   V2 0 1.96296 0.693403 
+  N0 0.211045 0.782908 -0.585248   N1 0 0.811257 -0.58469   N2 0 0.938373 -0.345625 
+   txt003 
+STRI 
+  V0 0.527092 1.8939 0.693403   V1 0.997476 1.69833 0.693403   V2 0.950425 1.61822 0.522222 
+  N0 0.244192 0.905874 -0.346067   N1 0.470609 0.811395 -0.346647   N2 0.406555 0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 0.950425 1.61822 0.522222   V1 0.502229 1.80456 0.522222   V2 0.527092 1.8939 0.693403 
+  N0 0.406555 0.700957 -0.58598   N1 0.211045 0.782908 -0.585248   N2 0.244192 0.905874 -0.346067 
+   txt003 
+STRI 
+  V0 0.997476 1.69833 0.693403   V1 1.3937 1.3937 0.693403   V2 1.32796 1.32796 0.522222 
+  N0 0.470609 0.811395 -0.346647   N1 0.663205 0.663205 -0.34687   N2 0.572843 0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 1.32796 1.32796 0.522222   V1 0.950425 1.61822 0.522222   V2 0.997476 1.69833 0.693403 
+  N0 0.572843 0.572843 -0.586261   N1 0.406555 0.700957 -0.58598   N2 0.470609 0.811395 -0.346647 
+   txt003 
+STRI 
+  V0 1.3937 1.3937 0.693403   V1 1.69833 0.997476 0.693403   V2 1.61822 0.950425 0.522222 
+  N0 0.663205 0.663205 -0.34687   N1 0.811395 0.470609 -0.346647   N2 0.700957 0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 1.61822 0.950425 0.522222   V1 1.32796 1.32796 0.522222   V2 1.3937 1.3937 0.693403 
+  N0 0.700957 0.406555 -0.58598   N1 0.572843 0.572843 -0.586261   N2 0.663205 0.663205 -0.34687 
+   txt003 
+STRI 
+  V0 1.69833 0.997476 0.693403   V1 1.8939 0.527092 0.693403   V2 1.80456 0.502229 0.522222 
+  N0 0.811395 0.470609 -0.346647   N1 0.905874 0.244192 -0.346067   N2 0.782908 0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 1.80456 0.502229 0.522222   V1 1.61822 0.950425 0.522222   V2 1.69833 0.997476 0.693403 
+  N0 0.782908 0.211045 -0.585248   N1 0.700957 0.406555 -0.58598   N2 0.811395 0.470609 -0.346647 
+   txt003 
+STRI 
+  V0 1.8939 0.527092 0.693403   V1 1.96296 2.22045e-16 0.693403   V2 1.87037 2.22045e-16 0.522222 
+  N0 0.905874 0.244192 -0.346067   N1 0.938373 -3.49072e-17 -0.345625   N2 0.811257 -6.19755e-17 -0.58469 
+   txt003 
+STRI 
+  V0 1.87037 2.22045e-16 0.522222   V1 1.80456 0.502229 0.522222   V2 1.8939 0.527092 0.693403 
+  N0 0.811257 -6.19755e-17 -0.58469   N1 0.782908 0.211045 -0.585248   N2 0.905874 0.244192 -0.346067 
+   txt003 
+STRI 
+  V0 0 1.87037 0.522222   V1 0.502229 1.80456 0.522222   V2 0.469907 1.68843 0.384375 
+  N0 0 0.811257 -0.58469   N1 0.211045 0.782908 -0.585248   N2 0.181563 0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 0.469907 1.68843 0.384375   V1 0 1.75 0.384375   V2 0 1.87037 0.522222 
+  N0 0.181563 0.673539 -0.716506   N1 0 0.6981 -0.716   N2 0 0.811257 -0.58469 
+   txt003 
+STRI 
+  V0 0.502229 1.80456 0.522222   V1 0.950425 1.61822 0.522222   V2 0.889259 1.51407 0.384375 
+  N0 0.211045 0.782908 -0.585248   N1 0.406555 0.700957 -0.58598   N2 0.349647 0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 0.889259 1.51407 0.384375   V1 0.469907 1.68843 0.384375   V2 0.502229 1.80456 0.522222 
+  N0 0.349647 0.602839 -0.717169   N1 0.181563 0.673539 -0.716506   N2 0.211045 0.782908 -0.585248 
+   txt003 
+STRI 
+  V0 0.950425 1.61822 0.522222   V1 1.32796 1.32796 0.522222   V2 1.2425 1.2425 0.384375 
+  N0 0.406555 0.700957 -0.58598   N1 0.572843 0.572843 -0.586261   N2 0.492597 0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 1.2425 1.2425 0.384375   V1 0.889259 1.51407 0.384375   V2 0.950425 1.61822 0.522222 
+  N0 0.492597 0.492597 -0.717423   N1 0.349647 0.602839 -0.717169   N2 0.406555 0.700957 -0.58598 
+   txt003 
+STRI 
+  V0 1.32796 1.32796 0.522222   V1 1.61822 0.950425 0.522222   V2 1.51407 0.889259 0.384375 
+  N0 0.572843 0.572843 -0.586261   N1 0.700957 0.406555 -0.58598   N2 0.602839 0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 1.51407 0.889259 0.384375   V1 1.2425 1.2425 0.384375   V2 1.32796 1.32796 0.522222 
+  N0 0.602839 0.349647 -0.717169   N1 0.492597 0.492597 -0.717423   N2 0.572843 0.572843 -0.586261 
+   txt003 
+STRI 
+  V0 1.61822 0.950425 0.522222   V1 1.80456 0.502229 0.522222   V2 1.68843 0.469907 0.384375 
+  N0 0.700957 0.406555 -0.58598   N1 0.782908 0.211045 -0.585248   N2 0.673539 0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 1.68843 0.469907 0.384375   V1 1.51407 0.889259 0.384375   V2 1.61822 0.950425 0.522222 
+  N0 0.673539 0.181563 -0.716506   N1 0.602839 0.349647 -0.717169   N2 0.700957 0.406555 -0.58598 
+   txt003 
+STRI 
+  V0 1.80456 0.502229 0.522222   V1 1.87037 2.22045e-16 0.522222   V2 1.75 2.22045e-16 0.384375 
+  N0 0.782908 0.211045 -0.585248   N1 0.811257 -6.19755e-17 -0.58469   N2 0.6981 -8.11143e-17 -0.716 
+   txt003 
+STRI 
+  V0 1.75 2.22045e-16 0.384375   V1 1.68843 0.469907 0.384375   V2 1.80456 0.502229 0.522222 
+  N0 0.6981 -8.11143e-17 -0.716   N1 0.673539 0.181563 -0.716506   N2 0.782908 0.211045 -0.585248 
+   txt003 
+STRI 
+  V0 0 1.75 0.384375   V1 0.469907 1.68843 0.384375   V2 0.437586 1.57229 0.277778 
+  N0 0 0.6981 -0.716   N1 0.181563 0.673539 -0.716506   N2 0.165491 0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 0.437586 1.57229 0.277778   V1 0 1.62963 0.277778   V2 0 1.75 0.384375 
+  N0 0.165491 0.61392 -0.771826   N1 0 0.636383 -0.771373   N2 0 0.6981 -0.716 
+   txt003 
+STRI 
+  V0 0.469907 1.68843 0.384375   V1 0.889259 1.51407 0.384375   V2 0.828093 1.40993 0.277778 
+  N0 0.181563 0.673539 -0.716506   N1 0.349647 0.602839 -0.717169   N2 0.318647 0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 0.828093 1.40993 0.277778   V1 0.437586 1.57229 0.277778   V2 0.469907 1.68843 0.384375 
+  N0 0.318647 0.549392 -0.77242   N1 0.165491 0.61392 -0.771826   N2 0.181563 0.673539 -0.716506 
+   txt003 
+STRI 
+  V0 0.889259 1.51407 0.384375   V1 1.2425 1.2425 0.384375   V2 1.15704 1.15704 0.277778 
+  N0 0.349647 0.602839 -0.717169   N1 0.492597 0.492597 -0.717423   N2 0.448897 0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 1.15704 1.15704 0.277778   V1 0.828093 1.40993 0.277778   V2 0.889259 1.51407 0.384375 
+  N0 0.448897 0.448897 -0.772647   N1 0.318647 0.549392 -0.77242   N2 0.349647 0.602839 -0.717169 
+   txt003 
+STRI 
+  V0 1.2425 1.2425 0.384375   V1 1.51407 0.889259 0.384375   V2 1.40993 0.828093 0.277778 
+  N0 0.492597 0.492597 -0.717423   N1 0.602839 0.349647 -0.717169   N2 0.549392 0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 1.40993 0.828093 0.277778   V1 1.15704 1.15704 0.277778   V2 1.2425 1.2425 0.384375 
+  N0 0.549392 0.318647 -0.77242   N1 0.448897 0.448897 -0.772647   N2 0.492597 0.492597 -0.717423 
+   txt003 
+STRI 
+  V0 1.51407 0.889259 0.384375   V1 1.68843 0.469907 0.384375   V2 1.57229 0.437586 0.277778 
+  N0 0.602839 0.349647 -0.717169   N1 0.673539 0.181563 -0.716506   N2 0.61392 0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 1.57229 0.437586 0.277778   V1 1.40993 0.828093 0.277778   V2 1.51407 0.889259 0.384375 
+  N0 0.61392 0.165491 -0.771826   N1 0.549392 0.318647 -0.77242   N2 0.602839 0.349647 -0.717169 
+   txt003 
+STRI 
+  V0 1.68843 0.469907 0.384375   V1 1.75 2.22045e-16 0.384375   V2 1.62963 0 0.277778 
+  N0 0.673539 0.181563 -0.716506   N1 0.6981 -8.11143e-17 -0.716   N2 0.636383 -1.97068e-16 -0.771373 
+   txt003 
+STRI 
+  V0 1.62963 0 0.277778   V1 1.57229 0.437586 0.277778   V2 1.68843 0.469907 0.384375 
+  N0 0.636383 -1.97068e-16 -0.771373   N1 0.61392 0.165491 -0.771826   N2 0.673539 0.181563 -0.716506 
+   txt003 
+STRI 
+  V0 0 1.62963 0.277778   V1 0.437586 1.57229 0.277778   V2 0.412723 1.48296 0.200347 
+  N0 0 0.636383 -0.771373   N1 0.165491 0.61392 -0.771826   N2 0.175561 0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 0.412723 1.48296 0.200347   V1 0 1.53704 0.200347   V2 0 1.62963 0.277778 
+  N0 0.175561 0.651276 -0.738253   N1 0 0.675056 -0.737766   N2 0 0.636383 -0.771373 
+   txt003 
+STRI 
+  V0 0.437586 1.57229 0.277778   V1 0.828093 1.40993 0.277778   V2 0.781043 1.32982 0.200347 
+  N0 0.165491 0.61392 -0.771826   N1 0.318647 0.549392 -0.77242   N2 0.338069 0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 0.781043 1.32982 0.200347   V1 0.412723 1.48296 0.200347   V2 0.437586 1.57229 0.277778 
+  N0 0.338069 0.582878 -0.738893   N1 0.175561 0.651276 -0.738253   N2 0.165491 0.61392 -0.771826 
+   txt003 
+STRI 
+  V0 0.828093 1.40993 0.277778   V1 1.15704 1.15704 0.277778   V2 1.0913 1.0913 0.200347 
+  N0 0.318647 0.549392 -0.77242   N1 0.448897 0.448897 -0.772647   N2 0.476275 0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 1.0913 1.0913 0.200347   V1 0.781043 1.32982 0.200347   V2 0.828093 1.40993 0.277778 
+  N0 0.476275 0.476275 -0.739137   N1 0.338069 0.582878 -0.738893   N2 0.318647 0.549392 -0.77242 
+   txt003 
+STRI 
+  V0 1.15704 1.15704 0.277778   V1 1.40993 0.828093 0.277778   V2 1.32982 0.781043 0.200347 
+  N0 0.448897 0.448897 -0.772647   N1 0.549392 0.318647 -0.77242   N2 0.582878 0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 1.32982 0.781043 0.200347   V1 1.0913 1.0913 0.200347   V2 1.15704 1.15704 0.277778 
+  N0 0.582878 0.338069 -0.738893   N1 0.476275 0.476275 -0.739137   N2 0.448897 0.448897 -0.772647 
+   txt003 
+STRI 
+  V0 1.40993 0.828093 0.277778   V1 1.57229 0.437586 0.277778   V2 1.48296 0.412723 0.200347 
+  N0 0.549392 0.318647 -0.77242   N1 0.61392 0.165491 -0.771826   N2 0.651276 0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 1.48296 0.412723 0.200347   V1 1.32982 0.781043 0.200347   V2 1.40993 0.828093 0.277778 
+  N0 0.651276 0.175561 -0.738253   N1 0.582878 0.338069 -0.738893   N2 0.549392 0.318647 -0.77242 
+   txt003 
+STRI 
+  V0 1.57229 0.437586 0.277778   V1 1.62963 0 0.277778   V2 1.53704 0 0.200347 
+  N0 0.61392 0.165491 -0.771826   N1 0.636383 -1.97068e-16 -0.771373   N2 0.675056 -9.51605e-17 -0.737766 
+   txt003 
+STRI 
+  V0 1.53704 0 0.200347   V1 1.48296 0.412723 0.200347   V2 1.57229 0.437586 0.277778 
+  N0 0.675056 -9.51605e-17 -0.737766   N1 0.651276 0.175561 -0.738253   N2 0.61392 0.165491 -0.771826 
+   txt003 
+STRI 
+  V0 0 1.53704 0.200347   V1 0.412723 1.48296 0.200347   V2 0.402778 1.44722 0.15 
+  N0 0 0.675056 -0.737766   N1 0.175561 0.651276 -0.738253   N2 0.260275 0.965535 0 
+   txt003 
+STRI 
+  V0 0.402778 1.44722 0.15   V1 0 1.5 0.15   V2 0 1.53704 0.200347 
+  N0 0.260275 0.965535 0   N1 -0 1 0   N2 0 0.675056 -0.737766 
+   txt003 
+STRI 
+  V0 0.412723 1.48296 0.200347   V1 0.781043 1.32982 0.200347   V2 0.762222 1.29778 0.15 
+  N0 0.175561 0.651276 -0.738253   N1 0.338069 0.582878 -0.738893   N2 0.501718 0.865031 0 
+   txt003 
+STRI 
+  V0 0.762222 1.29778 0.15   V1 0.402778 1.44722 0.15   V2 0.412723 1.48296 0.200347 
+  N0 0.501718 0.865031 0   N1 0.260275 0.965535 0   N2 0.175561 0.651276 -0.738253 
+   txt003 
+STRI 
+  V0 0.781043 1.32982 0.200347   V1 1.0913 1.0913 0.200347   V2 1.065 1.065 0.15 
+  N0 0.338069 0.582878 -0.738893   N1 0.476275 0.476275 -0.739137   N2 0.707107 0.707107 0 
+   txt003 
+STRI 
+  V0 1.065 1.065 0.15   V1 0.762222 1.29778 0.15   V2 0.781043 1.32982 0.200347 
+  N0 0.707107 0.707107 0   N1 0.501718 0.865031 0   N2 0.338069 0.582878 -0.738893 
+   txt003 
+STRI 
+  V0 1.0913 1.0913 0.200347   V1 1.32982 0.781043 0.200347   V2 1.29778 0.762222 0.15 
+  N0 0.476275 0.476275 -0.739137   N1 0.582878 0.338069 -0.738893   N2 0.865031 0.501718 0 
+   txt003 
+STRI 
+  V0 1.29778 0.762222 0.15   V1 1.065 1.065 0.15   V2 1.0913 1.0913 0.200347 
+  N0 0.865031 0.501718 0   N1 0.707107 0.707107 0   N2 0.476275 0.476275 -0.739137 
+   txt003 
+STRI 
+  V0 1.32982 0.781043 0.200347   V1 1.48296 0.412723 0.200347   V2 1.44722 0.402778 0.15 
+  N0 0.582878 0.338069 -0.738893   N1 0.651276 0.175561 -0.738253   N2 0.965535 0.260275 0 
+   txt003 
+STRI 
+  V0 1.44722 0.402778 0.15   V1 1.29778 0.762222 0.15   V2 1.32982 0.781043 0.200347 
+  N0 0.965535 0.260275 0   N1 0.865031 0.501718 0   N2 0.582878 0.338069 -0.738893 
+   txt003 
+STRI 
+  V0 1.48296 0.412723 0.200347   V1 1.53704 0 0.200347   V2 1.5 0 0.15 
+  N0 0.651276 0.175561 -0.738253   N1 0.675056 -9.51605e-17 -0.737766   N2 1 0 0 
+   txt003 
+STRI 
+  V0 1.5 0 0.15   V1 1.44722 0.402778 0.15   V2 1.48296 0.412723 0.200347 
+  N0 1 0 0   N1 0.965535 0.260275 0   N2 0.651276 0.175561 -0.738253 
+   txt003 
+STRI 
+  V0 -1.6 0 2.025   V1 -1.59259 -0.125 2.04167   V2 -1.92704 -0.125 2.04055 
+  N0 -0 -0 -1   N1 -0 -0.298275 -0.95448   N2 0.0104256 -0.297446 -0.954682 
+   txt003 
+STRI 
+  V0 -1.92704 -0.125 2.04055   V1 -1.92454 0 2.02396   V2 -1.6 0 2.025 
+  N0 0.0104256 -0.297446 -0.954682   N1 0.0104645 0 -0.999945   N2 -0 -0 -1 
+   txt003 
+STRI 
+  V0 -1.59259 -0.125 2.04167   V1 -1.57407 -0.2 2.08333   V2 -1.9333 -0.2 2.08202 
+  N0 -0 -0.298275 -0.95448   N1 -0 -0.707107 -0.707107   N2 0.00846382 -0.706077 -0.708084 
+   txt003 
+STRI 
+  V0 -1.9333 -0.2 2.08202   V1 -1.92704 -0.125 2.04055   V2 -1.59259 -0.125 2.04167 
+  N0 0.00846382 -0.706077 -0.708084   N1 0.0104256 -0.297446 -0.954682   N2 -0 -0.298275 -0.95448 
+   txt003 
+STRI 
+  V0 -1.57407 -0.2 2.08333   V1 -1.55 -0.225 2.1375   V2 -1.94144 -0.225 2.13594 
+  N0 -0 -0.707107 -0.707107   N1 0 -1 0   N2 -1.61364e-18 -1 -2.43505e-19 
+   txt003 
+STRI 
+  V0 -1.94144 -0.225 2.13594   V1 -1.9333 -0.2 2.08202   V2 -1.57407 -0.2 2.08333 
+  N0 -1.61364e-18 -1 -2.43505e-19   N1 0.00846382 -0.706077 -0.708084   N2 -0 -0.707107 -0.707107 
+   txt003 
+STRI 
+  V0 -1.55 -0.225 2.1375   V1 -1.52593 -0.2 2.19167   V2 -1.94957 -0.2 2.18985 
+  N0 0 -1 0   N1 0 -0.707107 0.707107   N2 -0.00997559 -0.706181 0.707961 
+   txt003 
+STRI 
+  V0 -1.94957 -0.2 2.18985   V1 -1.94144 -0.225 2.13594   V2 -1.55 -0.225 2.1375 
+  N0 -0.00997559 -0.706181 0.707961   N1 -1.61364e-18 -1 -2.43505e-19   N2 0 -1 0 
+   txt003 
+STRI 
+  V0 -1.52593 -0.2 2.19167   V1 -1.50741 -0.125 2.23333   V2 -1.95583 -0.125 2.23133 
+  N0 0 -0.707107 0.707107   N1 0 -0.298275 0.95448   N2 -0.0140841 -0.297589 0.95459 
+   txt003 
+STRI 
+  V0 -1.95583 -0.125 2.23133   V1 -1.94957 -0.2 2.18985   V2 -1.52593 -0.2 2.19167 
+  N0 -0.0140841 -0.297589 0.95459   N1 -0.00997559 -0.706181 0.707961   N2 0 -0.707107 0.707107 
+   txt003 
+STRI 
+  V0 -1.50741 -0.125 2.23333   V1 -1.5 0 2.25   V2 -1.95833 0 2.24792 
+  N0 0 -0.298275 0.95448   N1 0 1.97373e-15 1   N2 -0.0149983 1.96426e-15 0.999888 
+   txt003 
+STRI 
+  V0 -1.95833 0 2.24792   V1 -1.95583 -0.125 2.23133   V2 -1.50741 -0.125 2.23333 
+  N0 -0.0149983 1.96426e-15 0.999888   N1 -0.0140841 -0.297589 0.95459   N2 0 -0.298275 0.95448 
+   txt003 
+STRI 
+  V0 -1.92454 0 2.02396   V1 -1.92704 -0.125 2.04055   V2 -2.20645 -0.125 2.03272 
+  N0 0.0104645 0 -0.999945   N1 0.0104256 -0.297446 -0.954682   N2 0.0510028 -0.296675 -0.953616 
+   txt003 
+STRI 
+  V0 -2.20645 -0.125 2.03272   V1 -2.1963 0 2.01667   V2 -1.92454 0 2.02396 
+  N0 0.0510028 -0.296675 -0.953616   N1 0.0510696 0 -0.998695   N2 0.0104645 0 -0.999945 
+   txt003 
+STRI 
+  V0 -1.92704 -0.125 2.04055   V1 -1.9333 -0.2 2.08202   V2 -2.23182 -0.2 2.07284 
+  N0 0.0104256 -0.297446 -0.954682   N1 0.00846382 -0.706077 -0.708084   N2 0.0415994 -0.706072 -0.706918 
+   txt003 
+STRI 
+  V0 -2.23182 -0.2 2.07284   V1 -2.20645 -0.125 2.03272   V2 -1.92704 -0.125 2.04055 
+  N0 0.0415994 -0.706072 -0.706918   N1 0.0510028 -0.296675 -0.953616   N2 0.0104256 -0.297446 -0.954682 
+   txt003 
+STRI 
+  V0 -1.9333 -0.2 2.08202   V1 -1.94144 -0.225 2.13594   V2 -2.26481 -0.225 2.125 
+  N0 0.00846382 -0.706077 -0.708084   N1 -1.61364e-18 -1 -2.43505e-19   N2 -7.69071e-18 -1 -4.86421e-18 
+   txt003 
+STRI 
+  V0 -2.26481 -0.225 2.125   V1 -2.23182 -0.2 2.07284   V2 -1.9333 -0.2 2.08202 
+  N0 -7.69071e-18 -1 -4.86421e-18   N1 0.0415994 -0.706072 -0.706918   N2 0.00846382 -0.706077 -0.708084 
+   txt003 
+STRI 
+  V0 -1.94144 -0.225 2.13594   V1 -1.94957 -0.2 2.18985   V2 -2.29781 -0.2 2.17716 
+  N0 -1.61364e-18 -1 -2.43505e-19   N1 -0.00997559 -0.706181 0.707961   N2 -0.0493858 -0.708239 0.704243 
+   txt003 
+STRI 
+  V0 -2.29781 -0.2 2.17716   V1 -2.26481 -0.225 2.125   V2 -1.94144 -0.225 2.13594 
+  N0 -0.0493858 -0.708239 0.704243   N1 -7.69071e-18 -1 -4.86421e-18   N2 -1.61364e-18 -1 -2.43505e-19 
+   txt003 
+STRI 
+  V0 -1.94957 -0.2 2.18985   V1 -1.95583 -0.125 2.23133   V2 -2.32318 -0.125 2.21728 
+  N0 -0.00997559 -0.706181 0.707961   N1 -0.0140841 -0.297589 0.95459   N2 -0.0701017 -0.299663 0.951466 
+   txt003 
+STRI 
+  V0 -2.32318 -0.125 2.21728   V1 -2.29781 -0.2 2.17716   V2 -1.94957 -0.2 2.18985 
+  N0 -0.0701017 -0.299663 0.951466   N1 -0.0493858 -0.708239 0.704243   N2 -0.00997559 -0.706181 0.707961 
+   txt003 
+STRI 
+  V0 -1.95583 -0.125 2.23133   V1 -1.95833 0 2.24792   V2 -2.33333 0 2.23333 
+  N0 -0.0140841 -0.297589 0.95459   N1 -0.0149983 1.96426e-15 0.999888   N2 -0.0747899 1.66682e-15 0.997199 
+   txt003 
+STRI 
+  V0 -2.33333 0 2.23333   V1 -2.32318 -0.125 2.21728   V2 -1.95583 -0.125 2.23133 
+  N0 -0.0747899 1.66682e-15 0.997199   N1 -0.0701017 -0.299663 0.951466   N2 -0.0140841 -0.297589 0.95459 
+   txt003 
+STRI 
+  V0 -2.1963 0 2.01667   V1 -2.20645 -0.125 2.03272   V2 -2.42824 -0.125 2.01146 
+  N0 0.0510696 0 -0.998695   N1 0.0510028 -0.296675 -0.953616   N2 0.148104 -0.301279 -0.941964 
+   txt003 
+STRI 
+  V0 -2.42824 -0.125 2.01146   V1 -2.4125 0 1.99687   V2 -2.1963 0 2.01667 
+  N0 0.148104 -0.301279 -0.941964   N1 0.14834 0 -0.988936   N2 0.0510696 0 -0.998695 
+   txt003 
+STRI 
+  V0 -2.20645 -0.125 2.03272   V1 -2.23182 -0.2 2.07284   V2 -2.46759 -0.2 2.04792 
+  N0 0.0510028 -0.296675 -0.953616   N1 0.0415994 -0.706072 -0.706918   N2 0.119688 -0.715388 -0.6884 
+   txt003 
+STRI 
+  V0 -2.46759 -0.2 2.04792   V1 -2.42824 -0.125 2.01146   V2 -2.20645 -0.125 2.03272 
+  N0 0.119688 -0.715388 -0.6884   N1 0.148104 -0.301279 -0.941964   N2 0.0510028 -0.296675 -0.953616 
+   txt003 
+STRI 
+  V0 -2.23182 -0.2 2.07284   V1 -2.26481 -0.225 2.125   V2 -2.51875 -0.225 2.09531 
+  N0 0.0415994 -0.706072 -0.706918   N1 -7.69071e-18 -1 -4.86421e-18   N2 -1.96915e-17 -1 -2.12543e-17 
+   txt003 
+STRI 
+  V0 -2.51875 -0.225 2.09531   V1 -2.46759 -0.2 2.04792   V2 -2.23182 -0.2 2.07284 
+  N0 -1.96915e-17 -1 -2.12543e-17   N1 0.119688 -0.715388 -0.6884   N2 0.0415994 -0.706072 -0.706918 
+   txt003 
+STRI 
+  V0 -2.26481 -0.225 2.125   V1 -2.29781 -0.2 2.17716   V2 -2.56991 -0.2 2.14271 
+  N0 -7.69071e-18 -1 -4.86421e-18   N1 -0.0493858 -0.708239 0.704243   N2 -0.141352 -0.724137 0.675015 
+   txt003 
+STRI 
+  V0 -2.56991 -0.2 2.14271   V1 -2.51875 -0.225 2.09531   V2 -2.26481 -0.225 2.125 
+  N0 -0.141352 -0.724137 0.675015   N1 -1.96915e-17 -1 -2.12543e-17   N2 -7.69071e-18 -1 -4.86421e-18 
+   txt003 
+STRI 
+  V0 -2.29781 -0.2 2.17716   V1 -2.32318 -0.125 2.21728   V2 -2.60926 -0.125 2.17917 
+  N0 -0.0493858 -0.708239 0.704243   N1 -0.0701017 -0.299663 0.951466   N2 -0.204668 -0.313917 0.927128 
+   txt003 
+STRI 
+  V0 -2.60926 -0.125 2.17917   V1 -2.56991 -0.2 2.14271   V2 -2.29781 -0.2 2.17716 
+  N0 -0.204668 -0.313917 0.927128   N1 -0.141352 -0.724137 0.675015   N2 -0.0493858 -0.708239 0.704243 
+   txt003 
+STRI 
+  V0 -2.32318 -0.125 2.21728   V1 -2.33333 0 2.23333   V2 -2.625 0 2.19375 
+  N0 -0.0701017 -0.299663 0.951466   N1 -0.0747899 1.66682e-15 0.997199   N2 -0.219512 1.81728e-15 0.97561 
+   txt003 
+STRI 
+  V0 -2.625 0 2.19375   V1 -2.60926 -0.125 2.17917   V2 -2.32318 -0.125 2.21728 
+  N0 -0.219512 1.81728e-15 0.97561   N1 -0.204668 -0.313917 0.927128   N2 -0.0701017 -0.299663 0.951466 
+   txt003 
+STRI 
+  V0 -2.4125 0 1.99687   V1 -2.42824 -0.125 2.01146   V2 -2.58985 -0.125 1.97006 
+  N0 0.14834 0 -0.988936   N1 0.148104 -0.301279 -0.941964   N2 0.359682 -0.323804 -0.875089 
+   txt003 
+STRI 
+  V0 -2.58985 -0.125 1.97006   V1 -2.57037 0 1.95833   V2 -2.4125 0 1.99687 
+  N0 0.359682 -0.323804 -0.875089   N1 0.364399 0 -0.931243   N2 0.14834 0 -0.988936 
+   txt003 
+STRI 
+  V0 -2.42824 -0.125 2.01146   V1 -2.46759 -0.2 2.04792   V2 -2.63855 -0.2 1.99938 
+  N0 0.148104 -0.301279 -0.941964   N1 0.119688 -0.715388 -0.6884   N2 0.275915 -0.747596 -0.604128 
+   txt003 
+STRI 
+  V0 -2.63855 -0.2 1.99938   V1 -2.58985 -0.125 1.97006   V2 -2.42824 -0.125 2.01146 
+  N0 0.275915 -0.747596 -0.604128   N1 0.359682 -0.323804 -0.875089   N2 0.148104 -0.301279 -0.941964 
+   txt003 
+STRI 
+  V0 -2.46759 -0.2 2.04792   V1 -2.51875 -0.225 2.09531   V2 -2.70185 -0.225 2.0375 
+  N0 0.119688 -0.715388 -0.6884   N1 -1.96915e-17 -1 -2.12543e-17   N2 -3.40413e-17 -1 -5.65364e-17 
+   txt003 
+STRI 
+  V0 -2.70185 -0.225 2.0375   V1 -2.63855 -0.2 1.99938   V2 -2.46759 -0.2 2.04792 
+  N0 -3.40413e-17 -1 -5.65364e-17   N1 0.275915 -0.747596 -0.604128   N2 0.119688 -0.715388 -0.6884 
+   txt003 
+STRI 
+  V0 -2.51875 -0.225 2.09531   V1 -2.56991 -0.2 2.14271   V2 -2.76516 -0.2 2.07562 
+  N0 -1.96915e-17 -1 -2.12543e-17   N1 -0.141352 -0.724137 0.675015   N2 -0.313659 -0.763673 0.564289 
+   txt003 
+STRI 
+  V0 -2.76516 -0.2 2.07562   V1 -2.70185 -0.225 2.0375   V2 -2.51875 -0.225 2.09531 
+  N0 -0.313659 -0.763673 0.564289   N1 -3.40413e-17 -1 -5.65364e-17   N2 -1.96915e-17 -1 -2.12543e-17 
+   txt003 
+STRI 
+  V0 -2.56991 -0.2 2.14271   V1 -2.60926 -0.125 2.17917   V2 -2.81385 -0.125 2.10494 
+  N0 -0.141352 -0.724137 0.675015   N1 -0.204668 -0.313917 0.927128   N2 -0.474611 -0.350859 0.807244 
+   txt003 
+STRI 
+  V0 -2.81385 -0.125 2.10494   V1 -2.76516 -0.2 2.07562   V2 -2.56991 -0.2 2.14271 
+  N0 -0.474611 -0.350859 0.807244   N1 -0.313659 -0.763673 0.564289   N2 -0.141352 -0.724137 0.675015 
+   txt003 
+STRI 
+  V0 -2.60926 -0.125 2.17917   V1 -2.625 0 2.19375   V2 -2.83333 0 2.11667 
+  N0 -0.204668 -0.313917 0.927128   N1 -0.219512 1.81728e-15 0.97561   N2 -0.514496 1.6713e-15 0.857493 
+   txt003 
+STRI 
+  V0 -2.83333 0 2.11667   V1 -2.81385 -0.125 2.10494   V2 -2.60926 -0.125 2.17917 
+  N0 -0.514496 1.6713e-15 0.857493   N1 -0.474611 -0.350859 0.807244   N2 -0.204668 -0.313917 0.927128 
+   txt003 
+STRI 
+  V0 -2.57037 0 1.95833   V1 -2.58985 -0.125 1.97006   V2 -2.6887 -0.125 1.90181 
+  N0 0.364399 0 -0.931243   N1 0.359682 -0.323804 -0.875089   N2 0.727532 -0.37029 -0.577566 
+   txt003 
+STRI 
+  V0 -2.6887 -0.125 1.90181   V1 -2.66713 0 1.89479   V2 -2.57037 0 1.95833 
+  N0 0.727532 -0.37029 -0.577566   N1 0.767382 0 -0.64119   N2 0.364399 0 -0.931243 
+   txt003 
+STRI 
+  V0 -2.58985 -0.125 1.97006   V1 -2.63855 -0.2 1.99938   V2 -2.74263 -0.2 1.91937 
+  N0 0.359682 -0.323804 -0.875089   N1 0.275915 -0.747596 -0.604128   N2 0.497152 -0.792374 -0.35353 
+   txt003 
+STRI 
+  V0 -2.74263 -0.2 1.91937   V1 -2.6887 -0.125 1.90181   V2 -2.58985 -0.125 1.97006 
+  N0 0.497152 -0.792374 -0.35353   N1 0.727532 -0.37029 -0.577566   N2 0.359682 -0.323804 -0.875089 
+   txt003 
+STRI 
+  V0 -2.63855 -0.2 1.99938   V1 -2.70185 -0.225 2.0375   V2 -2.81273 -0.225 1.94219 
+  N0 0.275915 -0.747596 -0.604128   N1 -3.40413e-17 -1 -5.65364e-17   N2 -3.3285e-17 -1 -1.02253e-16 
+   txt003 
+STRI 
+  V0 -2.81273 -0.225 1.94219   V1 -2.74263 -0.2 1.91937   V2 -2.63855 -0.2 1.99938 
+  N0 -3.3285e-17 -1 -1.02253e-16   N1 0.497152 -0.792374 -0.35353   N2 0.275915 -0.747596 -0.604128 
+   txt003 
+STRI 
+  V0 -2.70185 -0.225 2.0375   V1 -2.76516 -0.2 2.07562   V2 -2.88284 -0.2 1.96501 
+  N0 -3.40413e-17 -1 -5.65364e-17   N1 -0.313659 -0.763673 0.564289   N2 -0.519903 -0.799556 0.300684 
+   txt003 
+STRI 
+  V0 -2.88284 -0.2 1.96501   V1 -2.81273 -0.225 1.94219   V2 -2.70185 -0.225 2.0375 
+  N0 -0.519903 -0.799556 0.300684   N1 -3.3285e-17 -1 -1.02253e-16   N2 -3.40413e-17 -1 -5.65364e-17 
+   txt003 
+STRI 
+  V0 -2.76516 -0.2 2.07562   V1 -2.81385 -0.125 2.10494   V2 -2.93676 -0.125 1.98256 
+  N0 -0.313659 -0.763673 0.564289   N1 -0.474611 -0.350859 0.807244   N2 -0.810111 -0.385772 0.441476 
+   txt003 
+STRI 
+  V0 -2.93676 -0.125 1.98256   V1 -2.88284 -0.2 1.96501   V2 -2.76516 -0.2 2.07562 
+  N0 -0.810111 -0.385772 0.441476   N1 -0.519903 -0.799556 0.300684   N2 -0.313659 -0.763673 0.564289 
+   txt003 
+STRI 
+  V0 -2.81385 -0.125 2.10494   V1 -2.83333 0 2.11667   V2 -2.95833 0 1.98958 
+  N0 -0.474611 -0.350859 0.807244   N1 -0.514496 1.6713e-15 0.857493   N2 -0.882353 9.28814e-16 0.470588 
+   txt003 
+STRI 
+  V0 -2.95833 0 1.98958   V1 -2.93676 -0.125 1.98256   V2 -2.81385 -0.125 2.10494 
+  N0 -0.882353 9.28814e-16 0.470588   N1 -0.810111 -0.385772 0.441476   N2 -0.474611 -0.350859 0.807244 
+   txt003 
+STRI 
+  V0 -2.66713 0 1.89479   V1 -2.6887 -0.125 1.90181   V2 -2.72222 -0.125 1.8 
+  N0 0.767382 0 -0.64119   N1 0.727532 -0.37029 -0.577566   N2 0.923077 -0.384615 2.05733e-15 
+   txt003 
+STRI 
+  V0 -2.72222 -0.125 1.8   V1 -2.7 0 1.8   V2 -2.66713 0 1.89479 
+  N0 0.923077 -0.384615 2.05733e-15   N1 1 0 2.63164e-15   N2 0.767382 0 -0.64119 
+   txt003 
+STRI 
+  V0 -2.6887 -0.125 1.90181   V1 -2.74263 -0.2 1.91937   V2 -2.77778 -0.2 1.8 
+  N0 0.727532 -0.37029 -0.577566   N1 0.497152 -0.792374 -0.35353   N2 0.6 -0.8 8.24322e-16 
+   txt003 
+STRI 
+  V0 -2.77778 -0.2 1.8   V1 -2.72222 -0.125 1.8   V2 -2.6887 -0.125 1.90181 
+  N0 0.6 -0.8 8.24322e-16   N1 0.923077 -0.384615 2.05733e-15   N2 0.727532 -0.37029 -0.577566 
+   txt003 
+STRI 
+  V0 -2.74263 -0.2 1.91937   V1 -2.81273 -0.225 1.94219   V2 -2.85 -0.225 1.8 
+  N0 0.497152 -0.792374 -0.35353   N1 -3.3285e-17 -1 -1.02253e-16   N2 -1.21738e-31 -1 -1.23358e-16 
+   txt003 
+STRI 
+  V0 -2.85 -0.225 1.8   V1 -2.77778 -0.2 1.8   V2 -2.74263 -0.2 1.91937 
+  N0 -1.21738e-31 -1 -1.23358e-16   N1 0.6 -0.8 8.24322e-16   N2 0.497152 -0.792374 -0.35353 
+   txt003 
+STRI 
+  V0 -2.81273 -0.225 1.94219   V1 -2.88284 -0.2 1.96501   V2 -2.92222 -0.2 1.8 
+  N0 -3.3285e-17 -1 -1.02253e-16   N1 -0.519903 -0.799556 0.300684   N2 -0.6 -0.8 -3.10757e-16 
+   txt003 
+STRI 
+  V0 -2.92222 -0.2 1.8   V1 -2.85 -0.225 1.8   V2 -2.81273 -0.225 1.94219 
+  N0 -0.6 -0.8 -3.10757e-16   N1 -1.21738e-31 -1 -1.23358e-16   N2 -3.3285e-17 -1 -1.02253e-16 
+   txt003 
+STRI 
+  V0 -2.88284 -0.2 1.96501   V1 -2.93676 -0.125 1.98256   V2 -2.97778 -0.125 1.8 
+  N0 -0.519903 -0.799556 0.300684   N1 -0.810111 -0.385772 0.441476   N2 -0.923077 -0.384615 -1.1396e-16 
+   txt003 
+STRI 
+  V0 -2.97778 -0.125 1.8   V1 -2.92222 -0.2 1.8   V2 -2.88284 -0.2 1.96501 
+  N0 -0.923077 -0.384615 -1.1396e-16   N1 -0.6 -0.8 -3.10757e-16   N2 -0.519903 -0.799556 0.300684 
+   txt003 
+STRI 
+  V0 -2.93676 -0.125 1.98256   V1 -2.95833 0 1.98958   V2 -3 0 1.8 
+  N0 -0.810111 -0.385772 0.441476   N1 -0.882353 9.28814e-16 0.470588   N2 -1 -4.93432e-16 -0 
+   txt003 
+STRI 
+  V0 -3 0 1.8   V1 -2.97778 -0.125 1.8   V2 -2.93676 -0.125 1.98256 
+  N0 -1 -4.93432e-16 -0   N1 -0.923077 -0.384615 -1.1396e-16   N2 -0.810111 -0.385772 0.441476 
+   txt003 
+STRI 
+  V0 -1.5 0 2.25   V1 -1.50741 0.125 2.23333   V2 -1.95583 0.125 2.23133 
+  N0 0 -0 1   N1 0 0.298275 0.95448   N2 -0.0140841 0.297589 0.95459 
+   txt003 
+STRI 
+  V0 -1.95583 0.125 2.23133   V1 -1.95833 0 2.24792   V2 -1.5 0 2.25 
+  N0 -0.0140841 0.297589 0.95459   N1 -0.0149983 0 0.999888   N2 0 -0 1 
+   txt003 
+STRI 
+  V0 -1.50741 0.125 2.23333   V1 -1.52593 0.2 2.19167   V2 -1.94957 0.2 2.18985 
+  N0 0 0.298275 0.95448   N1 0 0.707107 0.707107   N2 -0.00997559 0.706181 0.707961 
+   txt003 
+STRI 
+  V0 -1.94957 0.2 2.18985   V1 -1.95583 0.125 2.23133   V2 -1.50741 0.125 2.23333 
+  N0 -0.00997559 0.706181 0.707961   N1 -0.0140841 0.297589 0.95459   N2 0 0.298275 0.95448 
+   txt003 
+STRI 
+  V0 -1.52593 0.2 2.19167   V1 -1.55 0.225 2.1375   V2 -1.94144 0.225 2.13594 
+  N0 0 0.707107 0.707107   N1 0 1 0   N2 -1.61364e-18 1 -2.43505e-19 
+   txt003 
+STRI 
+  V0 -1.94144 0.225 2.13594   V1 -1.94957 0.2 2.18985   V2 -1.52593 0.2 2.19167 
+  N0 -1.61364e-18 1 -2.43505e-19   N1 -0.00997559 0.706181 0.707961   N2 0 0.707107 0.707107 
+   txt003 
+STRI 
+  V0 -1.55 0.225 2.1375   V1 -1.57407 0.2 2.08333   V2 -1.9333 0.2 2.08202 
+  N0 0 1 0   N1 0 0.707107 -0.707107   N2 0.00846382 0.706077 -0.708084 
+   txt003 
+STRI 
+  V0 -1.9333 0.2 2.08202   V1 -1.94144 0.225 2.13594   V2 -1.55 0.225 2.1375 
+  N0 0.00846382 0.706077 -0.708084   N1 -1.61364e-18 1 -2.43505e-19   N2 0 1 0 
+   txt003 
+STRI 
+  V0 -1.57407 0.2 2.08333   V1 -1.59259 0.125 2.04167   V2 -1.92704 0.125 2.04055 
+  N0 0 0.707107 -0.707107   N1 0 0.298275 -0.95448   N2 0.0104256 0.297446 -0.954682 
+   txt003 
+STRI 
+  V0 -1.92704 0.125 2.04055   V1 -1.9333 0.2 2.08202   V2 -1.57407 0.2 2.08333 
+  N0 0.0104256 0.297446 -0.954682   N1 0.00846382 0.706077 -0.708084   N2 0 0.707107 -0.707107 
+   txt003 
+STRI 
+  V0 -1.59259 0.125 2.04167   V1 -1.6 0 2.025   V2 -1.92454 0 2.02396 
+  N0 0 0.298275 -0.95448   N1 -0 -4.93432e-16 -1   N2 0.0104645 -4.86951e-16 -0.999945 
+   txt003 
+STRI 
+  V0 -1.92454 0 2.02396   V1 -1.92704 0.125 2.04055   V2 -1.59259 0.125 2.04167 
+  N0 0.0104645 -4.86951e-16 -0.999945   N1 0.0104256 0.297446 -0.954682   N2 0 0.298275 -0.95448 
+   txt003 
+STRI 
+  V0 -1.95833 0 2.24792   V1 -1.95583 0.125 2.23133   V2 -2.32318 0.125 2.21728 
+  N0 -0.0149983 0 0.999888   N1 -0.0140841 0.297589 0.95459   N2 -0.0701017 0.299663 0.951466 
+   txt003 
+STRI 
+  V0 -2.32318 0.125 2.21728   V1 -2.33333 0 2.23333   V2 -1.95833 0 2.24792 
+  N0 -0.0701017 0.299663 0.951466   N1 -0.0747899 0 0.997199   N2 -0.0149983 0 0.999888 
+   txt003 
+STRI 
+  V0 -1.95583 0.125 2.23133   V1 -1.94957 0.2 2.18985   V2 -2.29781 0.2 2.17716 
+  N0 -0.0140841 0.297589 0.95459   N1 -0.00997559 0.706181 0.707961   N2 -0.0493858 0.708239 0.704243 
+   txt003 
+STRI 
+  V0 -2.29781 0.2 2.17716   V1 -2.32318 0.125 2.21728   V2 -1.95583 0.125 2.23133 
+  N0 -0.0493858 0.708239 0.704243   N1 -0.0701017 0.299663 0.951466   N2 -0.0140841 0.297589 0.95459 
+   txt003 
+STRI 
+  V0 -1.94957 0.2 2.18985   V1 -1.94144 0.225 2.13594   V2 -2.26481 0.225 2.125 
+  N0 -0.00997559 0.706181 0.707961   N1 -1.61364e-18 1 -2.43505e-19   N2 -7.69071e-18 1 -4.86421e-18 
+   txt003 
+STRI 
+  V0 -2.26481 0.225 2.125   V1 -2.29781 0.2 2.17716   V2 -1.94957 0.2 2.18985 
+  N0 -7.69071e-18 1 -4.86421e-18   N1 -0.0493858 0.708239 0.704243   N2 -0.00997559 0.706181 0.707961 
+   txt003 
+STRI 
+  V0 -1.94144 0.225 2.13594   V1 -1.9333 0.2 2.08202   V2 -2.23182 0.2 2.07284 
+  N0 -1.61364e-18 1 -2.43505e-19   N1 0.00846382 0.706077 -0.708084   N2 0.0415994 0.706072 -0.706918 
+   txt003 
+STRI 
+  V0 -2.23182 0.2 2.07284   V1 -2.26481 0.225 2.125   V2 -1.94144 0.225 2.13594 
+  N0 0.0415994 0.706072 -0.706918   N1 -7.69071e-18 1 -4.86421e-18   N2 -1.61364e-18 1 -2.43505e-19 
+   txt003 
+STRI 
+  V0 -1.9333 0.2 2.08202   V1 -1.92704 0.125 2.04055   V2 -2.20645 0.125 2.03272 
+  N0 0.00846382 0.706077 -0.708084   N1 0.0104256 0.297446 -0.954682   N2 0.0510028 0.296675 -0.953616 
+   txt003 
+STRI 
+  V0 -2.20645 0.125 2.03272   V1 -2.23182 0.2 2.07284   V2 -1.9333 0.2 2.08202 
+  N0 0.0510028 0.296675 -0.953616   N1 0.0415994 0.706072 -0.706918   N2 0.00846382 0.706077 -0.708084 
+   txt003 
+STRI 
+  V0 -1.92704 0.125 2.04055   V1 -1.92454 0 2.02396   V2 -2.1963 0 2.01667 
+  N0 0.0104256 0.297446 -0.954682   N1 0.0104645 -4.86951e-16 -0.999945   N2 0.0510696 -2.08595e-16 -0.998695 
+   txt003 
+STRI 
+  V0 -2.1963 0 2.01667   V1 -2.20645 0.125 2.03272   V2 -1.92704 0.125 2.04055 
+  N0 0.0510696 -2.08595e-16 -0.998695   N1 0.0510028 0.296675 -0.953616   N2 0.0104256 0.297446 -0.954682 
+   txt003 
+STRI 
+  V0 -2.33333 0 2.23333   V1 -2.32318 0.125 2.21728   V2 -2.60926 0.125 2.17917 
+  N0 -0.0747899 0 0.997199   N1 -0.0701017 0.299663 0.951466   N2 -0.204668 0.313917 0.927128 
+   txt003 
+STRI 
+  V0 -2.60926 0.125 2.17917   V1 -2.625 0 2.19375   V2 -2.33333 0 2.23333 
+  N0 -0.204668 0.313917 0.927128   N1 -0.219512 0 0.97561   N2 -0.0747899 0 0.997199 
+   txt003 
+STRI 
+  V0 -2.32318 0.125 2.21728   V1 -2.29781 0.2 2.17716   V2 -2.56991 0.2 2.14271 
+  N0 -0.0701017 0.299663 0.951466   N1 -0.0493858 0.708239 0.704243   N2 -0.141352 0.724137 0.675015 
+   txt003 
+STRI 
+  V0 -2.56991 0.2 2.14271   V1 -2.60926 0.125 2.17917   V2 -2.32318 0.125 2.21728 
+  N0 -0.141352 0.724137 0.675015   N1 -0.204668 0.313917 0.927128   N2 -0.0701017 0.299663 0.951466 
+   txt003 
+STRI 
+  V0 -2.29781 0.2 2.17716   V1 -2.26481 0.225 2.125   V2 -2.51875 0.225 2.09531 
+  N0 -0.0493858 0.708239 0.704243   N1 -7.69071e-18 1 -4.86421e-18   N2 -1.96915e-17 1 -2.12543e-17 
+   txt003 
+STRI 
+  V0 -2.51875 0.225 2.09531   V1 -2.56991 0.2 2.14271   V2 -2.29781 0.2 2.17716 
+  N0 -1.96915e-17 1 -2.12543e-17   N1 -0.141352 0.724137 0.675015   N2 -0.0493858 0.708239 0.704243 
+   txt003 
+STRI 
+  V0 -2.26481 0.225 2.125   V1 -2.23182 0.2 2.07284   V2 -2.46759 0.2 2.04792 
+  N0 -7.69071e-18 1 -4.86421e-18   N1 0.0415994 0.706072 -0.706918   N2 0.119688 0.715388 -0.6884 
+   txt003 
+STRI 
+  V0 -2.46759 0.2 2.04792   V1 -2.51875 0.225 2.09531   V2 -2.26481 0.225 2.125 
+  N0 0.119688 0.715388 -0.6884   N1 -1.96915e-17 1 -2.12543e-17   N2 -7.69071e-18 1 -4.86421e-18 
+   txt003 
+STRI 
+  V0 -2.23182 0.2 2.07284   V1 -2.20645 0.125 2.03272   V2 -2.42824 0.125 2.01146 
+  N0 0.0415994 0.706072 -0.706918   N1 0.0510028 0.296675 -0.953616   N2 0.148104 0.301279 -0.941964 
+   txt003 
+STRI 
+  V0 -2.42824 0.125 2.01146   V1 -2.46759 0.2 2.04792   V2 -2.23182 0.2 2.07284 
+  N0 0.148104 0.301279 -0.941964   N1 0.119688 0.715388 -0.6884   N2 0.0415994 0.706072 -0.706918 
+   txt003 
+STRI 
+  V0 -2.20645 0.125 2.03272   V1 -2.1963 0 2.01667   V2 -2.4125 0 1.99687 
+  N0 0.0510028 0.296675 -0.953616   N1 0.0510696 -2.08595e-16 -0.998695   N2 0.14834 -4.14777e-16 -0.988936 
+   txt003 
+STRI 
+  V0 -2.4125 0 1.99687   V1 -2.42824 0.125 2.01146   V2 -2.20645 0.125 2.03272 
+  N0 0.14834 -4.14777e-16 -0.988936   N1 0.148104 0.301279 -0.941964   N2 0.0510028 0.296675 -0.953616 
+   txt003 
+STRI 
+  V0 -2.625 0 2.19375   V1 -2.60926 0.125 2.17917   V2 -2.81385 0.125 2.10494 
+  N0 -0.219512 0 0.97561   N1 -0.204668 0.313917 0.927128   N2 -0.474611 0.350859 0.807244 
+   txt003 
+STRI 
+  V0 -2.81385 0.125 2.10494   V1 -2.83333 0 2.11667   V2 -2.625 0 2.19375 
+  N0 -0.474611 0.350859 0.807244   N1 -0.514496 0 0.857493   N2 -0.219512 0 0.97561 
+   txt003 
+STRI 
+  V0 -2.60926 0.125 2.17917   V1 -2.56991 0.2 2.14271   V2 -2.76516 0.2 2.07562 
+  N0 -0.204668 0.313917 0.927128   N1 -0.141352 0.724137 0.675015   N2 -0.313659 0.763673 0.564289 
+   txt003 
+STRI 
+  V0 -2.76516 0.2 2.07562   V1 -2.81385 0.125 2.10494   V2 -2.60926 0.125 2.17917 
+  N0 -0.313659 0.763673 0.564289   N1 -0.474611 0.350859 0.807244   N2 -0.204668 0.313917 0.927128 
+   txt003 
+STRI 
+  V0 -2.56991 0.2 2.14271   V1 -2.51875 0.225 2.09531   V2 -2.70185 0.225 2.0375 
+  N0 -0.141352 0.724137 0.675015   N1 -1.96915e-17 1 -2.12543e-17   N2 -3.40413e-17 1 -5.65364e-17 
+   txt003 
+STRI 
+  V0 -2.70185 0.225 2.0375   V1 -2.76516 0.2 2.07562   V2 -2.56991 0.2 2.14271 
+  N0 -3.40413e-17 1 -5.65364e-17   N1 -0.313659 0.763673 0.564289   N2 -0.141352 0.724137 0.675015 
+   txt003 
+STRI 
+  V0 -2.51875 0.225 2.09531   V1 -2.46759 0.2 2.04792   V2 -2.63855 0.2 1.99938 
+  N0 -1.96915e-17 1 -2.12543e-17   N1 0.119688 0.715388 -0.6884   N2 0.275915 0.747596 -0.604128 
+   txt003 
+STRI 
+  V0 -2.63855 0.2 1.99938   V1 -2.70185 0.225 2.0375   V2 -2.51875 0.225 2.09531 
+  N0 0.275915 0.747596 -0.604128   N1 -3.40413e-17 1 -5.65364e-17   N2 -1.96915e-17 1 -2.12543e-17 
+   txt003 
+STRI 
+  V0 -2.46759 0.2 2.04792   V1 -2.42824 0.125 2.01146   V2 -2.58985 0.125 1.97006 
+  N0 0.119688 0.715388 -0.6884   N1 0.148104 0.301279 -0.941964   N2 0.359682 0.323804 -0.875089 
+   txt003 
+STRI 
+  V0 -2.58985 0.125 1.97006   V1 -2.63855 0.2 1.99938   V2 -2.46759 0.2 2.04792 
+  N0 0.359682 0.323804 -0.875089   N1 0.275915 0.747596 -0.604128   N2 0.119688 0.715388 -0.6884 
+   txt003 
+STRI 
+  V0 -2.42824 0.125 2.01146   V1 -2.4125 0 1.99687   V2 -2.57037 0 1.95833 
+  N0 0.148104 0.301279 -0.941964   N1 0.14834 -4.14777e-16 -0.988936   N2 0.364399 -4.84479e-16 -0.931243 
+   txt003 
+STRI 
+  V0 -2.57037 0 1.95833   V1 -2.58985 0.125 1.97006   V2 -2.42824 0.125 2.01146 
+  N0 0.364399 -4.84479e-16 -0.931243   N1 0.359682 0.323804 -0.875089   N2 0.148104 0.301279 -0.941964 
+   txt003 
+STRI 
+  V0 -2.83333 0 2.11667   V1 -2.81385 0.125 2.10494   V2 -2.93676 0.125 1.98256 
+  N0 -0.514496 0 0.857493   N1 -0.474611 0.350859 0.807244   N2 -0.810111 0.385772 0.441476 
+   txt003 
+STRI 
+  V0 -2.93676 0.125 1.98256   V1 -2.95833 0 1.98958   V2 -2.83333 0 2.11667 
+  N0 -0.810111 0.385772 0.441476   N1 -0.882353 0 0.470588   N2 -0.514496 0 0.857493 
+   txt003 
+STRI 
+  V0 -2.81385 0.125 2.10494   V1 -2.76516 0.2 2.07562   V2 -2.88284 0.2 1.96501 
+  N0 -0.474611 0.350859 0.807244   N1 -0.313659 0.763673 0.564289   N2 -0.519903 0.799556 0.300684 
+   txt003 
+STRI 
+  V0 -2.88284 0.2 1.96501   V1 -2.93676 0.125 1.98256   V2 -2.81385 0.125 2.10494 
+  N0 -0.519903 0.799556 0.300684   N1 -0.810111 0.385772 0.441476   N2 -0.474611 0.350859 0.807244 
+   txt003 
+STRI 
+  V0 -2.76516 0.2 2.07562   V1 -2.70185 0.225 2.0375   V2 -2.81273 0.225 1.94219 
+  N0 -0.313659 0.763673 0.564289   N1 -3.40413e-17 1 -5.65364e-17   N2 -3.3285e-17 1 -1.02253e-16 
+   txt003 
+STRI 
+  V0 -2.81273 0.225 1.94219   V1 -2.88284 0.2 1.96501   V2 -2.76516 0.2 2.07562 
+  N0 -3.3285e-17 1 -1.02253e-16   N1 -0.519903 0.799556 0.300684   N2 -0.313659 0.763673 0.564289 
+   txt003 
+STRI 
+  V0 -2.70185 0.225 2.0375   V1 -2.63855 0.2 1.99938   V2 -2.74263 0.2 1.91937 
+  N0 -3.40413e-17 1 -5.65364e-17   N1 0.275915 0.747596 -0.604128   N2 0.497152 0.792374 -0.35353 
+   txt003 
+STRI 
+  V0 -2.74263 0.2 1.91937   V1 -2.81273 0.225 1.94219   V2 -2.70185 0.225 2.0375 
+  N0 0.497152 0.792374 -0.35353   N1 -3.3285e-17 1 -1.02253e-16   N2 -3.40413e-17 1 -5.65364e-17 
+   txt003 
+STRI 
+  V0 -2.63855 0.2 1.99938   V1 -2.58985 0.125 1.97006   V2 -2.6887 0.125 1.90181 
+  N0 0.275915 0.747596 -0.604128   N1 0.359682 0.323804 -0.875089   N2 0.727532 0.37029 -0.577566 
+   txt003 
+STRI 
+  V0 -2.6887 0.125 1.90181   V1 -2.74263 0.2 1.91937   V2 -2.63855 0.2 1.99938 
+  N0 0.727532 0.37029 -0.577566   N1 0.497152 0.792374 -0.35353   N2 0.275915 0.747596 -0.604128 
+   txt003 
+STRI 
+  V0 -2.58985 0.125 1.97006   V1 -2.57037 0 1.95833   V2 -2.66713 0 1.89479 
+  N0 0.359682 0.323804 -0.875089   N1 0.364399 -4.84479e-16 -0.931243   N2 0.767382 -3.16384e-16 -0.64119 
+   txt003 
+STRI 
+  V0 -2.66713 0 1.89479   V1 -2.6887 0.125 1.90181   V2 -2.58985 0.125 1.97006 
+  N0 0.767382 -3.16384e-16 -0.64119   N1 0.727532 0.37029 -0.577566   N2 0.359682 0.323804 -0.875089 
+   txt003 
+STRI 
+  V0 -2.95833 0 1.98958   V1 -2.93676 0.125 1.98256   V2 -2.97778 0.125 1.8 
+  N0 -0.882353 0 0.470588   N1 -0.810111 0.385772 0.441476   N2 -0.923077 0.384615 -1.1396e-16 
+   txt003 
+STRI 
+  V0 -2.97778 0.125 1.8   V1 -3 0 1.8   V2 -2.95833 0 1.98958 
+  N0 -0.923077 0.384615 -1.1396e-16   N1 -1 0 0   N2 -0.882353 0 0.470588 
+   txt003 
+STRI 
+  V0 -2.93676 0.125 1.98256   V1 -2.88284 0.2 1.96501   V2 -2.92222 0.2 1.8 
+  N0 -0.810111 0.385772 0.441476   N1 -0.519903 0.799556 0.300684   N2 -0.6 0.8 -3.10757e-16 
+   txt003 
+STRI 
+  V0 -2.92222 0.2 1.8   V1 -2.97778 0.125 1.8   V2 -2.93676 0.125 1.98256 
+  N0 -0.6 0.8 -3.10757e-16   N1 -0.923077 0.384615 -1.1396e-16   N2 -0.810111 0.385772 0.441476 
+   txt003 
+STRI 
+  V0 -2.88284 0.2 1.96501   V1 -2.81273 0.225 1.94219   V2 -2.85 0.225 1.8 
+  N0 -0.519903 0.799556 0.300684   N1 -3.3285e-17 1 -1.02253e-16   N2 -2.13041e-31 1 -1.23358e-16 
+   txt003 
+STRI 
+  V0 -2.85 0.225 1.8   V1 -2.92222 0.2 1.8   V2 -2.88284 0.2 1.96501 
+  N0 -2.13041e-31 1 -1.23358e-16   N1 -0.6 0.8 -3.10757e-16   N2 -0.519903 0.799556 0.300684 
+   txt003 
+STRI 
+  V0 -2.81273 0.225 1.94219   V1 -2.74263 0.2 1.91937   V2 -2.77778 0.2 1.8 
+  N0 -3.3285e-17 1 -1.02253e-16   N1 0.497152 0.792374 -0.35353   N2 0.6 0.8 8.24322e-16 
+   txt003 
+STRI 
+  V0 -2.77778 0.2 1.8   V1 -2.85 0.225 1.8   V2 -2.81273 0.225 1.94219 
+  N0 0.6 0.8 8.24322e-16   N1 -2.13041e-31 1 -1.23358e-16   N2 -3.3285e-17 1 -1.02253e-16 
+   txt003 
+STRI 
+  V0 -2.74263 0.2 1.91937   V1 -2.6887 0.125 1.90181   V2 -2.72222 0.125 1.8 
+  N0 0.497152 0.792374 -0.35353   N1 0.727532 0.37029 -0.577566   N2 0.923077 0.384615 2.05733e-15 
+   txt003 
+STRI 
+  V0 -2.72222 0.125 1.8   V1 -2.77778 0.2 1.8   V2 -2.74263 0.2 1.91937 
+  N0 0.923077 0.384615 2.05733e-15   N1 0.6 0.8 8.24322e-16   N2 0.497152 0.792374 -0.35353 
+   txt003 
+STRI 
+  V0 -2.6887 0.125 1.90181   V1 -2.66713 0 1.89479   V2 -2.7 0 1.8 
+  N0 0.727532 0.37029 -0.577566   N1 0.767382 -3.16384e-16 -0.64119   N2 1 4.93432e-16 2.63164e-15 
+   txt003 
+STRI 
+  V0 -2.7 0 1.8   V1 -2.72222 0.125 1.8   V2 -2.6887 0.125 1.90181 
+  N0 1 4.93432e-16 2.63164e-15   N1 0.923077 0.384615 2.05733e-15   N2 0.727532 0.37029 -0.577566 
+   txt003 
+STRI 
+  V0 -2.7 0 1.8   V1 -2.72222 -0.125 1.8   V2 -2.70418 -0.125 1.66398 
+  N0 1 0 0   N1 0.923077 -0.384615 0   N2 0.895972 -0.38623 0.219226 
+   txt003 
+STRI 
+  V0 -2.70418 -0.125 1.66398   V1 -2.68287 0 1.67083   V2 -2.7 0 1.8 
+  N0 0.895972 -0.38623 0.219226   N1 0.972045 0 0.234794   N2 1 0 0 
+   txt003 
+STRI 
+  V0 -2.72222 -0.125 1.8   V1 -2.77778 -0.2 1.8   V2 -2.75747 -0.2 1.64684 
+  N0 0.923077 -0.384615 0   N1 0.6 -0.8 0   N2 0.57987 -0.801541 0.145888 
+   txt003 
+STRI 
+  V0 -2.75747 -0.2 1.64684   V1 -2.70418 -0.125 1.66398   V2 -2.72222 -0.125 1.8 
+  N0 0.57987 -0.801541 0.145888   N1 0.895972 -0.38623 0.219226   N2 0.923077 -0.384615 0 
+   txt003 
+STRI 
+  V0 -2.77778 -0.2 1.8   V1 -2.85 -0.225 1.8   V2 -2.82674 -0.225 1.62457 
+  N0 0.6 -0.8 0   N1 -0 -1 -0   N2 9.48478e-19 -1 -2.94924e-18 
+   txt003 
+STRI 
+  V0 -2.82674 -0.225 1.62457   V1 -2.75747 -0.2 1.64684   V2 -2.77778 -0.2 1.8 
+  N0 9.48478e-19 -1 -2.94924e-18   N1 0.57987 -0.801541 0.145888   N2 0.6 -0.8 0 
+   txt003 
+STRI 
+  V0 -2.85 -0.225 1.8   V1 -2.92222 -0.2 1.8   V2 -2.896 -0.2 1.60229 
+  N0 -0 -1 -0   N1 -0.6 -0.8 -0   N2 -0.577707 -0.801752 -0.153129 
+   txt003 
+STRI 
+  V0 -2.896 -0.2 1.60229   V1 -2.82674 -0.225 1.62457   V2 -2.85 -0.225 1.8 
+  N0 -0.577707 -0.801752 -0.153129   N1 9.48478e-19 -1 -2.94924e-18   N2 -0 -1 -0 
+   txt003 
+STRI 
+  V0 -2.92222 -0.2 1.8   V1 -2.97778 -0.125 1.8   V2 -2.94929 -0.125 1.58515 
+  N0 -0.6 -0.8 -0   N1 -0.923077 -0.384615 -0   N2 -0.890548 -0.386679 -0.23959 
+   txt003 
+STRI 
+  V0 -2.94929 -0.125 1.58515   V1 -2.896 -0.2 1.60229   V2 -2.92222 -0.2 1.8 
+  N0 -0.890548 -0.386679 -0.23959   N1 -0.577707 -0.801752 -0.153129   N2 -0.6 -0.8 -0 
+   txt003 
+STRI 
+  V0 -2.97778 -0.125 1.8   V1 -3 0 1.8   V2 -2.9706 0 1.5783 
+  N0 -0.923077 -0.384615 -0   N1 -1 -9.86865e-16 -0   N2 -0.965311 -7.59377e-16 -0.261102 
+   txt003 
+STRI 
+  V0 -2.9706 0 1.5783   V1 -2.94929 -0.125 1.58515   V2 -2.97778 -0.125 1.8 
+  N0 -0.965311 -7.59377e-16 -0.261102   N1 -0.890548 -0.386679 -0.23959   N2 -0.923077 -0.384615 -0 
+   txt003 
+STRI 
+  V0 -2.68287 0 1.67083   V1 -2.70418 -0.125 1.66398   V2 -2.64829 -0.125 1.50535 
+  N0 0.972045 0 0.234794   N1 0.895972 -0.38623 0.219226   N2 0.842942 -0.376421 0.38439 
+   txt003 
+STRI 
+  V0 -2.64829 -0.125 1.50535   V1 -2.62963 0 1.51667   V2 -2.68287 0 1.67083 
+  N0 0.842942 -0.376421 0.38439   N1 0.913812 0 0.406138   N2 0.972045 0 0.234794 
+   txt003 
+STRI 
+  V0 -2.70418 -0.125 1.66398   V1 -2.75747 -0.2 1.64684   V2 -2.69492 -0.2 1.47706 
+  N0 0.895972 -0.38623 0.219226   N1 0.57987 -0.801541 0.145888   N2 0.548194 -0.793356 0.264707 
+   txt003 
+STRI 
+  V0 -2.69492 -0.2 1.47706   V1 -2.64829 -0.125 1.50535   V2 -2.70418 -0.125 1.66398 
+  N0 0.548194 -0.793356 0.264707   N1 0.842942 -0.376421 0.38439   N2 0.895972 -0.38623 0.219226 
+   txt003 
+STRI 
+  V0 -2.75747 -0.2 1.64684   V1 -2.82674 -0.225 1.62457   V2 -2.75556 -0.225 1.44028 
+  N0 0.57987 -0.801541 0.145888   N1 9.48478e-19 -1 -2.94924e-18   N2 5.73642e-18 -1 -9.4564e-18 
+   txt003 
+STRI 
+  V0 -2.75556 -0.225 1.44028   V1 -2.69492 -0.2 1.47706   V2 -2.75747 -0.2 1.64684 
+  N0 5.73642e-18 -1 -9.4564e-18   N1 0.548194 -0.793356 0.264707   N2 0.57987 -0.801541 0.145888 
+   txt003 
+STRI 
+  V0 -2.82674 -0.225 1.62457   V1 -2.896 -0.2 1.60229   V2 -2.81619 -0.2 1.4035 
+  N0 9.48478e-19 -1 -2.94924e-18   N1 -0.577707 -0.801752 -0.153129   N2 -0.534196 -0.794341 -0.289235 
+   txt003 
+STRI 
+  V0 -2.81619 -0.2 1.4035   V1 -2.75556 -0.225 1.44028   V2 -2.82674 -0.225 1.62457 
+  N0 -0.534196 -0.794341 -0.289235   N1 5.73642e-18 -1 -9.4564e-18   N2 9.48478e-19 -1 -2.94924e-18 
+   txt003 
+STRI 
+  V0 -2.896 -0.2 1.60229   V1 -2.94929 -0.125 1.58515   V2 -2.86283 -0.125 1.37521 
+  N0 -0.577707 -0.801752 -0.153129   N1 -0.890548 -0.386679 -0.23959   N2 -0.807437 -0.378466 -0.452558 
+   txt003 
+STRI 
+  V0 -2.86283 -0.125 1.37521   V1 -2.81619 -0.2 1.4035   V2 -2.896 -0.2 1.60229 
+  N0 -0.807437 -0.378466 -0.452558   N1 -0.534196 -0.794341 -0.289235   N2 -0.577707 -0.801752 -0.153129 
+   txt003 
+STRI 
+  V0 -2.94929 -0.125 1.58515   V1 -2.9706 0 1.5783   V2 -2.88148 0 1.36389 
+  N0 -0.890548 -0.386679 -0.23959   N1 -0.965311 -7.59377e-16 -0.261102   N2 -0.869653 -7.07402e-16 -0.493664 
+   txt003 
+STRI 
+  V0 -2.88148 0 1.36389   V1 -2.86283 -0.125 1.37521   V2 -2.94929 -0.125 1.58515 
+  N0 -0.869653 -7.07402e-16 -0.493664   N1 -0.807437 -0.378466 -0.452558   N2 -0.890548 -0.386679 -0.23959 
+   txt003 
+STRI 
+  V0 -2.62963 0 1.51667   V1 -2.64829 -0.125 1.50535   V2 -2.55185 -0.125 1.33576 
+  N0 0.913812 0 0.406138   N1 0.842942 -0.376421 0.38439   N2 0.772293 -0.349434 0.530527 
+   txt003 
+STRI 
+  V0 -2.55185 -0.125 1.33576   V1 -2.5375 0 1.35   V2 -2.62963 0 1.51667 
+  N0 0.772293 -0.349434 0.530527   N1 0.83205 0 0.5547   N2 0.913812 0 0.406138 
+   txt003 
+STRI 
+  V0 -2.64829 -0.125 1.50535   V1 -2.69492 -0.2 1.47706   V2 -2.58773 -0.2 1.30017 
+  N0 0.842942 -0.376421 0.38439   N1 0.548194 -0.793356 0.264707   N2 0.515846 -0.768155 0.379264 
+   txt003 
+STRI 
+  V0 -2.58773 -0.2 1.30017   V1 -2.55185 -0.125 1.33576   V2 -2.64829 -0.125 1.50535 
+  N0 0.515846 -0.768155 0.379264   N1 0.772293 -0.349434 0.530527   N2 0.842942 -0.376421 0.38439 
+   txt003 
+STRI 
+  V0 -2.69492 -0.2 1.47706   V1 -2.75556 -0.225 1.44028   V2 -2.63437 -0.225 1.25391 
+  N0 0.548194 -0.793356 0.264707   N1 5.73642e-18 -1 -9.4564e-18   N2 1.5603e-17 -1 -1.57299e-17 
+   txt003 
+STRI 
+  V0 -2.63437 -0.225 1.25391   V1 -2.58773 -0.2 1.30017   V2 -2.69492 -0.2 1.47706 
+  N0 1.5603e-17 -1 -1.57299e-17   N1 0.515846 -0.768155 0.379264   N2 0.548194 -0.793356 0.264707 
+   txt003 
+STRI 
+  V0 -2.75556 -0.225 1.44028   V1 -2.81619 -0.2 1.4035   V2 -2.68102 -0.2 1.20764 
+  N0 5.73642e-18 -1 -9.4564e-18   N1 -0.534196 -0.794341 -0.289235   N2 -0.486433 -0.770599 -0.411777 
+   txt003 
+STRI 
+  V0 -2.68102 -0.2 1.20764   V1 -2.63437 -0.225 1.25391   V2 -2.75556 -0.225 1.44028 
+  N0 -0.486433 -0.770599 -0.411777   N1 1.5603e-17 -1 -1.57299e-17   N2 5.73642e-18 -1 -9.4564e-18 
+   txt003 
+STRI 
+  V0 -2.81619 -0.2 1.4035   V1 -2.86283 -0.125 1.37521   V2 -2.7169 -0.125 1.17205 
+  N0 -0.534196 -0.794341 -0.289235   N1 -0.807437 -0.378466 -0.452558   N2 -0.700515 -0.35392 -0.619694 
+   txt003 
+STRI 
+  V0 -2.7169 -0.125 1.17205   V1 -2.68102 -0.2 1.20764   V2 -2.81619 -0.2 1.4035 
+  N0 -0.700515 -0.35392 -0.619694   N1 -0.486433 -0.770599 -0.411777   N2 -0.534196 -0.794341 -0.289235 
+   txt003 
+STRI 
+  V0 -2.86283 -0.125 1.37521   V1 -2.88148 0 1.36389   V2 -2.73125 0 1.15781 
+  N0 -0.807437 -0.378466 -0.452558   N1 -0.869653 -7.07402e-16 -0.493664   N2 -0.743581 -2.38916e-16 -0.668646 
+   txt003 
+STRI 
+  V0 -2.73125 0 1.15781   V1 -2.7169 -0.125 1.17205   V2 -2.86283 -0.125 1.37521 
+  N0 -0.743581 -2.38916e-16 -0.668646   N1 -0.700515 -0.35392 -0.619694   N2 -0.807437 -0.378466 -0.452558 
+   txt003 
+STRI 
+  V0 -2.5375 0 1.35   V1 -2.55185 -0.125 1.33576   V2 -2.41221 -0.125 1.16687 
+  N0 0.83205 0 0.5547   N1 0.772293 -0.349434 0.530527   N2 0.676612 -0.31353 0.666255 
+   txt003 
+STRI 
+  V0 -2.41221 -0.125 1.16687   V1 -2.4037 0 1.18333   V2 -2.5375 0 1.35 
+  N0 0.676612 -0.31353 0.666255   N1 0.722374 0 0.691503   N2 0.83205 0 0.5547 
+   txt003 
+STRI 
+  V0 -2.55185 -0.125 1.33576   V1 -2.58773 -0.2 1.30017   V2 -2.43347 -0.2 1.12572 
+  N0 0.772293 -0.349434 0.530527   N1 0.515846 -0.768155 0.379264   N2 0.471519 -0.729692 0.495195 
+   txt003 
+STRI 
+  V0 -2.43347 -0.2 1.12572   V1 -2.41221 -0.125 1.16687   V2 -2.55185 -0.125 1.33576 
+  N0 0.471519 -0.729692 0.495195   N1 0.676612 -0.31353 0.666255   N2 0.772293 -0.349434 0.530527 
+   txt003 
+STRI 
+  V0 -2.58773 -0.2 1.30017   V1 -2.63437 -0.225 1.25391   V2 -2.46111 -0.225 1.07222 
+  N0 0.515846 -0.768155 0.379264   N1 1.5603e-17 -1 -1.57299e-17   N2 3.17396e-17 -1 -1.63988e-17 
+   txt003 
+STRI 
+  V0 -2.46111 -0.225 1.07222   V1 -2.43347 -0.2 1.12572   V2 -2.58773 -0.2 1.30017 
+  N0 3.17396e-17 -1 -1.63988e-17   N1 0.471519 -0.729692 0.495195   N2 0.515846 -0.768155 0.379264 
+   txt003 
+STRI 
+  V0 -2.63437 -0.225 1.25391   V1 -2.68102 -0.2 1.20764   V2 -2.48875 -0.2 1.01872 
+  N0 1.5603e-17 -1 -1.57299e-17   N1 -0.486433 -0.770599 -0.411777   N2 -0.433172 -0.735531 -0.520919 
+   txt003 
+STRI 
+  V0 -2.48875 -0.2 1.01872   V1 -2.46111 -0.225 1.07222   V2 -2.63437 -0.225 1.25391 
+  N0 -0.433172 -0.735531 -0.520919   N1 3.17396e-17 -1 -1.63988e-17   N2 1.5603e-17 -1 -1.57299e-17 
+   txt003 
+STRI 
+  V0 -2.68102 -0.2 1.20764   V1 -2.7169 -0.125 1.17205   V2 -2.51001 -0.125 0.977572 
+  N0 -0.486433 -0.770599 -0.411777   N1 -0.700515 -0.35392 -0.619694   N2 -0.589822 -0.322549 -0.740319 
+   txt003 
+STRI 
+  V0 -2.51001 -0.125 0.977572   V1 -2.48875 -0.2 1.01872   V2 -2.68102 -0.2 1.20764 
+  N0 -0.589822 -0.322549 -0.740319   N1 -0.433172 -0.735531 -0.520919   N2 -0.486433 -0.770599 -0.411777 
+   txt003 
+STRI 
+  V0 -2.7169 -0.125 1.17205   V1 -2.73125 0 1.15781   V2 -2.51852 0 0.961111 
+  N0 -0.700515 -0.35392 -0.619694   N1 -0.743581 -2.38916e-16 -0.668646   N2 -0.617031 -2.64751e-17 -0.786939 
+   txt003 
+STRI 
+  V0 -2.51852 0 0.961111   V1 -2.51001 -0.125 0.977572   V2 -2.7169 -0.125 1.17205 
+  N0 -0.617031 -2.64751e-17 -0.786939   N1 -0.589822 -0.322549 -0.740319   N2 -0.700515 -0.35392 -0.619694 
+   txt003 
+STRI 
+  V0 -2.4037 0 1.18333   V1 -2.41221 -0.125 1.16687   V2 -2.22668 -0.125 1.01033 
+  N0 0.722374 0 0.691503   N1 0.676612 -0.31353 0.666255   N2 0.548733 -0.289562 0.784249 
+   txt003 
+STRI 
+  V0 -2.22668 -0.125 1.01033   V1 -2.22546 0 1.02917   V2 -2.4037 0 1.18333 
+  N0 0.548733 -0.289562 0.784249   N1 0.580973 0 0.813923   N2 0.722374 0 0.691503 
+   txt003 
+STRI 
+  V0 -2.41221 -0.125 1.16687   V1 -2.43347 -0.2 1.12572   V2 -2.22972 -0.2 0.963227 
+  N0 0.676612 -0.31353 0.666255   N1 0.471519 -0.729692 0.495195   N2 0.396971 -0.700023 0.593618 
+   txt003 
+STRI 
+  V0 -2.22972 -0.2 0.963227   V1 -2.22668 -0.125 1.01033   V2 -2.41221 -0.125 1.16687 
+  N0 0.396971 -0.700023 0.593618   N1 0.548733 -0.289562 0.784249   N2 0.676612 -0.31353 0.666255 
+   txt003 
+STRI 
+  V0 -2.43347 -0.2 1.12572   V1 -2.46111 -0.225 1.07222   V2 -2.23368 -0.225 0.901997 
+  N0 0.471519 -0.729692 0.495195   N1 3.17396e-17 -1 -1.63988e-17   N2 5.4409e-17 -1 -3.51585e-18 
+   txt003 
+STRI 
+  V0 -2.23368 -0.225 0.901997   V1 -2.22972 -0.2 0.963227   V2 -2.43347 -0.2 1.12572 
+  N0 5.4409e-17 -1 -3.51585e-18   N1 0.396971 -0.700023 0.593618   N2 0.471519 -0.729692 0.495195 
+   txt003 
+STRI 
+  V0 -2.46111 -0.225 1.07222   V1 -2.48875 -0.2 1.01872   V2 -2.23764 -0.2 0.840766 
+  N0 3.17396e-17 -1 -1.63988e-17   N1 -0.433172 -0.735531 -0.520919   N2 -0.367048 -0.708353 -0.60292 
+   txt003 
+STRI 
+  V0 -2.23764 -0.2 0.840766   V1 -2.23368 -0.225 0.901997   V2 -2.46111 -0.225 1.07222 
+  N0 -0.367048 -0.708353 -0.60292   N1 5.4409e-17 -1 -3.51585e-18   N2 3.17396e-17 -1 -1.63988e-17 
+   txt003 
+STRI 
+  V0 -2.48875 -0.2 1.01872   V1 -2.51001 -0.125 0.977572   V2 -2.24068 -0.125 0.793666 
+  N0 -0.433172 -0.735531 -0.520919   N1 -0.589822 -0.322549 -0.740319   N2 -0.485318 -0.301052 -0.820874 
+   txt003 
+STRI 
+  V0 -2.24068 -0.125 0.793666   V1 -2.23764 -0.2 0.840766   V2 -2.48875 -0.2 1.01872 
+  N0 -0.485318 -0.301052 -0.820874   N1 -0.367048 -0.708353 -0.60292   N2 -0.433172 -0.735531 -0.520919 
+   txt003 
+STRI 
+  V0 -2.51001 -0.125 0.977572   V1 -2.51852 0 0.961111   V2 -2.2419 0 0.774826 
+  N0 -0.589822 -0.322549 -0.740319   N1 -0.617031 -2.64751e-17 -0.786939   N2 -0.504836 2.02979e-16 -0.863216 
+   txt003 
+STRI 
+  V0 -2.2419 0 0.774826   V1 -2.24068 -0.125 0.793666   V2 -2.51001 -0.125 0.977572 
+  N0 -0.504836 2.02979e-16 -0.863216   N1 -0.485318 -0.301052 -0.820874   N2 -0.589822 -0.322549 -0.740319 
+   txt003 
+STRI 
+  V0 -2.22546 0 1.02917   V1 -2.22668 -0.125 1.01033   V2 -1.99259 -0.125 0.877778 
+  N0 0.580973 0 0.813923   N1 0.548733 -0.289562 0.784249   N2 0.390503 -0.30734 0.867784 
+   txt003 
+STRI 
+  V0 -1.99259 -0.125 0.877778   V1 -2 0 0.9   V2 -2.22546 0 1.02917 
+  N0 0.390503 -0.30734 0.867784   N1 0.410365 0 0.911922   N2 0.580973 0 0.813923 
+   txt003 
+STRI 
+  V0 -2.22668 -0.125 1.01033   V1 -2.22972 -0.2 0.963227   V2 -1.97407 -0.2 0.822222 
+  N0 0.548733 -0.289562 0.784249   N1 0.396971 -0.700023 0.593618   N2 0.285351 -0.718662 0.634113 
+   txt003 
+STRI 
+  V0 -1.97407 -0.2 0.822222   V1 -1.99259 -0.125 0.877778   V2 -2.22668 -0.125 1.01033 
+  N0 0.285351 -0.718662 0.634113   N1 0.390503 -0.30734 0.867784   N2 0.548733 -0.289562 0.784249 
+   txt003 
+STRI 
+  V0 -2.22972 -0.2 0.963227   V1 -2.23368 -0.225 0.901997   V2 -1.95 -0.225 0.75 
+  N0 0.396971 -0.700023 0.593618   N1 5.4409e-17 -1 -3.51585e-18   N2 7.83687e-17 -1 2.61229e-17 
+   txt003 
+STRI 
+  V0 -1.95 -0.225 0.75   V1 -1.97407 -0.2 0.822222   V2 -2.22972 -0.2 0.963227 
+  N0 7.83687e-17 -1 2.61229e-17   N1 0.285351 -0.718662 0.634113   N2 0.396971 -0.700023 0.593618 
+   txt003 
+STRI 
+  V0 -2.23368 -0.225 0.901997   V1 -2.23764 -0.2 0.840766   V2 -1.92593 -0.2 0.677778 
+  N0 5.4409e-17 -1 -3.51585e-18   N1 -0.367048 -0.708353 -0.60292   N2 -0.285351 -0.718662 -0.634113 
+   txt003 
+STRI 
+  V0 -1.92593 -0.2 0.677778   V1 -1.95 -0.225 0.75   V2 -2.23368 -0.225 0.901997 
+  N0 -0.285351 -0.718662 -0.634113   N1 7.83687e-17 -1 2.61229e-17   N2 5.4409e-17 -1 -3.51585e-18 
+   txt003 
+STRI 
+  V0 -2.23764 -0.2 0.840766   V1 -2.24068 -0.125 0.793666   V2 -1.90741 -0.125 0.622222 
+  N0 -0.367048 -0.708353 -0.60292   N1 -0.485318 -0.301052 -0.820874   N2 -0.390503 -0.30734 -0.867784 
+   txt003 
+STRI 
+  V0 -1.90741 -0.125 0.622222   V1 -1.92593 -0.2 0.677778   V2 -2.23764 -0.2 0.840766 
+  N0 -0.390503 -0.30734 -0.867784   N1 -0.285351 -0.718662 -0.634113   N2 -0.367048 -0.708353 -0.60292 
+   txt003 
+STRI 
+  V0 -2.24068 -0.125 0.793666   V1 -2.2419 0 0.774826   V2 -1.9 0 0.6 
+  N0 -0.485318 -0.301052 -0.820874   N1 -0.504836 2.02979e-16 -0.863216   N2 -0.410365 4.49972e-17 -0.911922 
+   txt003 
+STRI 
+  V0 -1.9 0 0.6   V1 -1.90741 -0.125 0.622222   V2 -2.24068 -0.125 0.793666 
+  N0 -0.410365 4.49972e-17 -0.911922   N1 -0.390503 -0.30734 -0.867784   N2 -0.485318 -0.301052 -0.820874 
+   txt003 
+STRI 
+  V0 -3 0 1.8   V1 -2.97778 0.125 1.8   V2 -2.94929 0.125 1.58515 
+  N0 -1 0 0   N1 -0.923077 0.384615 0   N2 -0.890548 0.386679 -0.23959 
+   txt003 
+STRI 
+  V0 -2.94929 0.125 1.58515   V1 -2.9706 0 1.5783   V2 -3 0 1.8 
+  N0 -0.890548 0.386679 -0.23959   N1 -0.965311 0 -0.261102   N2 -1 0 0 
+   txt003 
+STRI 
+  V0 -2.97778 0.125 1.8   V1 -2.92222 0.2 1.8   V2 -2.896 0.2 1.60229 
+  N0 -0.923077 0.384615 0   N1 -0.6 0.8 0   N2 -0.577707 0.801752 -0.153129 
+   txt003 
+STRI 
+  V0 -2.896 0.2 1.60229   V1 -2.94929 0.125 1.58515   V2 -2.97778 0.125 1.8 
+  N0 -0.577707 0.801752 -0.153129   N1 -0.890548 0.386679 -0.23959   N2 -0.923077 0.384615 0 
+   txt003 
+STRI 
+  V0 -2.92222 0.2 1.8   V1 -2.85 0.225 1.8   V2 -2.82674 0.225 1.62457 
+  N0 -0.6 0.8 0   N1 -0 1 0   N2 9.48478e-19 1 -2.94924e-18 
+   txt003 
+STRI 
+  V0 -2.82674 0.225 1.62457   V1 -2.896 0.2 1.60229   V2 -2.92222 0.2 1.8 
+  N0 9.48478e-19 1 -2.94924e-18   N1 -0.577707 0.801752 -0.153129   N2 -0.6 0.8 0 
+   txt003 
+STRI 
+  V0 -2.85 0.225 1.8   V1 -2.77778 0.2 1.8   V2 -2.75747 0.2 1.64684 
+  N0 -0 1 0   N1 0.6 0.8 0   N2 0.57987 0.801541 0.145888 
+   txt003 
+STRI 
+  V0 -2.75747 0.2 1.64684   V1 -2.82674 0.225 1.62457   V2 -2.85 0.225 1.8 
+  N0 0.57987 0.801541 0.145888   N1 9.48478e-19 1 -2.94924e-18   N2 -0 1 0 
+   txt003 
+STRI 
+  V0 -2.77778 0.2 1.8   V1 -2.72222 0.125 1.8   V2 -2.70418 0.125 1.66398 
+  N0 0.6 0.8 0   N1 0.923077 0.384615 0   N2 0.895972 0.38623 0.219226 
+   txt003 
+STRI 
+  V0 -2.70418 0.125 1.66398   V1 -2.75747 0.2 1.64684   V2 -2.77778 0.2 1.8 
+  N0 0.895972 0.38623 0.219226   N1 0.57987 0.801541 0.145888   N2 0.6 0.8 0 
+   txt003 
+STRI 
+  V0 -2.72222 0.125 1.8   V1 -2.7 0 1.8   V2 -2.68287 0 1.67083 
+  N0 0.923077 0.384615 0   N1 1 9.86865e-16 0   N2 0.972045 1.13306e-15 0.234794 
+   txt003 
+STRI 
+  V0 -2.68287 0 1.67083   V1 -2.70418 0.125 1.66398   V2 -2.72222 0.125 1.8 
+  N0 0.972045 1.13306e-15 0.234794   N1 0.895972 0.38623 0.219226   N2 0.923077 0.384615 0 
+   txt003 
+STRI 
+  V0 -2.9706 0 1.5783   V1 -2.94929 0.125 1.58515   V2 -2.86283 0.125 1.37521 
+  N0 -0.965311 0 -0.261102   N1 -0.890548 0.386679 -0.23959   N2 -0.807437 0.378466 -0.452558 
+   txt003 
+STRI 
+  V0 -2.86283 0.125 1.37521   V1 -2.88148 0 1.36389   V2 -2.9706 0 1.5783 
+  N0 -0.807437 0.378466 -0.452558   N1 -0.869653 0 -0.493664   N2 -0.965311 0 -0.261102 
+   txt003 
+STRI 
+  V0 -2.94929 0.125 1.58515   V1 -2.896 0.2 1.60229   V2 -2.81619 0.2 1.4035 
+  N0 -0.890548 0.386679 -0.23959   N1 -0.577707 0.801752 -0.153129   N2 -0.534196 0.794341 -0.289235 
+   txt003 
+STRI 
+  V0 -2.81619 0.2 1.4035   V1 -2.86283 0.125 1.37521   V2 -2.94929 0.125 1.58515 
+  N0 -0.534196 0.794341 -0.289235   N1 -0.807437 0.378466 -0.452558   N2 -0.890548 0.386679 -0.23959 
+   txt003 
+STRI 
+  V0 -2.896 0.2 1.60229   V1 -2.82674 0.225 1.62457   V2 -2.75556 0.225 1.44028 
+  N0 -0.577707 0.801752 -0.153129   N1 9.48478e-19 1 -2.94924e-18   N2 5.73642e-18 1 -9.4564e-18 
+   txt003 
+STRI 
+  V0 -2.75556 0.225 1.44028   V1 -2.81619 0.2 1.4035   V2 -2.896 0.2 1.60229 
+  N0 5.73642e-18 1 -9.4564e-18   N1 -0.534196 0.794341 -0.289235   N2 -0.577707 0.801752 -0.153129 
+   txt003 
+STRI 
+  V0 -2.82674 0.225 1.62457   V1 -2.75747 0.2 1.64684   V2 -2.69492 0.2 1.47706 
+  N0 9.48478e-19 1 -2.94924e-18   N1 0.57987 0.801541 0.145888   N2 0.548194 0.793356 0.264707 
+   txt003 
+STRI 
+  V0 -2.69492 0.2 1.47706   V1 -2.75556 0.225 1.44028   V2 -2.82674 0.225 1.62457 
+  N0 0.548194 0.793356 0.264707   N1 5.73642e-18 1 -9.4564e-18   N2 9.48478e-19 1 -2.94924e-18 
+   txt003 
+STRI 
+  V0 -2.75747 0.2 1.64684   V1 -2.70418 0.125 1.66398   V2 -2.64829 0.125 1.50535 
+  N0 0.57987 0.801541 0.145888   N1 0.895972 0.38623 0.219226   N2 0.842942 0.376421 0.38439 
+   txt003 
+STRI 
+  V0 -2.64829 0.125 1.50535   V1 -2.69492 0.2 1.47706   V2 -2.75747 0.2 1.64684 
+  N0 0.842942 0.376421 0.38439   N1 0.548194 0.793356 0.264707   N2 0.57987 0.801541 0.145888 
+   txt003 
+STRI 
+  V0 -2.70418 0.125 1.66398   V1 -2.68287 0 1.67083   V2 -2.62963 0 1.51667 
+  N0 0.895972 0.38623 0.219226   N1 0.972045 1.13306e-15 0.234794   N2 0.913812 1.42786e-15 0.406138 
+   txt003 
+STRI 
+  V0 -2.62963 0 1.51667   V1 -2.64829 0.125 1.50535   V2 -2.70418 0.125 1.66398 
+  N0 0.913812 1.42786e-15 0.406138   N1 0.842942 0.376421 0.38439   N2 0.895972 0.38623 0.219226 
+   txt003 
+STRI 
+  V0 -2.88148 0 1.36389   V1 -2.86283 0.125 1.37521   V2 -2.7169 0.125 1.17205 
+  N0 -0.869653 0 -0.493664   N1 -0.807437 0.378466 -0.452558   N2 -0.700515 0.35392 -0.619694 
+   txt003 
+STRI 
+  V0 -2.7169 0.125 1.17205   V1 -2.73125 0 1.15781   V2 -2.88148 0 1.36389 
+  N0 -0.700515 0.35392 -0.619694   N1 -0.743581 0 -0.668646   N2 -0.869653 0 -0.493664 
+   txt003 
+STRI 
+  V0 -2.86283 0.125 1.37521   V1 -2.81619 0.2 1.4035   V2 -2.68102 0.2 1.20764 
+  N0 -0.807437 0.378466 -0.452558   N1 -0.534196 0.794341 -0.289235   N2 -0.486433 0.770599 -0.411777 
+   txt003 
+STRI 
+  V0 -2.68102 0.2 1.20764   V1 -2.7169 0.125 1.17205   V2 -2.86283 0.125 1.37521 
+  N0 -0.486433 0.770599 -0.411777   N1 -0.700515 0.35392 -0.619694   N2 -0.807437 0.378466 -0.452558 
+   txt003 
+STRI 
+  V0 -2.81619 0.2 1.4035   V1 -2.75556 0.225 1.44028   V2 -2.63437 0.225 1.25391 
+  N0 -0.534196 0.794341 -0.289235   N1 5.73642e-18 1 -9.4564e-18   N2 1.5603e-17 1 -1.57299e-17 
+   txt003 
+STRI 
+  V0 -2.63437 0.225 1.25391   V1 -2.68102 0.2 1.20764   V2 -2.81619 0.2 1.4035 
+  N0 1.5603e-17 1 -1.57299e-17   N1 -0.486433 0.770599 -0.411777   N2 -0.534196 0.794341 -0.289235 
+   txt003 
+STRI 
+  V0 -2.75556 0.225 1.44028   V1 -2.69492 0.2 1.47706   V2 -2.58773 0.2 1.30017 
+  N0 5.73642e-18 1 -9.4564e-18   N1 0.548194 0.793356 0.264707   N2 0.515846 0.768155 0.379264 
+   txt003 
+STRI 
+  V0 -2.58773 0.2 1.30017   V1 -2.63437 0.225 1.25391   V2 -2.75556 0.225 1.44028 
+  N0 0.515846 0.768155 0.379264   N1 1.5603e-17 1 -1.57299e-17   N2 5.73642e-18 1 -9.4564e-18 
+   txt003 
+STRI 
+  V0 -2.69492 0.2 1.47706   V1 -2.64829 0.125 1.50535   V2 -2.55185 0.125 1.33576 
+  N0 0.548194 0.793356 0.264707   N1 0.842942 0.376421 0.38439   N2 0.772293 0.349434 0.530527 
+   txt003 
+STRI 
+  V0 -2.55185 0.125 1.33576   V1 -2.58773 0.2 1.30017   V2 -2.69492 0.2 1.47706 
+  N0 0.772293 0.349434 0.530527   N1 0.515846 0.768155 0.379264   N2 0.548194 0.793356 0.264707 
+   txt003 
+STRI 
+  V0 -2.64829 0.125 1.50535   V1 -2.62963 0 1.51667   V2 -2.5375 0 1.35 
+  N0 0.842942 0.376421 0.38439   N1 0.913812 1.42786e-15 0.406138   N2 0.83205 1.23168e-15 0.5547 
+   txt003 
+STRI 
+  V0 -2.5375 0 1.35   V1 -2.55185 0.125 1.33576   V2 -2.64829 0.125 1.50535 
+  N0 0.83205 1.23168e-15 0.5547   N1 0.772293 0.349434 0.530527   N2 0.842942 0.376421 0.38439 
+   txt003 
+STRI 
+  V0 -2.73125 0 1.15781   V1 -2.7169 0.125 1.17205   V2 -2.51001 0.125 0.977572 
+  N0 -0.743581 0 -0.668646   N1 -0.700515 0.35392 -0.619694   N2 -0.589822 0.322549 -0.740319 
+   txt003 
+STRI 
+  V0 -2.51001 0.125 0.977572   V1 -2.51852 0 0.961111   V2 -2.73125 0 1.15781 
+  N0 -0.589822 0.322549 -0.740319   N1 -0.617031 0 -0.786939   N2 -0.743581 0 -0.668646 
+   txt003 
+STRI 
+  V0 -2.7169 0.125 1.17205   V1 -2.68102 0.2 1.20764   V2 -2.48875 0.2 1.01872 
+  N0 -0.700515 0.35392 -0.619694   N1 -0.486433 0.770599 -0.411777   N2 -0.433172 0.735531 -0.520919 
+   txt003 
+STRI 
+  V0 -2.48875 0.2 1.01872   V1 -2.51001 0.125 0.977572   V2 -2.7169 0.125 1.17205 
+  N0 -0.433172 0.735531 -0.520919   N1 -0.589822 0.322549 -0.740319   N2 -0.700515 0.35392 -0.619694 
+   txt003 
+STRI 
+  V0 -2.68102 0.2 1.20764   V1 -2.63437 0.225 1.25391   V2 -2.46111 0.225 1.07222 
+  N0 -0.486433 0.770599 -0.411777   N1 1.5603e-17 1 -1.57299e-17   N2 3.17396e-17 1 -1.63988e-17 
+   txt003 
+STRI 
+  V0 -2.46111 0.225 1.07222   V1 -2.48875 0.2 1.01872   V2 -2.68102 0.2 1.20764 
+  N0 3.17396e-17 1 -1.63988e-17   N1 -0.433172 0.735531 -0.520919   N2 -0.486433 0.770599 -0.411777 
+   txt003 
+STRI 
+  V0 -2.63437 0.225 1.25391   V1 -2.58773 0.2 1.30017   V2 -2.43347 0.2 1.12572 
+  N0 1.5603e-17 1 -1.57299e-17   N1 0.515846 0.768155 0.379264   N2 0.471519 0.729692 0.495195 
+   txt003 
+STRI 
+  V0 -2.43347 0.2 1.12572   V1 -2.46111 0.225 1.07222   V2 -2.63437 0.225 1.25391 
+  N0 0.471519 0.729692 0.495195   N1 3.17396e-17 1 -1.63988e-17   N2 1.5603e-17 1 -1.57299e-17 
+   txt003 
+STRI 
+  V0 -2.58773 0.2 1.30017   V1 -2.55185 0.125 1.33576   V2 -2.41221 0.125 1.16687 
+  N0 0.515846 0.768155 0.379264   N1 0.772293 0.349434 0.530527   N2 0.676612 0.31353 0.666255 
+   txt003 
+STRI 
+  V0 -2.41221 0.125 1.16687   V1 -2.43347 0.2 1.12572   V2 -2.58773 0.2 1.30017 
+  N0 0.676612 0.31353 0.666255   N1 0.471519 0.729692 0.495195   N2 0.515846 0.768155 0.379264 
+   txt003 
+STRI 
+  V0 -2.55185 0.125 1.33576   V1 -2.5375 0 1.35   V2 -2.4037 0 1.18333 
+  N0 0.772293 0.349434 0.530527   N1 0.83205 1.23168e-15 0.5547   N2 0.722374 1.2247e-15 0.691503 
+   txt003 
+STRI 
+  V0 -2.4037 0 1.18333   V1 -2.41221 0.125 1.16687   V2 -2.55185 0.125 1.33576 
+  N0 0.722374 1.2247e-15 0.691503   N1 0.676612 0.31353 0.666255   N2 0.772293 0.349434 0.530527 
+   txt003 
+STRI 
+  V0 -2.51852 0 0.961111   V1 -2.51001 0.125 0.977572   V2 -2.24068 0.125 0.793666 
+  N0 -0.617031 0 -0.786939   N1 -0.589822 0.322549 -0.740319   N2 -0.485318 0.301052 -0.820874 
+   txt003 
+STRI 
+  V0 -2.24068 0.125 0.793666   V1 -2.2419 0 0.774826   V2 -2.51852 0 0.961111 
+  N0 -0.485318 0.301052 -0.820874   N1 -0.504836 0 -0.863216   N2 -0.617031 0 -0.786939 
+   txt003 
+STRI 
+  V0 -2.51001 0.125 0.977572   V1 -2.48875 0.2 1.01872   V2 -2.23764 0.2 0.840766 
+  N0 -0.589822 0.322549 -0.740319   N1 -0.433172 0.735531 -0.520919   N2 -0.367048 0.708353 -0.60292 
+   txt003 
+STRI 
+  V0 -2.23764 0.2 0.840766   V1 -2.24068 0.125 0.793666   V2 -2.51001 0.125 0.977572 
+  N0 -0.367048 0.708353 -0.60292   N1 -0.485318 0.301052 -0.820874   N2 -0.589822 0.322549 -0.740319 
+   txt003 
+STRI 
+  V0 -2.48875 0.2 1.01872   V1 -2.46111 0.225 1.07222   V2 -2.23368 0.225 0.901997 
+  N0 -0.433172 0.735531 -0.520919   N1 3.17396e-17 1 -1.63988e-17   N2 5.4409e-17 1 -3.51585e-18 
+   txt003 
+STRI 
+  V0 -2.23368 0.225 0.901997   V1 -2.23764 0.2 0.840766   V2 -2.48875 0.2 1.01872 
+  N0 5.4409e-17 1 -3.51585e-18   N1 -0.367048 0.708353 -0.60292   N2 -0.433172 0.735531 -0.520919 
+   txt003 
+STRI 
+  V0 -2.46111 0.225 1.07222   V1 -2.43347 0.2 1.12572   V2 -2.22972 0.2 0.963227 
+  N0 3.17396e-17 1 -1.63988e-17   N1 0.471519 0.729692 0.495195   N2 0.396971 0.700023 0.593618 
+   txt003 
+STRI 
+  V0 -2.22972 0.2 0.963227   V1 -2.23368 0.225 0.901997   V2 -2.46111 0.225 1.07222 
+  N0 0.396971 0.700023 0.593618   N1 5.4409e-17 1 -3.51585e-18   N2 3.17396e-17 1 -1.63988e-17 
+   txt003 
+STRI 
+  V0 -2.43347 0.2 1.12572   V1 -2.41221 0.125 1.16687   V2 -2.22668 0.125 1.01033 
+  N0 0.471519 0.729692 0.495195   N1 0.676612 0.31353 0.666255   N2 0.548733 0.289562 0.784249 
+   txt003 
+STRI 
+  V0 -2.22668 0.125 1.01033   V1 -2.22972 0.2 0.963227   V2 -2.43347 0.2 1.12572 
+  N0 0.548733 0.289562 0.784249   N1 0.396971 0.700023 0.593618   N2 0.471519 0.729692 0.495195 
+   txt003 
+STRI 
+  V0 -2.41221 0.125 1.16687   V1 -2.4037 0 1.18333   V2 -2.22546 0 1.02917 
+  N0 0.676612 0.31353 0.666255   N1 0.722374 1.2247e-15 0.691503   N2 0.580973 1.1041e-15 0.813923 
+   txt003 
+STRI 
+  V0 -2.22546 0 1.02917   V1 -2.22668 0.125 1.01033   V2 -2.41221 0.125 1.16687 
+  N0 0.580973 1.1041e-15 0.813923   N1 0.548733 0.289562 0.784249   N2 0.676612 0.31353 0.666255 
+   txt003 
+STRI 
+  V0 -2.2419 0 0.774826   V1 -2.24068 0.125 0.793666   V2 -1.90741 0.125 0.622222 
+  N0 -0.504836 0 -0.863216   N1 -0.485318 0.301052 -0.820874   N2 -0.390503 0.30734 -0.867784 
+   txt003 
+STRI 
+  V0 -1.90741 0.125 0.622222   V1 -1.9 0 0.6   V2 -2.2419 0 0.774826 
+  N0 -0.390503 0.30734 -0.867784   N1 -0.410365 0 -0.911922   N2 -0.504836 0 -0.863216 
+   txt003 
+STRI 
+  V0 -2.24068 0.125 0.793666   V1 -2.23764 0.2 0.840766   V2 -1.92593 0.2 0.677778 
+  N0 -0.485318 0.301052 -0.820874   N1 -0.367048 0.708353 -0.60292   N2 -0.285351 0.718662 -0.634113 
+   txt003 
+STRI 
+  V0 -1.92593 0.2 0.677778   V1 -1.90741 0.125 0.622222   V2 -2.24068 0.125 0.793666 
+  N0 -0.285351 0.718662 -0.634113   N1 -0.390503 0.30734 -0.867784   N2 -0.485318 0.301052 -0.820874 
+   txt003 
+STRI 
+  V0 -2.23764 0.2 0.840766   V1 -2.23368 0.225 0.901997   V2 -1.95 0.225 0.75 
+  N0 -0.367048 0.708353 -0.60292   N1 5.4409e-17 1 -3.51585e-18   N2 7.83687e-17 1 2.61229e-17 
+   txt003 
+STRI 
+  V0 -1.95 0.225 0.75   V1 -1.92593 0.2 0.677778   V2 -2.23764 0.2 0.840766 
+  N0 7.83687e-17 1 2.61229e-17   N1 -0.285351 0.718662 -0.634113   N2 -0.367048 0.708353 -0.60292 
+   txt003 
+STRI 
+  V0 -2.23368 0.225 0.901997   V1 -2.22972 0.2 0.963227   V2 -1.97407 0.2 0.822222 
+  N0 5.4409e-17 1 -3.51585e-18   N1 0.396971 0.700023 0.593618   N2 0.285351 0.718662 0.634113 
+   txt003 
+STRI 
+  V0 -1.97407 0.2 0.822222   V1 -1.95 0.225 0.75   V2 -2.23368 0.225 0.901997 
+  N0 0.285351 0.718662 0.634113   N1 7.83687e-17 1 2.61229e-17   N2 5.4409e-17 1 -3.51585e-18 
+   txt003 
+STRI 
+  V0 -2.22972 0.2 0.963227   V1 -2.22668 0.125 1.01033   V2 -1.99259 0.125 0.877778 
+  N0 0.396971 0.700023 0.593618   N1 0.548733 0.289562 0.784249   N2 0.390503 0.30734 0.867784 
+   txt003 
+STRI 
+  V0 -1.99259 0.125 0.877778   V1 -1.97407 0.2 0.822222   V2 -2.22972 0.2 0.963227 
+  N0 0.390503 0.30734 0.867784   N1 0.285351 0.718662 0.634113   N2 0.396971 0.700023 0.593618 
+   txt003 
+STRI 
+  V0 -2.22668 0.125 1.01033   V1 -2.22546 0 1.02917   V2 -2 0 0.9 
+  N0 0.548733 0.289562 0.784249   N1 0.580973 1.1041e-15 0.813923   N2 0.410365 1.30492e-15 0.911922 
+   txt003 
+STRI 
+  V0 -2 0 0.9   V1 -1.99259 0.125 0.877778   V2 -2.22668 0.125 1.01033 
+  N0 0.410365 1.30492e-15 0.911922   N1 0.390503 0.30734 0.867784   N2 0.548733 0.289562 0.784249 
+   txt003 
+STRI 
+  V0 1.7 0 1.425   V1 1.7 -0.275 1.36389   V2 2.07238 -0.262346 1.42521 
+  N0 -0 0 1   N1 -0.0157732 -0.461877 0.886804   N2 -0.291732 -0.426807 0.855995 
+   txt003 
+STRI 
+  V0 2.07238 -0.262346 1.42521   V1 2.0588 0 1.47639   V2 1.7 0 1.425 
+  N0 -0.291732 -0.426807 0.855995   N1 -0.333935 0 0.942596   N2 -0 0 1 
+   txt003 
+STRI 
+  V0 1.7 -0.275 1.36389   V1 1.7 -0.44 1.21111   V2 2.10633 -0.419753 1.29725 
+  N0 -0.0157732 -0.461877 0.886804   N1 -0.0291362 -0.857129 0.514277   N2 -0.135104 -0.834377 0.534381 
+   txt003 
+STRI 
+  V0 2.10633 -0.419753 1.29725   V1 2.07238 -0.262346 1.42521   V2 1.7 -0.275 1.36389 
+  N0 -0.135104 -0.834377 0.534381   N1 -0.291732 -0.426807 0.855995   N2 -0.0157732 -0.461877 0.886804 
+   txt003 
+STRI 
+  V0 1.7 -0.44 1.21111   V1 1.7 -0.495 1.0125   V2 2.15046 -0.472222 1.1309 
+  N0 -0.0291362 -0.857129 0.514277   N1 0 -1 -0   N2 0.110195 -0.99348 0.0292376 
+   txt003 
+STRI 
+  V0 2.15046 -0.472222 1.1309   V1 2.10633 -0.419753 1.29725   V2 1.7 -0.44 1.21111 
+  N0 0.110195 -0.99348 0.0292376   N1 -0.135104 -0.834377 0.534381   N2 -0.0291362 -0.857129 0.514277 
+   txt003 
+STRI 
+  V0 1.7 -0.495 1.0125   V1 1.7 -0.44 0.813889   V2 2.1946 -0.419753 0.964558 
+  N0 0 -1 -0   N1 0.0673462 -0.855546 -0.513328   N2 0.348602 -0.814337 -0.464038 
+   txt003 
+STRI 
+  V0 2.1946 -0.419753 0.964558   V1 2.15046 -0.472222 1.1309   V2 1.7 -0.495 1.0125 
+  N0 0.348602 -0.814337 -0.464038   N1 0.110195 -0.99348 0.0292376   N2 0 -1 -0 
+   txt003 
+STRI 
+  V0 1.7 -0.44 0.813889   V1 1.7 -0.275 0.661111   V2 2.22855 -0.262346 0.8366 
+  N0 0.0673462 -0.855546 -0.513328   N1 0.134339 -0.457747 -0.878875   N2 0.492146 -0.41068 -0.767551 
+   txt003 
+STRI 
+  V0 2.22855 -0.262346 0.8366   V1 2.1946 -0.419753 0.964558   V2 1.7 -0.44 0.813889 
+  N0 0.492146 -0.41068 -0.767551   N1 0.348602 -0.814337 -0.464038   N2 0.0673462 -0.855546 -0.513328 
+   txt003 
+STRI 
+  V0 1.7 -0.275 0.661111   V1 1.7 0 0.6   V2 2.24213 0 0.785417 
+  N0 0.134339 -0.457747 -0.878875   N1 0.158678 9.39168e-16 -0.98733   N2 0.528678 6.47717e-16 -0.848822 
+   txt003 
+STRI 
+  V0 2.24213 0 0.785417   V1 2.22855 -0.262346 0.8366   V2 1.7 -0.275 0.661111 
+  N0 0.528678 6.47717e-16 -0.848822   N1 0.492146 -0.41068 -0.767551   N2 0.134339 -0.457747 -0.878875 
+   txt003 
+STRI 
+  V0 2.0588 0 1.47639   V1 2.07238 -0.262346 1.42521   V2 2.29012 -0.23071 1.57202 
+  N0 -0.333935 0 0.942596   N1 -0.291732 -0.426807 0.855995   N2 -0.64585 -0.390219 0.656206 
+   txt003 
+STRI 
+  V0 2.29012 -0.23071 1.57202   V1 2.27037 0 1.61111   V2 2.0588 0 1.47639 
+  N0 -0.64585 -0.390219 0.656206   N1 -0.731055 0 0.682318   N2 -0.333935 0 0.942596 
+   txt003 
+STRI 
+  V0 2.07238 -0.262346 1.42521   V1 2.10633 -0.419753 1.29725   V2 2.33951 -0.369136 1.47428 
+  N0 -0.291732 -0.426807 0.855995   N1 -0.135104 -0.834377 0.534381   N2 -0.312511 -0.816863 0.484842 
+   txt003 
+STRI 
+  V0 2.33951 -0.369136 1.47428   V1 2.29012 -0.23071 1.57202   V2 2.07238 -0.262346 1.42521 
+  N0 -0.312511 -0.816863 0.484842   N1 -0.64585 -0.390219 0.656206   N2 -0.291732 -0.426807 0.855995 
+   txt003 
+STRI 
+  V0 2.10633 -0.419753 1.29725   V1 2.15046 -0.472222 1.1309   V2 2.4037 -0.415278 1.34722 
+  N0 -0.135104 -0.834377 0.534381   N1 0.110195 -0.99348 0.0292376   N2 0.215359 -0.970454 0.108813 
+   txt003 
+STRI 
+  V0 2.4037 -0.415278 1.34722   V1 2.33951 -0.369136 1.47428   V2 2.10633 -0.419753 1.29725 
+  N0 0.215359 -0.970454 0.108813   N1 -0.312511 -0.816863 0.484842   N2 -0.135104 -0.834377 0.534381 
+   txt003 
+STRI 
+  V0 2.15046 -0.472222 1.1309   V1 2.1946 -0.419753 0.964558   V2 2.4679 -0.369136 1.22016 
+  N0 0.110195 -0.99348 0.0292376   N1 0.348602 -0.814337 -0.464038   N2 0.627607 -0.733748 -0.260237 
+   txt003 
+STRI 
+  V0 2.4679 -0.369136 1.22016   V1 2.4037 -0.415278 1.34722   V2 2.15046 -0.472222 1.1309 
+  N0 0.627607 -0.733748 -0.260237   N1 0.215359 -0.970454 0.108813   N2 0.110195 -0.99348 0.0292376 
+   txt003 
+STRI 
+  V0 2.1946 -0.419753 0.964558   V1 2.22855 -0.262346 0.8366   V2 2.51728 -0.23071 1.12243 
+  N0 0.348602 -0.814337 -0.464038   N1 0.492146 -0.41068 -0.767551   N2 0.813963 -0.348056 -0.465103 
+   txt003 
+STRI 
+  V0 2.51728 -0.23071 1.12243   V1 2.4679 -0.369136 1.22016   V2 2.1946 -0.419753 0.964558 
+  N0 0.813963 -0.348056 -0.465103   N1 0.627607 -0.733748 -0.260237   N2 0.348602 -0.814337 -0.464038 
+   txt003 
+STRI 
+  V0 2.22855 -0.262346 0.8366   V1 2.24213 0 0.785417   V2 2.53704 0 1.08333 
+  N0 0.492146 -0.41068 -0.767551   N1 0.528678 6.47717e-16 -0.848822   N2 0.854063 9.88017e-16 -0.52017 
+   txt003 
+STRI 
+  V0 2.53704 0 1.08333   V1 2.51728 -0.23071 1.12243   V2 2.22855 -0.262346 0.8366 
+  N0 0.854063 9.88017e-16 -0.52017   N1 0.813963 -0.348056 -0.465103   N2 0.492146 -0.41068 -0.767551 
+   txt003 
+STRI 
+  V0 2.27037 0 1.61111   V1 2.29012 -0.23071 1.57202   V2 2.40972 -0.189583 1.77361 
+  N0 -0.731055 0 0.682318   N1 -0.64585 -0.390219 0.656206   N2 -0.835237 -0.363942 0.412221 
+   txt003 
+STRI 
+  V0 2.40972 -0.189583 1.77361   V1 2.3875 0 1.8   V2 2.27037 0 1.61111 
+  N0 -0.835237 -0.363942 0.412221   N1 -0.920582 0 0.39055   N2 -0.731055 0 0.682318 
+   txt003 
+STRI 
+  V0 2.29012 -0.23071 1.57202   V1 2.33951 -0.369136 1.47428   V2 2.46528 -0.303333 1.70764 
+  N0 -0.64585 -0.390219 0.656206   N1 -0.312511 -0.816863 0.484842   N2 -0.451323 -0.803033 0.38916 
+   txt003 
+STRI 
+  V0 2.46528 -0.303333 1.70764   V1 2.40972 -0.189583 1.77361   V2 2.29012 -0.23071 1.57202 
+  N0 -0.451323 -0.803033 0.38916   N1 -0.835237 -0.363942 0.412221   N2 -0.64585 -0.390219 0.656206 
+   txt003 
+STRI 
+  V0 2.33951 -0.369136 1.47428   V1 2.4037 -0.415278 1.34722   V2 2.5375 -0.34125 1.62187 
+  N0 -0.312511 -0.816863 0.484842   N1 0.215359 -0.970454 0.108813   N2 0.214084 -0.960035 0.180281 
+   txt003 
+STRI 
+  V0 2.5375 -0.34125 1.62187   V1 2.46528 -0.303333 1.70764   V2 2.33951 -0.369136 1.47428 
+  N0 0.214084 -0.960035 0.180281   N1 -0.451323 -0.803033 0.38916   N2 -0.312511 -0.816863 0.484842 
+   txt003 
+STRI 
+  V0 2.4037 -0.415278 1.34722   V1 2.4679 -0.369136 1.22016   V2 2.60972 -0.303333 1.53611 
+  N0 0.215359 -0.970454 0.108813   N1 0.627607 -0.733748 -0.260237   N2 0.705424 -0.704198 -0.0805066 
+   txt003 
+STRI 
+  V0 2.60972 -0.303333 1.53611   V1 2.5375 -0.34125 1.62187   V2 2.4037 -0.415278 1.34722 
+  N0 0.705424 -0.704198 -0.0805066   N1 0.214084 -0.960035 0.180281   N2 0.215359 -0.970454 0.108813 
+   txt003 
+STRI 
+  V0 2.4679 -0.369136 1.22016   V1 2.51728 -0.23071 1.12243   V2 2.66528 -0.189583 1.47014 
+  N0 0.627607 -0.733748 -0.260237   N1 0.813963 -0.348056 -0.465103   N2 0.913262 -0.329186 -0.239977 
+   txt003 
+STRI 
+  V0 2.66528 -0.189583 1.47014   V1 2.60972 -0.303333 1.53611   V2 2.4679 -0.369136 1.22016 
+  N0 0.913262 -0.329186 -0.239977   N1 0.705424 -0.704198 -0.0805066   N2 0.627607 -0.733748 -0.260237 
+   txt003 
+STRI 
+  V0 2.51728 -0.23071 1.12243   V1 2.53704 0 1.08333   V2 2.6875 0 1.44375 
+  N0 0.813963 -0.348056 -0.465103   N1 0.854063 9.88017e-16 -0.52017   N2 0.957826 1.83855e-15 -0.287348 
+   txt003 
+STRI 
+  V0 2.6875 0 1.44375   V1 2.66528 -0.189583 1.47014   V2 2.51728 -0.23071 1.12243 
+  N0 0.957826 1.83855e-15 -0.287348   N1 0.913262 -0.329186 -0.239977   N2 0.813963 -0.348056 -0.465103 
+   txt003 
+STRI 
+  V0 2.3875 0 1.8   V1 2.40972 -0.189583 1.77361   V2 2.48765 -0.148457 1.99928 
+  N0 -0.920582 0 0.39055   N1 -0.835237 -0.363942 0.412221   N2 -0.842821 -0.409176 0.34961 
+   txt003 
+STRI 
+  V0 2.48765 -0.148457 1.99928   V1 2.46296 0 2.01389   V2 2.3875 0 1.8 
+  N0 -0.842821 -0.409176 0.34961   N1 -0.948683 0 0.316228   N2 -0.920582 0 0.39055 
+   txt003 
+STRI 
+  V0 2.40972 -0.189583 1.77361   V1 2.46528 -0.303333 1.70764   V2 2.54938 -0.237531 1.96276 
+  N0 -0.835237 -0.363942 0.412221   N1 -0.451323 -0.803033 0.38916   N2 -0.452673 -0.821162 0.347535 
+   txt003 
+STRI 
+  V0 2.54938 -0.237531 1.96276   V1 2.48765 -0.148457 1.99928   V2 2.40972 -0.189583 1.77361 
+  N0 -0.452673 -0.821162 0.347535   N1 -0.842821 -0.409176 0.34961   N2 -0.835237 -0.363942 0.412221 
+   txt003 
+STRI 
+  V0 2.46528 -0.303333 1.70764   V1 2.5375 -0.34125 1.62187   V2 2.62963 -0.267222 1.91528 
+  N0 -0.451323 -0.803033 0.38916   N1 0.214084 -0.960035 0.180281   N2 0.113546 -0.974822 0.191909 
+   txt003 
+STRI 
+  V0 2.62963 -0.267222 1.91528   V1 2.54938 -0.237531 1.96276   V2 2.46528 -0.303333 1.70764 
+  N0 0.113546 -0.974822 0.191909   N1 -0.452673 -0.821162 0.347535   N2 -0.451323 -0.803033 0.38916 
+   txt003 
+STRI 
+  V0 2.5375 -0.34125 1.62187   V1 2.60972 -0.303333 1.53611   V2 2.70988 -0.237531 1.8678 
+  N0 0.214084 -0.960035 0.180281   N1 0.705424 -0.704198 -0.0805066   N2 0.60461 -0.794635 -0.0547983 
+   txt003 
+STRI 
+  V0 2.70988 -0.237531 1.8678   V1 2.62963 -0.267222 1.91528   V2 2.5375 -0.34125 1.62187 
+  N0 0.60461 -0.794635 -0.0547983   N1 0.113546 -0.974822 0.191909   N2 0.214084 -0.960035 0.180281 
+   txt003 
+STRI 
+  V0 2.60972 -0.303333 1.53611   V1 2.66528 -0.189583 1.47014   V2 2.7716 -0.148457 1.83128 
+  N0 0.705424 -0.704198 -0.0805066   N1 0.913262 -0.329186 -0.239977   N2 0.880144 -0.401503 -0.253261 
+   txt003 
+STRI 
+  V0 2.7716 -0.148457 1.83128   V1 2.70988 -0.237531 1.8678   V2 2.60972 -0.303333 1.53611 
+  N0 0.880144 -0.401503 -0.253261   N1 0.60461 -0.794635 -0.0547983   N2 0.705424 -0.704198 -0.0805066 
+   txt003 
+STRI 
+  V0 2.66528 -0.189583 1.47014   V1 2.6875 0 1.44375   V2 2.7963 0 1.81667 
+  N0 0.913262 -0.329186 -0.239977   N1 0.957826 1.83855e-15 -0.287348   N2 0.947588 3.02585e-15 -0.319493 
+   txt003 
+STRI 
+  V0 2.7963 0 1.81667   V1 2.7716 -0.148457 1.83128   V2 2.66528 -0.189583 1.47014 
+  N0 0.947588 3.02585e-15 -0.319493   N1 0.880144 -0.401503 -0.253261   N2 0.913262 -0.329186 -0.239977 
+   txt003 
+STRI 
+  V0 2.46296 0 2.01389   V1 2.48765 -0.148457 1.99928   V2 2.5804 -0.116821 2.21831 
+  N0 -0.948683 0 0.316228   N1 -0.842821 -0.409176 0.34961   N2 -0.723795 -0.498863 0.476715 
+   txt003 
+STRI 
+  V0 2.5804 -0.116821 2.21831   V1 2.54954 0 2.22361   V2 2.46296 0 2.01389 
+  N0 -0.723795 -0.498863 0.476715   N1 -0.874591 0 0.484861   N2 -0.948683 0 0.316228 
+   txt003 
+STRI 
+  V0 2.48765 -0.148457 1.99928   V1 2.54938 -0.237531 1.96276   V2 2.65756 -0.186914 2.20507 
+  N0 -0.842821 -0.409176 0.34961   N1 -0.452673 -0.821162 0.347535   N2 -0.365378 -0.851743 0.375544 
+   txt003 
+STRI 
+  V0 2.65756 -0.186914 2.20507   V1 2.5804 -0.116821 2.21831   V2 2.48765 -0.148457 1.99928 
+  N0 -0.365378 -0.851743 0.375544   N1 -0.723795 -0.498863 0.476715   N2 -0.842821 -0.409176 0.34961 
+   txt003 
+STRI 
+  V0 2.54938 -0.237531 1.96276   V1 2.62963 -0.267222 1.91528   V2 2.75787 -0.210278 2.18785 
+  N0 -0.452673 -0.821162 0.347535   N1 0.113546 -0.974822 0.191909   N2 0.0260102 -0.988113 0.151516 
+   txt003 
+STRI 
+  V0 2.75787 -0.210278 2.18785   V1 2.65756 -0.186914 2.20507   V2 2.54938 -0.237531 1.96276 
+  N0 0.0260102 -0.988113 0.151516   N1 -0.365378 -0.851743 0.375544   N2 -0.452673 -0.821162 0.347535 
+   txt003 
+STRI 
+  V0 2.62963 -0.267222 1.91528   V1 2.70988 -0.237531 1.8678   V2 2.85818 -0.186914 2.17063 
+  N0 0.113546 -0.974822 0.191909   N1 0.60461 -0.794635 -0.0547983   N2 0.417243 -0.88974 -0.185122 
+   txt003 
+STRI 
+  V0 2.85818 -0.186914 2.17063   V1 2.75787 -0.210278 2.18785   V2 2.62963 -0.267222 1.91528 
+  N0 0.417243 -0.88974 -0.185122   N1 0.0260102 -0.988113 0.151516   N2 0.113546 -0.974822 0.191909 
+   txt003 
+STRI 
+  V0 2.70988 -0.237531 1.8678   V1 2.7716 -0.148457 1.83128   V2 2.93534 -0.116821 2.15738 
+  N0 0.60461 -0.794635 -0.0547983   N1 0.880144 -0.401503 -0.253261   N2 0.70819 -0.492319 -0.506053 
+   txt003 
+STRI 
+  V0 2.93534 -0.116821 2.15738   V1 2.85818 -0.186914 2.17063   V2 2.70988 -0.237531 1.8678 
+  N0 0.70819 -0.492319 -0.506053   N1 0.417243 -0.88974 -0.185122   N2 0.60461 -0.794635 -0.0547983 
+   txt003 
+STRI 
+  V0 2.7716 -0.148457 1.83128   V1 2.7963 0 1.81667   V2 2.9662 0 2.15208 
+  N0 0.880144 -0.401503 -0.253261   N1 0.947588 3.02585e-15 -0.319493   N2 0.787582 4.30265e-15 -0.61621 
+   txt003 
+STRI 
+  V0 2.9662 0 2.15208   V1 2.93534 -0.116821 2.15738   V2 2.7716 -0.148457 1.83128 
+  N0 0.787582 4.30265e-15 -0.61621   N1 0.70819 -0.492319 -0.506053   N2 0.880144 -0.401503 -0.253261 
+   txt003 
+STRI 
+  V0 2.54954 0 2.22361   V1 2.5804 -0.116821 2.21831   V2 2.74444 -0.104167 2.4 
+  N0 -0.874591 0 0.484861   N1 -0.723795 -0.498863 0.476715   N2 -0.497164 -0.497164 0.711095 
+   txt003 
+STRI 
+  V0 2.74444 -0.104167 2.4   V1 2.7 0 2.4   V2 2.54954 0 2.22361 
+  N0 -0.497164 -0.497164 0.711095   N1 -0.6 0 0.8   N2 -0.874591 0 0.484861 
+   txt003 
+STRI 
+  V0 2.5804 -0.116821 2.21831   V1 2.65756 -0.186914 2.20507   V2 2.85556 -0.166667 2.4 
+  N0 -0.723795 -0.498863 0.476715   N1 -0.365378 -0.851743 0.375544   N2 -0.267368 -0.855576 0.443288 
+   txt003 
+STRI 
+  V0 2.85556 -0.166667 2.4   V1 2.74444 -0.104167 2.4   V2 2.5804 -0.116821 2.21831 
+  N0 -0.267368 -0.855576 0.443288   N1 -0.497164 -0.497164 0.711095   N2 -0.723795 -0.498863 0.476715 
+   txt003 
+STRI 
+  V0 2.65756 -0.186914 2.20507   V1 2.75787 -0.210278 2.18785   V2 3 -0.1875 2.4 
+  N0 -0.365378 -0.851743 0.375544   N1 0.0260102 -0.988113 0.151516   N2 0 -1 2.19303e-16 
+   txt003 
+STRI 
+  V0 3 -0.1875 2.4   V1 2.85556 -0.166667 2.4   V2 2.65756 -0.186914 2.20507 
+  N0 0 -1 2.19303e-16   N1 -0.267368 -0.855576 0.443288   N2 -0.365378 -0.851743 0.375544 
+   txt003 
+STRI 
+  V0 2.75787 -0.210278 2.18785   V1 2.85818 -0.186914 2.17063   V2 3.14444 -0.166667 2.4 
+  N0 0.0260102 -0.988113 0.151516   N1 0.417243 -0.88974 -0.185122   N2 0.250514 -0.801644 -0.54278 
+   txt003 
+STRI 
+  V0 3.14444 -0.166667 2.4   V1 3 -0.1875 2.4   V2 2.75787 -0.210278 2.18785 
+  N0 0.250514 -0.801644 -0.54278   N1 0 -1 2.19303e-16   N2 0.0260102 -0.988113 0.151516 
+   txt003 
+STRI 
+  V0 2.85818 -0.186914 2.17063   V1 2.93534 -0.116821 2.15738   V2 3.25556 -0.104167 2.4 
+  N0 0.417243 -0.88974 -0.185122   N1 0.70819 -0.492319 -0.506053   N2 0.366221 -0.366221 -0.855433 
+   txt003 
+STRI 
+  V0 3.25556 -0.104167 2.4   V1 3.14444 -0.166667 2.4   V2 2.85818 -0.186914 2.17063 
+  N0 0.366221 -0.366221 -0.855433   N1 0.250514 -0.801644 -0.54278   N2 0.417243 -0.88974 -0.185122 
+   txt003 
+STRI 
+  V0 2.93534 -0.116821 2.15738   V1 2.9662 0 2.15208   V2 3.3 0 2.4 
+  N0 0.70819 -0.492319 -0.506053   N1 0.787582 4.30265e-15 -0.61621   N2 0.384615 6.46776e-15 -0.923077 
+   txt003 
+STRI 
+  V0 3.3 0 2.4   V1 3.25556 -0.104167 2.4   V2 2.93534 -0.116821 2.15738 
+  N0 0.384615 6.46776e-15 -0.923077   N1 0.366221 -0.366221 -0.855433   N2 0.70819 -0.492319 -0.506053 
+   txt003 
+STRI 
+  V0 1.7 0 0.6   V1 1.7 0.275 0.661111   V2 2.22855 0.262346 0.8366 
+  N0 0.158678 0 -0.98733   N1 0.134339 0.457747 -0.878875   N2 0.492146 0.41068 -0.767551 
+   txt003 
+STRI 
+  V0 2.22855 0.262346 0.8366   V1 2.24213 0 0.785417   V2 1.7 0 0.6 
+  N0 0.492146 0.41068 -0.767551   N1 0.528678 0 -0.848822   N2 0.158678 0 -0.98733 
+   txt003 
+STRI 
+  V0 1.7 0.275 0.661111   V1 1.7 0.44 0.813889   V2 2.1946 0.419753 0.964558 
+  N0 0.134339 0.457747 -0.878875   N1 0.0673462 0.855546 -0.513328   N2 0.348602 0.814337 -0.464038 
+   txt003 
+STRI 
+  V0 2.1946 0.419753 0.964558   V1 2.22855 0.262346 0.8366   V2 1.7 0.275 0.661111 
+  N0 0.348602 0.814337 -0.464038   N1 0.492146 0.41068 -0.767551   N2 0.134339 0.457747 -0.878875 
+   txt003 
+STRI 
+  V0 1.7 0.44 0.813889   V1 1.7 0.495 1.0125   V2 2.15046 0.472222 1.1309 
+  N0 0.0673462 0.855546 -0.513328   N1 0 1 -0   N2 0.110195 0.99348 0.0292376 
+   txt003 
+STRI 
+  V0 2.15046 0.472222 1.1309   V1 2.1946 0.419753 0.964558   V2 1.7 0.44 0.813889 
+  N0 0.110195 0.99348 0.0292376   N1 0.348602 0.814337 -0.464038   N2 0.0673462 0.855546 -0.513328 
+   txt003 
+STRI 
+  V0 1.7 0.495 1.0125   V1 1.7 0.44 1.21111   V2 2.10633 0.419753 1.29725 
+  N0 0 1 -0   N1 -0.0291362 0.857129 0.514277   N2 -0.135104 0.834377 0.534381 
+   txt003 
+STRI 
+  V0 2.10633 0.419753 1.29725   V1 2.15046 0.472222 1.1309   V2 1.7 0.495 1.0125 
+  N0 -0.135104 0.834377 0.534381   N1 0.110195 0.99348 0.0292376   N2 0 1 -0 
+   txt003 
+STRI 
+  V0 1.7 0.44 1.21111   V1 1.7 0.275 1.36389   V2 2.07238 0.262346 1.42521 
+  N0 -0.0291362 0.857129 0.514277   N1 -0.0157732 0.461877 0.886804   N2 -0.291732 0.426807 0.855995 
+   txt003 
+STRI 
+  V0 2.07238 0.262346 1.42521   V1 2.10633 0.419753 1.29725   V2 1.7 0.44 1.21111 
+  N0 -0.291732 0.426807 0.855995   N1 -0.135104 0.834377 0.534381   N2 -0.0291362 0.857129 0.514277 
+   txt003 
+STRI 
+  V0 1.7 0.275 1.36389   V1 1.7 0 1.425   V2 2.0588 0 1.47639 
+  N0 -0.0157732 0.461877 0.886804   N1 0 -4.48575e-16 1   N2 -0.333935 -3.25455e-16 0.942596 
+   txt003 
+STRI 
+  V0 2.0588 0 1.47639   V1 2.07238 0.262346 1.42521   V2 1.7 0.275 1.36389 
+  N0 -0.333935 -3.25455e-16 0.942596   N1 -0.291732 0.426807 0.855995   N2 -0.0157732 0.461877 0.886804 
+   txt003 
+STRI 
+  V0 2.24213 0 0.785417   V1 2.22855 0.262346 0.8366   V2 2.51728 0.23071 1.12243 
+  N0 0.528678 0 -0.848822   N1 0.492146 0.41068 -0.767551   N2 0.813963 0.348056 -0.465103 
+   txt003 
+STRI 
+  V0 2.51728 0.23071 1.12243   V1 2.53704 0 1.08333   V2 2.24213 0 0.785417 
+  N0 0.813963 0.348056 -0.465103   N1 0.854063 0 -0.52017   N2 0.528678 0 -0.848822 
+   txt003 
+STRI 
+  V0 2.22855 0.262346 0.8366   V1 2.1946 0.419753 0.964558   V2 2.4679 0.369136 1.22016 
+  N0 0.492146 0.41068 -0.767551   N1 0.348602 0.814337 -0.464038   N2 0.627607 0.733748 -0.260237 
+   txt003 
+STRI 
+  V0 2.4679 0.369136 1.22016   V1 2.51728 0.23071 1.12243   V2 2.22855 0.262346 0.8366 
+  N0 0.627607 0.733748 -0.260237   N1 0.813963 0.348056 -0.465103   N2 0.492146 0.41068 -0.767551 
+   txt003 
+STRI 
+  V0 2.1946 0.419753 0.964558   V1 2.15046 0.472222 1.1309   V2 2.4037 0.415278 1.34722 
+  N0 0.348602 0.814337 -0.464038   N1 0.110195 0.99348 0.0292376   N2 0.215359 0.970454 0.108813 
+   txt003 
+STRI 
+  V0 2.4037 0.415278 1.34722   V1 2.4679 0.369136 1.22016   V2 2.1946 0.419753 0.964558 
+  N0 0.215359 0.970454 0.108813   N1 0.627607 0.733748 -0.260237   N2 0.348602 0.814337 -0.464038 
+   txt003 
+STRI 
+  V0 2.15046 0.472222 1.1309   V1 2.10633 0.419753 1.29725   V2 2.33951 0.369136 1.47428 
+  N0 0.110195 0.99348 0.0292376   N1 -0.135104 0.834377 0.534381   N2 -0.312511 0.816863 0.484842 
+   txt003 
+STRI 
+  V0 2.33951 0.369136 1.47428   V1 2.4037 0.415278 1.34722   V2 2.15046 0.472222 1.1309 
+  N0 -0.312511 0.816863 0.484842   N1 0.215359 0.970454 0.108813   N2 0.110195 0.99348 0.0292376 
+   txt003 
+STRI 
+  V0 2.10633 0.419753 1.29725   V1 2.07238 0.262346 1.42521   V2 2.29012 0.23071 1.57202 
+  N0 -0.135104 0.834377 0.534381   N1 -0.291732 0.426807 0.855995   N2 -0.64585 0.390219 0.656206 
+   txt003 
+STRI 
+  V0 2.29012 0.23071 1.57202   V1 2.33951 0.369136 1.47428   V2 2.10633 0.419753 1.29725 
+  N0 -0.64585 0.390219 0.656206   N1 -0.312511 0.816863 0.484842   N2 -0.135104 0.834377 0.534381 
+   txt003 
+STRI 
+  V0 2.07238 0.262346 1.42521   V1 2.0588 0 1.47639   V2 2.27037 0 1.61111 
+  N0 -0.291732 0.426807 0.855995   N1 -0.333935 -3.25455e-16 0.942596   N2 -0.731055 -1.69385e-16 0.682318 
+   txt003 
+STRI 
+  V0 2.27037 0 1.61111   V1 2.29012 0.23071 1.57202   V2 2.07238 0.262346 1.42521 
+  N0 -0.731055 -1.69385e-16 0.682318   N1 -0.64585 0.390219 0.656206   N2 -0.291732 0.426807 0.855995 
+   txt003 
+STRI 
+  V0 2.53704 0 1.08333   V1 2.51728 0.23071 1.12243   V2 2.66528 0.189583 1.47014 
+  N0 0.854063 0 -0.52017   N1 0.813963 0.348056 -0.465103   N2 0.913262 0.329186 -0.239977 
+   txt003 
+STRI 
+  V0 2.66528 0.189583 1.47014   V1 2.6875 0 1.44375   V2 2.53704 0 1.08333 
+  N0 0.913262 0.329186 -0.239977   N1 0.957826 0 -0.287348   N2 0.854063 0 -0.52017 
+   txt003 
+STRI 
+  V0 2.51728 0.23071 1.12243   V1 2.4679 0.369136 1.22016   V2 2.60972 0.303333 1.53611 
+  N0 0.813963 0.348056 -0.465103   N1 0.627607 0.733748 -0.260237   N2 0.705424 0.704198 -0.0805066 
+   txt003 
+STRI 
+  V0 2.60972 0.303333 1.53611   V1 2.66528 0.189583 1.47014   V2 2.51728 0.23071 1.12243 
+  N0 0.705424 0.704198 -0.0805066   N1 0.913262 0.329186 -0.239977   N2 0.813963 0.348056 -0.465103 
+   txt003 
+STRI 
+  V0 2.4679 0.369136 1.22016   V1 2.4037 0.415278 1.34722   V2 2.5375 0.34125 1.62188 
+  N0 0.627607 0.733748 -0.260237   N1 0.215359 0.970454 0.108813   N2 0.214084 0.960035 0.180281 
+   txt003 
+STRI 
+  V0 2.5375 0.34125 1.62188   V1 2.60972 0.303333 1.53611   V2 2.4679 0.369136 1.22016 
+  N0 0.214084 0.960035 0.180281   N1 0.705424 0.704198 -0.0805066   N2 0.627607 0.733748 -0.260237 
+   txt003 
+STRI 
+  V0 2.4037 0.415278 1.34722   V1 2.33951 0.369136 1.47428   V2 2.46528 0.303333 1.70764 
+  N0 0.215359 0.970454 0.108813   N1 -0.312511 0.816863 0.484842   N2 -0.451323 0.803033 0.38916 
+   txt003 
+STRI 
+  V0 2.46528 0.303333 1.70764   V1 2.5375 0.34125 1.62188   V2 2.4037 0.415278 1.34722 
+  N0 -0.451323 0.803033 0.38916   N1 0.214084 0.960035 0.180281   N2 0.215359 0.970454 0.108813 
+   txt003 
+STRI 
+  V0 2.33951 0.369136 1.47428   V1 2.29012 0.23071 1.57202   V2 2.40972 0.189583 1.77361 
+  N0 -0.312511 0.816863 0.484842   N1 -0.64585 0.390219 0.656206   N2 -0.835237 0.363942 0.412221 
+   txt003 
+STRI 
+  V0 2.40972 0.189583 1.77361   V1 2.46528 0.303333 1.70764   V2 2.33951 0.369136 1.47428 
+  N0 -0.835237 0.363942 0.412221   N1 -0.451323 0.803033 0.38916   N2 -0.312511 0.816863 0.484842 
+   txt003 
+STRI 
+  V0 2.29012 0.23071 1.57202   V1 2.27037 0 1.61111   V2 2.3875 0 1.8 
+  N0 -0.64585 0.390219 0.656206   N1 -0.731055 -1.69385e-16 0.682318   N2 -0.920582 -2.76813e-16 0.39055 
+   txt003 
+STRI 
+  V0 2.3875 0 1.8   V1 2.40972 0.189583 1.77361   V2 2.29012 0.23071 1.57202 
+  N0 -0.920582 -2.76813e-16 0.39055   N1 -0.835237 0.363942 0.412221   N2 -0.64585 0.390219 0.656206 
+   txt003 
+STRI 
+  V0 2.6875 0 1.44375   V1 2.66528 0.189583 1.47014   V2 2.7716 0.148457 1.83128 
+  N0 0.957826 0 -0.287348   N1 0.913262 0.329186 -0.239977   N2 0.880144 0.401503 -0.253261 
+   txt003 
+STRI 
+  V0 2.7716 0.148457 1.83128   V1 2.7963 0 1.81667   V2 2.6875 0 1.44375 
+  N0 0.880144 0.401503 -0.253261   N1 0.947588 0 -0.319493   N2 0.957826 0 -0.287348 
+   txt003 
+STRI 
+  V0 2.66528 0.189583 1.47014   V1 2.60972 0.303333 1.53611   V2 2.70988 0.237531 1.8678 
+  N0 0.913262 0.329186 -0.239977   N1 0.705424 0.704198 -0.0805066   N2 0.60461 0.794635 -0.0547983 
+   txt003 
+STRI 
+  V0 2.70988 0.237531 1.8678   V1 2.7716 0.148457 1.83128   V2 2.66528 0.189583 1.47014 
+  N0 0.60461 0.794635 -0.0547983   N1 0.880144 0.401503 -0.253261   N2 0.913262 0.329186 -0.239977 
+   txt003 
+STRI 
+  V0 2.60972 0.303333 1.53611   V1 2.5375 0.34125 1.62188   V2 2.62963 0.267222 1.91528 
+  N0 0.705424 0.704198 -0.0805066   N1 0.214084 0.960035 0.180281   N2 0.113546 0.974822 0.191909 
+   txt003 
+STRI 
+  V0 2.62963 0.267222 1.91528   V1 2.70988 0.237531 1.8678   V2 2.60972 0.303333 1.53611 
+  N0 0.113546 0.974822 0.191909   N1 0.60461 0.794635 -0.0547983   N2 0.705424 0.704198 -0.0805066 
+   txt003 
+STRI 
+  V0 2.5375 0.34125 1.62188   V1 2.46528 0.303333 1.70764   V2 2.54938 0.237531 1.96276 
+  N0 0.214084 0.960035 0.180281   N1 -0.451323 0.803033 0.38916   N2 -0.452673 0.821162 0.347535 
+   txt003 
+STRI 
+  V0 2.54938 0.237531 1.96276   V1 2.62963 0.267222 1.91528   V2 2.5375 0.34125 1.62188 
+  N0 -0.452673 0.821162 0.347535   N1 0.113546 0.974822 0.191909   N2 0.214084 0.960035 0.180281 
+   txt003 
+STRI 
+  V0 2.46528 0.303333 1.70764   V1 2.40972 0.189583 1.77361   V2 2.48765 0.148457 1.99928 
+  N0 -0.451323 0.803033 0.38916   N1 -0.835237 0.363942 0.412221   N2 -0.842821 0.409176 0.34961 
+   txt003 
+STRI 
+  V0 2.48765 0.148457 1.99928   V1 2.54938 0.237531 1.96276   V2 2.46528 0.303333 1.70764 
+  N0 -0.842821 0.409176 0.34961   N1 -0.452673 0.821162 0.347535   N2 -0.451323 0.803033 0.38916 
+   txt003 
+STRI 
+  V0 2.40972 0.189583 1.77361   V1 2.3875 0 1.8   V2 2.46296 0 2.01389 
+  N0 -0.835237 0.363942 0.412221   N1 -0.920582 -2.76813e-16 0.39055   N2 -0.948683 -4.59839e-16 0.316228 
+   txt003 
+STRI 
+  V0 2.46296 0 2.01389   V1 2.48765 0.148457 1.99928   V2 2.40972 0.189583 1.77361 
+  N0 -0.948683 -4.59839e-16 0.316228   N1 -0.842821 0.409176 0.34961   N2 -0.835237 0.363942 0.412221 
+   txt003 
+STRI 
+  V0 2.7963 0 1.81667   V1 2.7716 0.148457 1.83128   V2 2.93534 0.116821 2.15738 
+  N0 0.947588 0 -0.319493   N1 0.880144 0.401503 -0.253261   N2 0.70819 0.492319 -0.506053 
+   txt003 
+STRI 
+  V0 2.93534 0.116821 2.15738   V1 2.9662 0 2.15208   V2 2.7963 0 1.81667 
+  N0 0.70819 0.492319 -0.506053   N1 0.787582 0 -0.61621   N2 0.947588 0 -0.319493 
+   txt003 
+STRI 
+  V0 2.7716 0.148457 1.83128   V1 2.70988 0.237531 1.8678   V2 2.85818 0.186914 2.17063 
+  N0 0.880144 0.401503 -0.253261   N1 0.60461 0.794635 -0.0547983   N2 0.417243 0.88974 -0.185122 
+   txt003 
+STRI 
+  V0 2.85818 0.186914 2.17063   V1 2.93534 0.116821 2.15738   V2 2.7716 0.148457 1.83128 
+  N0 0.417243 0.88974 -0.185122   N1 0.70819 0.492319 -0.506053   N2 0.880144 0.401503 -0.253261 
+   txt003 
+STRI 
+  V0 2.70988 0.237531 1.8678   V1 2.62963 0.267222 1.91528   V2 2.75787 0.210278 2.18785 
+  N0 0.60461 0.794635 -0.0547983   N1 0.113546 0.974822 0.191909   N2 0.0260102 0.988113 0.151516 
+   txt003 
+STRI 
+  V0 2.75787 0.210278 2.18785   V1 2.85818 0.186914 2.17063   V2 2.70988 0.237531 1.8678 
+  N0 0.0260102 0.988113 0.151516   N1 0.417243 0.88974 -0.185122   N2 0.60461 0.794635 -0.0547983 
+   txt003 
+STRI 
+  V0 2.62963 0.267222 1.91528   V1 2.54938 0.237531 1.96276   V2 2.65756 0.186914 2.20507 
+  N0 0.113546 0.974822 0.191909   N1 -0.452673 0.821162 0.347535   N2 -0.365378 0.851743 0.375544 
+   txt003 
+STRI 
+  V0 2.65756 0.186914 2.20507   V1 2.75787 0.210278 2.18785   V2 2.62963 0.267222 1.91528 
+  N0 -0.365378 0.851743 0.375544   N1 0.0260102 0.988113 0.151516   N2 0.113546 0.974822 0.191909 
+   txt003 
+STRI 
+  V0 2.54938 0.237531 1.96276   V1 2.48765 0.148457 1.99928   V2 2.5804 0.116821 2.21831 
+  N0 -0.452673 0.821162 0.347535   N1 -0.842821 0.409176 0.34961   N2 -0.723795 0.498863 0.476715 
+   txt003 
+STRI 
+  V0 2.5804 0.116821 2.21831   V1 2.65756 0.186914 2.20507   V2 2.54938 0.237531 1.96276 
+  N0 -0.723795 0.498863 0.476715   N1 -0.365378 0.851743 0.375544   N2 -0.452673 0.821162 0.347535 
+   txt003 
+STRI 
+  V0 2.48765 0.148457 1.99928   V1 2.46296 0 2.01389   V2 2.54954 0 2.22361 
+  N0 -0.842821 0.409176 0.34961   N1 -0.948683 -4.59839e-16 0.316228   N2 -0.874591 -1.30753e-15 0.484861 
+   txt003 
+STRI 
+  V0 2.54954 0 2.22361   V1 2.5804 0.116821 2.21831   V2 2.48765 0.148457 1.99928 
+  N0 -0.874591 -1.30753e-15 0.484861   N1 -0.723795 0.498863 0.476715   N2 -0.842821 0.409176 0.34961 
+   txt003 
+STRI 
+  V0 2.9662 0 2.15208   V1 2.93534 0.116821 2.15738   V2 3.25556 0.104167 2.4 
+  N0 0.787582 0 -0.61621   N1 0.70819 0.492319 -0.506053   N2 0.366221 0.366221 -0.855433 
+   txt003 
+STRI 
+  V0 3.25556 0.104167 2.4   V1 3.3 0 2.4   V2 2.9662 0 2.15208 
+  N0 0.366221 0.366221 -0.855433   N1 0.384615 0 -0.923077   N2 0.787582 0 -0.61621 
+   txt003 
+STRI 
+  V0 2.93534 0.116821 2.15738   V1 2.85818 0.186914 2.17063   V2 3.14444 0.166667 2.4 
+  N0 0.70819 0.492319 -0.506053   N1 0.417243 0.88974 -0.185122   N2 0.250514 0.801644 -0.54278 
+   txt003 
+STRI 
+  V0 3.14444 0.166667 2.4   V1 3.25556 0.104167 2.4   V2 2.93534 0.116821 2.15738 
+  N0 0.250514 0.801644 -0.54278   N1 0.366221 0.366221 -0.855433   N2 0.70819 0.492319 -0.506053 
+   txt003 
+STRI 
+  V0 2.85818 0.186914 2.17063   V1 2.75787 0.210278 2.18785   V2 3 0.1875 2.4 
+  N0 0.417243 0.88974 -0.185122   N1 0.0260102 0.988113 0.151516   N2 4.05793e-32 1 2.19303e-16 
+   txt003 
+STRI 
+  V0 3 0.1875 2.4   V1 3.14444 0.166667 2.4   V2 2.85818 0.186914 2.17063 
+  N0 4.05793e-32 1 2.19303e-16   N1 0.250514 0.801644 -0.54278   N2 0.417243 0.88974 -0.185122 
+   txt003 
+STRI 
+  V0 2.75787 0.210278 2.18785   V1 2.65756 0.186914 2.20507   V2 2.85556 0.166667 2.4 
+  N0 0.0260102 0.988113 0.151516   N1 -0.365378 0.851743 0.375544   N2 -0.267368 0.855576 0.443288 
+   txt003 
+STRI 
+  V0 2.85556 0.166667 2.4   V1 3 0.1875 2.4   V2 2.75787 0.210278 2.18785 
+  N0 -0.267368 0.855576 0.443288   N1 4.05793e-32 1 2.19303e-16   N2 0.0260102 0.988113 0.151516 
+   txt003 
+STRI 
+  V0 2.65756 0.186914 2.20507   V1 2.5804 0.116821 2.21831   V2 2.74444 0.104167 2.4 
+  N0 -0.365378 0.851743 0.375544   N1 -0.723795 0.498863 0.476715   N2 -0.497164 0.497164 0.711095 
+   txt003 
+STRI 
+  V0 2.74444 0.104167 2.4   V1 2.85556 0.166667 2.4   V2 2.65756 0.186914 2.20507 
+  N0 -0.497164 0.497164 0.711095   N1 -0.267368 0.855576 0.443288   N2 -0.365378 0.851743 0.375544 
+   txt003 
+STRI 
+  V0 2.5804 0.116821 2.21831   V1 2.54954 0 2.22361   V2 2.7 0 2.4 
+  N0 -0.723795 0.498863 0.476715   N1 -0.874591 -1.30753e-15 0.484861   N2 -0.6 -3.55271e-15 0.8 
+   txt003 
+STRI 
+  V0 2.7 0 2.4   V1 2.74444 0.104167 2.4   V2 2.5804 0.116821 2.21831 
+  N0 -0.6 -3.55271e-15 0.8   N1 -0.497164 0.497164 0.711095   N2 -0.723795 0.498863 0.476715 
+   txt003 
+STRI 
+  V0 2.7 0 2.4   V1 2.74444 -0.104167 2.4   V2 2.79641 -0.10108 2.43193 
+  N0 -0.6 0 0.8   N1 -0.497164 -0.497164 0.711095   N2 -0.387052 -0.411886 0.824949 
+   txt003 
+STRI 
+  V0 2.79641 -0.10108 2.43193   V1 2.74907 0 2.43125   V2 2.7 0 2.4 
+  N0 -0.387052 -0.411886 0.824949   N1 -0.467888 0 0.883788   N2 -0.6 0 0.8 
+   txt003 
+STRI 
+  V0 2.74444 -0.104167 2.4   V1 2.85556 -0.166667 2.4   V2 2.91474 -0.161728 2.43361 
+  N0 -0.497164 -0.497164 0.711095   N1 -0.267368 -0.855576 0.443288   N2 -0.215548 -0.724209 0.655027 
+   txt003 
+STRI 
+  V0 2.91474 -0.161728 2.43361   V1 2.79641 -0.10108 2.43193   V2 2.74444 -0.104167 2.4 
+  N0 -0.215548 -0.724209 0.655027   N1 -0.387052 -0.411886 0.824949   N2 -0.497164 -0.497164 0.711095 
+   txt003 
+STRI 
+  V0 2.85556 -0.166667 2.4   V1 3 -0.1875 2.4   V2 3.06858 -0.181944 2.43581 
+  N0 -0.267368 -0.855576 0.443288   N1 0 -1 0   N2 -0.00489618 -0.939227 0.343261 
+   txt003 
+STRI 
+  V0 3.06858 -0.181944 2.43581   V1 2.91474 -0.161728 2.43361   V2 2.85556 -0.166667 2.4 
+  N0 -0.00489618 -0.939227 0.343261   N1 -0.215548 -0.724209 0.655027   N2 -0.267368 -0.855576 0.443288 
+   txt003 
+STRI 
+  V0 3 -0.1875 2.4   V1 3.14444 -0.166667 2.4   V2 3.22241 -0.161728 2.438 
+  N0 0 -1 0   N1 0.250514 -0.801644 -0.54278   N2 0.269127 -0.933284 -0.237808 
+   txt003 
+STRI 
+  V0 3.22241 -0.161728 2.438   V1 3.06858 -0.181944 2.43581   V2 3 -0.1875 2.4 
+  N0 0.269127 -0.933284 -0.237808   N1 -0.00489618 -0.939227 0.343261   N2 0 -1 0 
+   txt003 
+STRI 
+  V0 3.14444 -0.166667 2.4   V1 3.25556 -0.104167 2.4   V2 3.34075 -0.10108 2.43969 
+  N0 0.250514 -0.801644 -0.54278   N1 0.366221 -0.366221 -0.855433   N2 0.442187 -0.473386 -0.761824 
+   txt003 
+STRI 
+  V0 3.34075 -0.10108 2.43969   V1 3.22241 -0.161728 2.438   V2 3.14444 -0.166667 2.4 
+  N0 0.442187 -0.473386 -0.761824   N1 0.269127 -0.933284 -0.237808   N2 0.250514 -0.801644 -0.54278 
+   txt003 
+STRI 
+  V0 3.25556 -0.104167 2.4   V1 3.3 0 2.4   V2 3.38808 0 2.44036 
+  N0 0.366221 -0.366221 -0.855433   N1 0.384615 -2.55067e-15 -0.923077   N2 0.463425 -2.75328e-15 -0.886136 
+   txt003 
+STRI 
+  V0 3.38808 0 2.44036   V1 3.34075 -0.10108 2.43969   V2 3.25556 -0.104167 2.4 
+  N0 0.463425 -2.75328e-15 -0.886136   N1 0.442187 -0.473386 -0.761824   N2 0.366221 -0.366221 -0.855433 
+   txt003 
+STRI 
+  V0 2.74907 0 2.43125   V1 2.79641 -0.10108 2.43193   V2 2.83978 -0.0933642 2.45123 
+  N0 -0.467888 0 0.883788   N1 -0.387052 -0.411886 0.824949   N2 -0.253997 -0.272114 0.928138 
+   txt003 
+STRI 
+  V0 2.83978 -0.0933642 2.45123   V1 2.79259 0 2.45   V2 2.74907 0 2.43125 
+  N0 -0.253997 -0.272114 0.928138   N1 -0.306009 0 0.952029   N2 -0.467888 0 0.883788 
+   txt003 
+STRI 
+  V0 2.79641 -0.10108 2.43193   V1 2.91474 -0.161728 2.43361   V2 2.95775 -0.149383 2.45432 
+  N0 -0.387052 -0.411886 0.824949   N1 -0.215548 -0.724209 0.655027   N2 -0.14959 -0.481391 0.863647 
+   txt003 
+STRI 
+  V0 2.95775 -0.149383 2.45432   V1 2.83978 -0.0933642 2.45123   V2 2.79641 -0.10108 2.43193 
+  N0 -0.14959 -0.481391 0.863647   N1 -0.253997 -0.272114 0.928138   N2 -0.387052 -0.411886 0.824949 
+   txt003 
+STRI 
+  V0 2.91474 -0.161728 2.43361   V1 3.06858 -0.181944 2.43581   V2 3.11111 -0.168056 2.45833 
+  N0 -0.215548 -0.724209 0.655027   N1 -0.00489618 -0.939227 0.343261   N2 -0.0195232 -0.665415 0.746219 
+   txt003 
+STRI 
+  V0 3.11111 -0.168056 2.45833   V1 2.95775 -0.149383 2.45432   V2 2.91474 -0.161728 2.43361 
+  N0 -0.0195232 -0.665415 0.746219   N1 -0.14959 -0.481391 0.863647   N2 -0.215548 -0.724209 0.655027 
+   txt003 
+STRI 
+  V0 3.06858 -0.181944 2.43581   V1 3.22241 -0.161728 2.438   V2 3.26447 -0.149383 2.46235 
+  N0 -0.00489618 -0.939227 0.343261   N1 0.269127 -0.933284 -0.237808   N2 0.218115 -0.87054 0.44112 
+   txt003 
+STRI 
+  V0 3.26447 -0.149383 2.46235   V1 3.11111 -0.168056 2.45833   V2 3.06858 -0.181944 2.43581 
+  N0 0.218115 -0.87054 0.44112   N1 -0.0195232 -0.665415 0.746219   N2 -0.00489618 -0.939227 0.343261 
+   txt003 
+STRI 
+  V0 3.22241 -0.161728 2.438   V1 3.34075 -0.10108 2.43969   V2 3.38244 -0.0933642 2.46543 
+  N0 0.269127 -0.933284 -0.237808   N1 0.442187 -0.473386 -0.761824   N2 0.612385 -0.714958 -0.337372 
+   txt003 
+STRI 
+  V0 3.38244 -0.0933642 2.46543   V1 3.26447 -0.149383 2.46235   V2 3.22241 -0.161728 2.438 
+  N0 0.612385 -0.714958 -0.337372   N1 0.218115 -0.87054 0.44112   N2 0.269127 -0.933284 -0.237808 
+   txt003 
+STRI 
+  V0 3.34075 -0.10108 2.43969   V1 3.38808 0 2.44036   V2 3.42963 0 2.46667 
+  N0 0.442187 -0.473386 -0.761824   N1 0.463425 -2.75328e-15 -0.886136   N2 0.694136 -3.24605e-15 -0.719844 
+   txt003 
+STRI 
+  V0 3.42963 0 2.46667   V1 3.38244 -0.0933642 2.46543   V2 3.34075 -0.10108 2.43969 
+  N0 0.694136 -3.24605e-15 -0.719844   N1 0.612385 -0.714958 -0.337372   N2 0.442187 -0.473386 -0.761824 
+   txt003 
+STRI 
+  V0 2.79259 0 2.45   V1 2.83978 -0.0933642 2.45123   V2 2.86968 -0.0833333 2.45781 
+  N0 -0.306009 0 0.952029   N1 -0.253997 -0.272114 0.928138   N2 -0.0182321 0.0210195 0.999613 
+   txt003 
+STRI 
+  V0 2.86968 -0.0833333 2.45781   V1 2.825 0 2.45625   V2 2.79259 0 2.45 
+  N0 -0.0182321 0.0210195 0.999613   N1 2.22045e-15 0 1   N2 -0.306009 0 0.952029 
+   txt003 
+STRI 
+  V0 2.83978 -0.0933642 2.45123   V1 2.95775 -0.149383 2.45432   V2 2.98137 -0.133333 2.46172 
+  N0 -0.253997 -0.272114 0.928138   N1 -0.14959 -0.481391 0.863647   N2 -0.0369301 -0.00796532 0.999286 
+   txt003 
+STRI 
+  V0 2.98137 -0.133333 2.46172   V1 2.86968 -0.0833333 2.45781   V2 2.83978 -0.0933642 2.45123 
+  N0 -0.0369301 -0.00796532 0.999286   N1 -0.0182321 0.0210195 0.999613   N2 -0.253997 -0.272114 0.928138 
+   txt003 
+STRI 
+  V0 2.95775 -0.149383 2.45432   V1 3.11111 -0.168056 2.45833   V2 3.12656 -0.15 2.4668 
+  N0 -0.14959 -0.481391 0.863647   N1 -0.0195232 -0.665415 0.746219   N2 -0.0348909 -0.0594438 0.997622 
+   txt003 
+STRI 
+  V0 3.12656 -0.15 2.4668   V1 2.98137 -0.133333 2.46172   V2 2.95775 -0.149383 2.45432 
+  N0 -0.0348909 -0.0594438 0.997622   N1 -0.0369301 -0.00796532 0.999286   N2 -0.14959 -0.481391 0.863647 
+   txt003 
+STRI 
+  V0 3.11111 -0.168056 2.45833   V1 3.26447 -0.149383 2.46235   V2 3.27176 -0.133333 2.47187 
+  N0 -0.0195232 -0.665415 0.746219   N1 0.218115 -0.87054 0.44112   N2 -0.00787186 -0.108144 0.994104 
+   txt003 
+STRI 
+  V0 3.27176 -0.133333 2.47187   V1 3.12656 -0.15 2.4668   V2 3.11111 -0.168056 2.45833 
+  N0 -0.00787186 -0.108144 0.994104   N1 -0.0348909 -0.0594438 0.997622   N2 -0.0195232 -0.665415 0.746219 
+   txt003 
+STRI 
+  V0 3.26447 -0.149383 2.46235   V1 3.38244 -0.0933642 2.46543   V2 3.38345 -0.0833333 2.47578 
+  N0 0.218115 -0.87054 0.44112   N1 0.612385 -0.714958 -0.337372   N2 0.0539577 -0.111406 0.992309 
+   txt003 
+STRI 
+  V0 3.38345 -0.0833333 2.47578   V1 3.27176 -0.133333 2.47187   V2 3.26447 -0.149383 2.46235 
+  N0 0.0539577 -0.111406 0.992309   N1 -0.00787186 -0.108144 0.994104   N2 0.218115 -0.87054 0.44112 
+   txt003 
+STRI 
+  V0 3.38244 -0.0933642 2.46543   V1 3.42963 0 2.46667   V2 3.42813 0 2.47734 
+  N0 0.612385 -0.714958 -0.337372   N1 0.694136 -3.24605e-15 -0.719844   N2 0.106533 1.89241e-15 0.994309 
+   txt003 
+STRI 
+  V0 3.42813 0 2.47734   V1 3.38345 -0.0833333 2.47578   V2 3.38244 -0.0933642 2.46543 
+  N0 0.106533 1.89241e-15 0.994309   N1 0.0539577 -0.111406 0.992309   N2 0.612385 -0.714958 -0.337372 
+   txt003 
+STRI 
+  V0 2.825 0 2.45625   V1 2.86968 -0.0833333 2.45781   V2 2.88121 -0.0733025 2.45154 
+  N0 2.22045e-15 0 1   N1 -0.0182321 0.0210195 0.999613   N2 0.507715 0.682832 0.525324 
+   txt003 
+STRI 
+  V0 2.88121 -0.0733025 2.45154   V1 2.84074 0 2.45   V2 2.825 0 2.45625 
+  N0 0.507715 0.682832 0.525324   N1 0.913812 0 0.406138   N2 2.22045e-15 0 1 
+   txt003 
+STRI 
+  V0 2.86968 -0.0833333 2.45781   V1 2.98137 -0.133333 2.46172   V2 2.98237 -0.117284 2.4554 
+  N0 -0.0182321 0.0210195 0.999613   N1 -0.0369301 -0.00796532 0.999286   N2 0.148477 0.721529 0.676277 
+   txt003 
+STRI 
+  V0 2.98237 -0.117284 2.4554   V1 2.88121 -0.0733025 2.45154   V2 2.86968 -0.0833333 2.45781 
+  N0 0.148477 0.721529 0.676277   N1 0.507715 0.682832 0.525324   N2 -0.0182321 0.0210195 0.999613 
+   txt003 
+STRI 
+  V0 2.98137 -0.133333 2.46172   V1 3.12656 -0.15 2.4668   V2 3.11389 -0.131944 2.46042 
+  N0 -0.0369301 -0.00796532 0.999286   N1 -0.0348909 -0.0594438 0.997622   N2 -0.0300305 0.615625 0.787467 
+   txt003 
+STRI 
+  V0 3.11389 -0.131944 2.46042   V1 2.98237 -0.117284 2.4554   V2 2.98137 -0.133333 2.46172 
+  N0 -0.0300305 0.615625 0.787467   N1 0.148477 0.721529 0.676277   N2 -0.0369301 -0.00796532 0.999286 
+   txt003 
+STRI 
+  V0 3.12656 -0.15 2.4668   V1 3.27176 -0.133333 2.47187   V2 3.2454 -0.117284 2.46543 
+  N0 -0.0348909 -0.0594438 0.997622   N1 -0.00787186 -0.108144 0.994104   N2 -0.144371 0.459364 0.876437 
+   txt003 
+STRI 
+  V0 3.2454 -0.117284 2.46543   V1 3.11389 -0.131944 2.46042   V2 3.12656 -0.15 2.4668 
+  N0 -0.144371 0.459364 0.876437   N1 -0.0300305 0.615625 0.787467   N2 -0.0348909 -0.0594438 0.997622 
+   txt003 
+STRI 
+  V0 3.27176 -0.133333 2.47187   V1 3.38345 -0.0833333 2.47578   V2 3.34657 -0.0733025 2.46929 
+  N0 -0.00787186 -0.108144 0.994104   N1 0.0539577 -0.111406 0.992309   N2 -0.223743 0.242919 0.943891 
+   txt003 
+STRI 
+  V0 3.34657 -0.0733025 2.46929   V1 3.2454 -0.117284 2.46543   V2 3.27176 -0.133333 2.47187 
+  N0 -0.223743 0.242919 0.943891   N1 -0.144371 0.459364 0.876437   N2 -0.00787186 -0.108144 0.994104 
+   txt003 
+STRI 
+  V0 3.38345 -0.0833333 2.47578   V1 3.42813 0 2.47734   V2 3.38704 0 2.47083 
+  N0 0.0539577 -0.111406 0.992309   N1 0.106533 1.89241e-15 0.994309   N2 -0.253109 3.19224e-15 0.967438 
+   txt003 
+STRI 
+  V0 3.38704 0 2.47083   V1 3.34657 -0.0733025 2.46929   V2 3.38345 -0.0833333 2.47578 
+  N0 -0.253109 3.19224e-15 0.967438   N1 -0.223743 0.242919 0.943891   N2 0.0539577 -0.111406 0.992309 
+   txt003 
+STRI 
+  V0 2.84074 0 2.45   V1 2.88121 -0.0733025 2.45154   V2 2.86949 -0.0655864 2.43231 
+  N0 0.913812 0 0.406138   N1 0.507715 0.682832 0.525324   N2 0.577416 0.711734 -0.400031 
+   txt003 
+STRI 
+  V0 2.86949 -0.0655864 2.43231   V1 2.83426 0 2.43125   V2 2.84074 0 2.45 
+  N0 0.577416 0.711734 -0.400031   N1 0.789352 0 -0.613941   N2 0.913812 0 0.406138 
+   txt003 
+STRI 
+  V0 2.88121 -0.0733025 2.45154   V1 2.98237 -0.117284 2.4554   V2 2.95756 -0.104938 2.43496 
+  N0 0.507715 0.682832 0.525324   N1 0.148477 0.721529 0.676277   N2 0.241288 0.970358 -0.0136399 
+   txt003 
+STRI 
+  V0 2.95756 -0.104938 2.43496   V1 2.86949 -0.0655864 2.43231   V2 2.88121 -0.0733025 2.45154 
+  N0 0.241288 0.970358 -0.0136399   N1 0.577416 0.711734 -0.400031   N2 0.507715 0.682832 0.525324 
+   txt003 
+STRI 
+  V0 2.98237 -0.117284 2.4554   V1 3.11389 -0.131944 2.46042   V2 3.07205 -0.118056 2.43841 
+  N0 0.148477 0.721529 0.676277   N1 -0.0300305 0.615625 0.787467   N2 -0.0103804 0.938666 0.344672 
+   txt003 
+STRI 
+  V0 3.07205 -0.118056 2.43841   V1 2.95756 -0.104938 2.43496   V2 2.98237 -0.117284 2.4554 
+  N0 -0.0103804 0.938666 0.344672   N1 0.241288 0.970358 -0.0136399   N2 0.148477 0.721529 0.676277 
+   txt003 
+STRI 
+  V0 3.11389 -0.131944 2.46042   V1 3.2454 -0.117284 2.46543   V2 3.18654 -0.104938 2.44186 
+  N0 -0.0300305 0.615625 0.787467   N1 -0.144371 0.459364 0.876437   N2 -0.199105 0.721639 0.663019 
+   txt003 
+STRI 
+  V0 3.18654 -0.104938 2.44186   V1 3.07205 -0.118056 2.43841   V2 3.11389 -0.131944 2.46042 
+  N0 -0.199105 0.721639 0.663019   N1 -0.0103804 0.938666 0.344672   N2 -0.0300305 0.615625 0.787467 
+   txt003 
+STRI 
+  V0 3.2454 -0.117284 2.46543   V1 3.34657 -0.0733025 2.46929   V2 3.27461 -0.0655864 2.44451 
+  N0 -0.144371 0.459364 0.876437   N1 -0.223743 0.242919 0.943891   N2 -0.316294 0.364979 0.875641 
+   txt003 
+STRI 
+  V0 3.27461 -0.0655864 2.44451   V1 3.18654 -0.104938 2.44186   V2 3.2454 -0.117284 2.46543 
+  N0 -0.316294 0.364979 0.875641   N1 -0.199105 0.721639 0.663019   N2 -0.144371 0.459364 0.876437 
+   txt003 
+STRI 
+  V0 3.34657 -0.0733025 2.46929   V1 3.38704 0 2.47083   V2 3.30984 0 2.44557 
+  N0 -0.223743 0.242919 0.943891   N1 -0.253109 3.19224e-15 0.967438   N2 -0.349987 4.0695e-15 0.936755 
+   txt003 
+STRI 
+  V0 3.30984 0 2.44557   V1 3.27461 -0.0655864 2.44451   V2 3.34657 -0.0733025 2.46929 
+  N0 -0.349987 4.0695e-15 0.936755   N1 -0.316294 0.364979 0.875641   N2 -0.223743 0.242919 0.943891 
+   txt003 
+STRI 
+  V0 2.83426 0 2.43125   V1 2.86949 -0.0655864 2.43231   V2 2.82963 -0.0625 2.4 
+  N0 0.789352 0 -0.613941   N1 0.577416 0.711734 -0.400031   N2 0.483629 0.537366 -0.690899 
+   txt003 
+STRI 
+  V0 2.82963 -0.0625 2.4   V1 2.8 0 2.4   V2 2.83426 0 2.43125 
+  N0 0.483629 0.537366 -0.690899   N1 0.6 0 -0.8   N2 0.789352 0 -0.613941 
+   txt003 
+STRI 
+  V0 2.86949 -0.0655864 2.43231   V1 2.95756 -0.104938 2.43496   V2 2.9037 -0.1 2.4 
+  N0 0.577416 0.711734 -0.400031   N1 0.241288 0.970358 -0.0136399   N2 0.247465 0.879877 -0.405681 
+   txt003 
+STRI 
+  V0 2.9037 -0.1 2.4   V1 2.82963 -0.0625 2.4   V2 2.86949 -0.0655864 2.43231 
+  N0 0.247465 0.879877 -0.405681   N1 0.483629 0.537366 -0.690899   N2 0.577416 0.711734 -0.400031 
+   txt003 
+STRI 
+  V0 2.95756 -0.104938 2.43496   V1 3.07205 -0.118056 2.43841   V2 3 -0.1125 2.4 
+  N0 0.241288 0.970358 -0.0136399   N1 -0.0103804 0.938666 0.344672   N2 0 1 0 
+   txt003 
+STRI 
+  V0 3 -0.1125 2.4   V1 2.9037 -0.1 2.4   V2 2.95756 -0.104938 2.43496 
+  N0 0 1 0   N1 0.247465 0.879877 -0.405681   N2 0.241288 0.970358 -0.0136399 
+   txt003 
+STRI 
+  V0 3.07205 -0.118056 2.43841   V1 3.18654 -0.104938 2.44186   V2 3.0963 -0.1 2.4 
+  N0 -0.0103804 0.938666 0.344672   N1 -0.199105 0.721639 0.663019   N2 -0.236617 0.841304 0.486024 
+   txt003 
+STRI 
+  V0 3.0963 -0.1 2.4   V1 3 -0.1125 2.4   V2 3.07205 -0.118056 2.43841 
+  N0 -0.236617 0.841304 0.486024   N1 0 1 0   N2 -0.0103804 0.938666 0.344672 
+   txt003 
+STRI 
+  V0 3.18654 -0.104938 2.44186   V1 3.27461 -0.0655864 2.44451   V2 3.17037 -0.0625 2.4 
+  N0 -0.199105 0.721639 0.663019   N1 -0.316294 0.364979 0.875641   N2 -0.378646 0.420717 0.824393 
+   txt003 
+STRI 
+  V0 3.17037 -0.0625 2.4   V1 3.0963 -0.1 2.4   V2 3.18654 -0.104938 2.44186 
+  N0 -0.378646 0.420717 0.824393   N1 -0.236617 0.841304 0.486024   N2 -0.199105 0.721639 0.663019 
+   txt003 
+STRI 
+  V0 3.27461 -0.0655864 2.44451   V1 3.30984 0 2.44557   V2 3.2 0 2.4 
+  N0 -0.316294 0.364979 0.875641   N1 -0.349987 4.0695e-15 0.936755   N2 -0.410365 4.31973e-15 0.911922 
+   txt003 
+STRI 
+  V0 3.2 0 2.4   V1 3.17037 -0.0625 2.4   V2 3.27461 -0.0655864 2.44451 
+  N0 -0.410365 4.31973e-15 0.911922   N1 -0.378646 0.420717 0.824393   N2 -0.316294 0.364979 0.875641 
+   txt003 
+STRI 
+  V0 3.3 0 2.4   V1 3.25556 0.104167 2.4   V2 3.34075 0.10108 2.43969 
+  N0 0.384615 0 -0.923077   N1 0.366221 0.366221 -0.855433   N2 0.442187 0.473386 -0.761824 
+   txt003 
+STRI 
+  V0 3.34075 0.10108 2.43969   V1 3.38808 0 2.44036   V2 3.3 0 2.4 
+  N0 0.442187 0.473386 -0.761824   N1 0.463425 0 -0.886136   N2 0.384615 0 -0.923077 
+   txt003 
+STRI 
+  V0 3.25556 0.104167 2.4   V1 3.14444 0.166667 2.4   V2 3.22241 0.161728 2.438 
+  N0 0.366221 0.366221 -0.855433   N1 0.250514 0.801644 -0.54278   N2 0.269127 0.933284 -0.237808 
+   txt003 
+STRI 
+  V0 3.22241 0.161728 2.438   V1 3.34075 0.10108 2.43969   V2 3.25556 0.104167 2.4 
+  N0 0.269127 0.933284 -0.237808   N1 0.442187 0.473386 -0.761824   N2 0.366221 0.366221 -0.855433 
+   txt003 
+STRI 
+  V0 3.14444 0.166667 2.4   V1 3 0.1875 2.4   V2 3.06858 0.181944 2.43581 
+  N0 0.250514 0.801644 -0.54278   N1 0 1 -0   N2 -0.00489618 0.939227 0.343261 
+   txt003 
+STRI 
+  V0 3.06858 0.181944 2.43581   V1 3.22241 0.161728 2.438   V2 3.14444 0.166667 2.4 
+  N0 -0.00489618 0.939227 0.343261   N1 0.269127 0.933284 -0.237808   N2 0.250514 0.801644 -0.54278 
+   txt003 
+STRI 
+  V0 3 0.1875 2.4   V1 2.85556 0.166667 2.4   V2 2.91474 0.161728 2.43361 
+  N0 0 1 -0   N1 -0.267368 0.855576 0.443288   N2 -0.215548 0.724209 0.655027 
+   txt003 
+STRI 
+  V0 2.91474 0.161728 2.43361   V1 3.06858 0.181944 2.43581   V2 3 0.1875 2.4 
+  N0 -0.215548 0.724209 0.655027   N1 -0.00489618 0.939227 0.343261   N2 0 1 -0 
+   txt003 
+STRI 
+  V0 2.85556 0.166667 2.4   V1 2.74444 0.104167 2.4   V2 2.79641 0.10108 2.43193 
+  N0 -0.267368 0.855576 0.443288   N1 -0.497164 0.497164 0.711095   N2 -0.387052 0.411886 0.824949 
+   txt003 
+STRI 
+  V0 2.79641 0.10108 2.43193   V1 2.91474 0.161728 2.43361   V2 2.85556 0.166667 2.4 
+  N0 -0.387052 0.411886 0.824949   N1 -0.215548 0.724209 0.655027   N2 -0.267368 0.855576 0.443288 
+   txt003 
+STRI 
+  V0 2.74444 0.104167 2.4   V1 2.7 0 2.4   V2 2.74907 0 2.43125 
+  N0 -0.497164 0.497164 0.711095   N1 -0.6 2.24387e-29 0.8   N2 -0.467888 -4.75841e-16 0.883788 
+   txt003 
+STRI 
+  V0 2.74907 0 2.43125   V1 2.79641 0.10108 2.43193   V2 2.74444 0.104167 2.4 
+  N0 -0.467888 -4.75841e-16 0.883788   N1 -0.387052 0.411886 0.824949   N2 -0.497164 0.497164 0.711095 
+   txt003 
+STRI 
+  V0 3.38808 0 2.44036   V1 3.34075 0.10108 2.43969   V2 3.38244 0.0933642 2.46543 
+  N0 0.463425 0 -0.886136   N1 0.442187 0.473386 -0.761824   N2 0.612385 0.714958 -0.337372 
+   txt003 
+STRI 
+  V0 3.38244 0.0933642 2.46543   V1 3.42963 0 2.46667   V2 3.38808 0 2.44036 
+  N0 0.612385 0.714958 -0.337372   N1 0.694136 0 -0.719844   N2 0.463425 0 -0.886136 
+   txt003 
+STRI 
+  V0 3.34075 0.10108 2.43969   V1 3.22241 0.161728 2.438   V2 3.26447 0.149383 2.46235 
+  N0 0.442187 0.473386 -0.761824   N1 0.269127 0.933284 -0.237808   N2 0.218115 0.87054 0.44112 
+   txt003 
+STRI 
+  V0 3.26447 0.149383 2.46235   V1 3.38244 0.0933642 2.46543   V2 3.34075 0.10108 2.43969 
+  N0 0.218115 0.87054 0.44112   N1 0.612385 0.714958 -0.337372   N2 0.442187 0.473386 -0.761824 
+   txt003 
+STRI 
+  V0 3.22241 0.161728 2.438   V1 3.06858 0.181944 2.43581   V2 3.11111 0.168056 2.45833 
+  N0 0.269127 0.933284 -0.237808   N1 -0.00489618 0.939227 0.343261   N2 -0.0195232 0.665415 0.746219 
+   txt003 
+STRI 
+  V0 3.11111 0.168056 2.45833   V1 3.26447 0.149383 2.46235   V2 3.22241 0.161728 2.438 
+  N0 -0.0195232 0.665415 0.746219   N1 0.218115 0.87054 0.44112   N2 0.269127 0.933284 -0.237808 
+   txt003 
+STRI 
+  V0 3.06858 0.181944 2.43581   V1 2.91474 0.161728 2.43361   V2 2.95775 0.149383 2.45432 
+  N0 -0.00489618 0.939227 0.343261   N1 -0.215548 0.724209 0.655027   N2 -0.14959 0.481391 0.863647 
+   txt003 
+STRI 
+  V0 2.95775 0.149383 2.45432   V1 3.11111 0.168056 2.45833   V2 3.06858 0.181944 2.43581 
+  N0 -0.14959 0.481391 0.863647   N1 -0.0195232 0.665415 0.746219   N2 -0.00489618 0.939227 0.343261 
+   txt003 
+STRI 
+  V0 2.91474 0.161728 2.43361   V1 2.79641 0.10108 2.43193   V2 2.83978 0.0933642 2.45123 
+  N0 -0.215548 0.724209 0.655027   N1 -0.387052 0.411886 0.824949   N2 -0.253997 0.272114 0.928138 
+   txt003 
+STRI 
+  V0 2.83978 0.0933642 2.45123   V1 2.95775 0.149383 2.45432   V2 2.91474 0.161728 2.43361 
+  N0 -0.253997 0.272114 0.928138   N1 -0.14959 0.481391 0.863647   N2 -0.215548 0.724209 0.655027 
+   txt003 
+STRI 
+  V0 2.79641 0.10108 2.43193   V1 2.74907 0 2.43125   V2 2.79259 0 2.45 
+  N0 -0.387052 0.411886 0.824949   N1 -0.467888 -4.75841e-16 0.883788   N2 -0.306009 -1.09783e-15 0.952029 
+   txt003 
+STRI 
+  V0 2.79259 0 2.45   V1 2.83978 0.0933642 2.45123   V2 2.79641 0.10108 2.43193 
+  N0 -0.306009 -1.09783e-15 0.952029   N1 -0.253997 0.272114 0.928138   N2 -0.387052 0.411886 0.824949 
+   txt003 
+STRI 
+  V0 3.42963 0 2.46667   V1 3.38244 0.0933642 2.46543   V2 3.38345 0.0833333 2.47578 
+  N0 0.694136 0 -0.719844   N1 0.612385 0.714958 -0.337372   N2 0.0539577 0.111406 0.992309 
+   txt003 
+STRI 
+  V0 3.38345 0.0833333 2.47578   V1 3.42813 0 2.47734   V2 3.42963 0 2.46667 
+  N0 0.0539577 0.111406 0.992309   N1 0.106533 -0 0.994309   N2 0.694136 0 -0.719844 
+   txt003 
+STRI 
+  V0 3.38244 0.0933642 2.46543   V1 3.26447 0.149383 2.46235   V2 3.27176 0.133333 2.47188 
+  N0 0.612385 0.714958 -0.337372   N1 0.218115 0.87054 0.44112   N2 -0.00787186 0.108144 0.994104 
+   txt003 
+STRI 
+  V0 3.27176 0.133333 2.47188   V1 3.38345 0.0833333 2.47578   V2 3.38244 0.0933642 2.46543 
+  N0 -0.00787186 0.108144 0.994104   N1 0.0539577 0.111406 0.992309   N2 0.612385 0.714958 -0.337372 
+   txt003 
+STRI 
+  V0 3.26447 0.149383 2.46235   V1 3.11111 0.168056 2.45833   V2 3.12656 0.15 2.4668 
+  N0 0.218115 0.87054 0.44112   N1 -0.0195232 0.665415 0.746219   N2 -0.0348909 0.0594438 0.997622 
+   txt003 
+STRI 
+  V0 3.12656 0.15 2.4668   V1 3.27176 0.133333 2.47188   V2 3.26447 0.149383 2.46235 
+  N0 -0.0348909 0.0594438 0.997622   N1 -0.00787186 0.108144 0.994104   N2 0.218115 0.87054 0.44112 
+   txt003 
+STRI 
+  V0 3.11111 0.168056 2.45833   V1 2.95775 0.149383 2.45432   V2 2.98137 0.133333 2.46172 
+  N0 -0.0195232 0.665415 0.746219   N1 -0.14959 0.481391 0.863647   N2 -0.0369301 0.00796532 0.999286 
+   txt003 
+STRI 
+  V0 2.98137 0.133333 2.46172   V1 3.12656 0.15 2.4668   V2 3.11111 0.168056 2.45833 
+  N0 -0.0369301 0.00796532 0.999286   N1 -0.0348909 0.0594438 0.997622   N2 -0.0195232 0.665415 0.746219 
+   txt003 
+STRI 
+  V0 2.95775 0.149383 2.45432   V1 2.83978 0.0933642 2.45123   V2 2.86968 0.0833333 2.45781 
+  N0 -0.14959 0.481391 0.863647   N1 -0.253997 0.272114 0.928138   N2 -0.0182321 -0.0210195 0.999613 
+   txt003 
+STRI 
+  V0 2.86968 0.0833333 2.45781   V1 2.98137 0.133333 2.46172   V2 2.95775 0.149383 2.45432 
+  N0 -0.0182321 -0.0210195 0.999613   N1 -0.0369301 0.00796532 0.999286   N2 -0.14959 0.481391 0.863647 
+   txt003 
+STRI 
+  V0 2.83978 0.0933642 2.45123   V1 2.79259 0 2.45   V2 2.825 0 2.45625 
+  N0 -0.253997 0.272114 0.928138   N1 -0.306009 -1.09783e-15 0.952029   N2 2.22045e-15 -2.22045e-15 1 
+   txt003 
+STRI 
+  V0 2.825 0 2.45625   V1 2.86968 0.0833333 2.45781   V2 2.83978 0.0933642 2.45123 
+  N0 2.22045e-15 -2.22045e-15 1   N1 -0.0182321 -0.0210195 0.999613   N2 -0.253997 0.272114 0.928138 
+   txt003 
+STRI 
+  V0 3.42813 0 2.47734   V1 3.38345 0.0833333 2.47578   V2 3.34657 0.0733025 2.46929 
+  N0 0.106533 -0 0.994309   N1 0.0539577 0.111406 0.992309   N2 -0.223743 -0.242919 0.943891 
+   txt003 
+STRI 
+  V0 3.34657 0.0733025 2.46929   V1 3.38704 0 2.47083   V2 3.42813 0 2.47734 
+  N0 -0.223743 -0.242919 0.943891   N1 -0.253109 0 0.967438   N2 0.106533 -0 0.994309 
+   txt003 
+STRI 
+  V0 3.38345 0.0833333 2.47578   V1 3.27176 0.133333 2.47188   V2 3.2454 0.117284 2.46543 
+  N0 0.0539577 0.111406 0.992309   N1 -0.00787186 0.108144 0.994104   N2 -0.144371 -0.459364 0.876437 
+   txt003 
+STRI 
+  V0 3.2454 0.117284 2.46543   V1 3.34657 0.0733025 2.46929   V2 3.38345 0.0833333 2.47578 
+  N0 -0.144371 -0.459364 0.876437   N1 -0.223743 -0.242919 0.943891   N2 0.0539577 0.111406 0.992309 
+   txt003 
+STRI 
+  V0 3.27176 0.133333 2.47188   V1 3.12656 0.15 2.4668   V2 3.11389 0.131944 2.46042 
+  N0 -0.00787186 0.108144 0.994104   N1 -0.0348909 0.0594438 0.997622   N2 -0.0300305 -0.615625 0.787467 
+   txt003 
+STRI 
+  V0 3.11389 0.131944 2.46042   V1 3.2454 0.117284 2.46543   V2 3.27176 0.133333 2.47188 
+  N0 -0.0300305 -0.615625 0.787467   N1 -0.144371 -0.459364 0.876437   N2 -0.00787186 0.108144 0.994104 
+   txt003 
+STRI 
+  V0 3.12656 0.15 2.4668   V1 2.98137 0.133333 2.46172   V2 2.98237 0.117284 2.4554 
+  N0 -0.0348909 0.0594438 0.997622   N1 -0.0369301 0.00796532 0.999286   N2 0.148477 -0.721529 0.676277 
+   txt003 
+STRI 
+  V0 2.98237 0.117284 2.4554   V1 3.11389 0.131944 2.46042   V2 3.12656 0.15 2.4668 
+  N0 0.148477 -0.721529 0.676277   N1 -0.0300305 -0.615625 0.787467   N2 -0.0348909 0.0594438 0.997622 
+   txt003 
+STRI 
+  V0 2.98137 0.133333 2.46172   V1 2.86968 0.0833333 2.45781   V2 2.88121 0.0733025 2.45154 
+  N0 -0.0369301 0.00796532 0.999286   N1 -0.0182321 -0.0210195 0.999613   N2 0.507715 -0.682832 0.525324 
+   txt003 
+STRI 
+  V0 2.88121 0.0733025 2.45154   V1 2.98237 0.117284 2.4554   V2 2.98137 0.133333 2.46172 
+  N0 0.507715 -0.682832 0.525324   N1 0.148477 -0.721529 0.676277   N2 -0.0369301 0.00796532 0.999286 
+   txt003 
+STRI 
+  V0 2.86968 0.0833333 2.45781   V1 2.825 0 2.45625   V2 2.84074 0 2.45 
+  N0 -0.0182321 -0.0210195 0.999613   N1 2.22045e-15 -2.22045e-15 1   N2 0.913812 -4.13289e-15 0.406138 
+   txt003 
+STRI 
+  V0 2.84074 0 2.45   V1 2.88121 0.0733025 2.45154   V2 2.86968 0.0833333 2.45781 
+  N0 0.913812 -4.13289e-15 0.406138   N1 0.507715 -0.682832 0.525324   N2 -0.0182321 -0.0210195 0.999613 
+   txt003 
+STRI 
+  V0 3.38704 0 2.47083   V1 3.34657 0.0733025 2.46929   V2 3.27461 0.0655864 2.44451 
+  N0 -0.253109 0 0.967438   N1 -0.223743 -0.242919 0.943891   N2 -0.316294 -0.364979 0.875641 
+   txt003 
+STRI 
+  V0 3.27461 0.0655864 2.44451   V1 3.30984 0 2.44557   V2 3.38704 0 2.47083 
+  N0 -0.316294 -0.364979 0.875641   N1 -0.349987 0 0.936755   N2 -0.253109 0 0.967438 
+   txt003 
+STRI 
+  V0 3.34657 0.0733025 2.46929   V1 3.2454 0.117284 2.46543   V2 3.18654 0.104938 2.44186 
+  N0 -0.223743 -0.242919 0.943891   N1 -0.144371 -0.459364 0.876437   N2 -0.199105 -0.721639 0.663019 
+   txt003 
+STRI 
+  V0 3.18654 0.104938 2.44186   V1 3.27461 0.0655864 2.44451   V2 3.34657 0.0733025 2.46929 
+  N0 -0.199105 -0.721639 0.663019   N1 -0.316294 -0.364979 0.875641   N2 -0.223743 -0.242919 0.943891 
+   txt003 
+STRI 
+  V0 3.2454 0.117284 2.46543   V1 3.11389 0.131944 2.46042   V2 3.07205 0.118056 2.43841 
+  N0 -0.144371 -0.459364 0.876437   N1 -0.0300305 -0.615625 0.787467   N2 -0.0103804 -0.938666 0.344672 
+   txt003 
+STRI 
+  V0 3.07205 0.118056 2.43841   V1 3.18654 0.104938 2.44186   V2 3.2454 0.117284 2.46543 
+  N0 -0.0103804 -0.938666 0.344672   N1 -0.199105 -0.721639 0.663019   N2 -0.144371 -0.459364 0.876437 
+   txt003 
+STRI 
+  V0 3.11389 0.131944 2.46042   V1 2.98237 0.117284 2.4554   V2 2.95756 0.104938 2.43496 
+  N0 -0.0300305 -0.615625 0.787467   N1 0.148477 -0.721529 0.676277   N2 0.241288 -0.970358 -0.0136399 
+   txt003 
+STRI 
+  V0 2.95756 0.104938 2.43496   V1 3.07205 0.118056 2.43841   V2 3.11389 0.131944 2.46042 
+  N0 0.241288 -0.970358 -0.0136399   N1 -0.0103804 -0.938666 0.344672   N2 -0.0300305 -0.615625 0.787467 
+   txt003 
+STRI 
+  V0 2.98237 0.117284 2.4554   V1 2.88121 0.0733025 2.45154   V2 2.86949 0.0655864 2.43231 
+  N0 0.148477 -0.721529 0.676277   N1 0.507715 -0.682832 0.525324   N2 0.577416 -0.711734 -0.400031 
+   txt003 
+STRI 
+  V0 2.86949 0.0655864 2.43231   V1 2.95756 0.104938 2.43496   V2 2.98237 0.117284 2.4554 
+  N0 0.577416 -0.711734 -0.400031   N1 0.241288 -0.970358 -0.0136399   N2 0.148477 -0.721529 0.676277 
+   txt003 
+STRI 
+  V0 2.88121 0.0733025 2.45154   V1 2.84074 0 2.45   V2 2.83426 0 2.43125 
+  N0 0.507715 -0.682832 0.525324   N1 0.913812 -4.13289e-15 0.406138   N2 0.789352 -1.30938e-15 -0.613941 
+   txt003 
+STRI 
+  V0 2.83426 0 2.43125   V1 2.86949 0.0655864 2.43231   V2 2.88121 0.0733025 2.45154 
+  N0 0.789352 -1.30938e-15 -0.613941   N1 0.577416 -0.711734 -0.400031   N2 0.507715 -0.682832 0.525324 
+   txt003 
+STRI 
+  V0 3.30984 0 2.44557   V1 3.27461 0.0655864 2.44451   V2 3.17037 0.0625 2.4 
+  N0 -0.349987 0 0.936755   N1 -0.316294 -0.364979 0.875641   N2 -0.378646 -0.420717 0.824393 
+   txt003 
+STRI 
+  V0 3.17037 0.0625 2.4   V1 3.2 0 2.4   V2 3.30984 0 2.44557 
+  N0 -0.378646 -0.420717 0.824393   N1 -0.410365 0 0.911922   N2 -0.349987 0 0.936755 
+   txt003 
+STRI 
+  V0 3.27461 0.0655864 2.44451   V1 3.18654 0.104938 2.44186   V2 3.0963 0.1 2.4 
+  N0 -0.316294 -0.364979 0.875641   N1 -0.199105 -0.721639 0.663019   N2 -0.236617 -0.841304 0.486024 
+   txt003 
+STRI 
+  V0 3.0963 0.1 2.4   V1 3.17037 0.0625 2.4   V2 3.27461 0.0655864 2.44451 
+  N0 -0.236617 -0.841304 0.486024   N1 -0.378646 -0.420717 0.824393   N2 -0.316294 -0.364979 0.875641 
+   txt003 
+STRI 
+  V0 3.18654 0.104938 2.44186   V1 3.07205 0.118056 2.43841   V2 3 0.1125 2.4 
+  N0 -0.199105 -0.721639 0.663019   N1 -0.0103804 -0.938666 0.344672   N2 0 -1 0 
+   txt003 
+STRI 
+  V0 3 0.1125 2.4   V1 3.0963 0.1 2.4   V2 3.18654 0.104938 2.44186 
+  N0 0 -1 0   N1 -0.236617 -0.841304 0.486024   N2 -0.199105 -0.721639 0.663019 
+   txt003 
+STRI 
+  V0 3.07205 0.118056 2.43841   V1 2.95756 0.104938 2.43496   V2 2.9037 0.1 2.4 
+  N0 -0.0103804 -0.938666 0.344672   N1 0.241288 -0.970358 -0.0136399   N2 0.247465 -0.879877 -0.405681 
+   txt003 
+STRI 
+  V0 2.9037 0.1 2.4   V1 3 0.1125 2.4   V2 3.07205 0.118056 2.43841 
+  N0 0.247465 -0.879877 -0.405681   N1 0 -1 0   N2 -0.0103804 -0.938666 0.344672 
+   txt003 
+STRI 
+  V0 2.95756 0.104938 2.43496   V1 2.86949 0.0655864 2.43231   V2 2.82963 0.0625 2.4 
+  N0 0.241288 -0.970358 -0.0136399   N1 0.577416 -0.711734 -0.400031   N2 0.483629 -0.537366 -0.690899 
+   txt003 
+STRI 
+  V0 2.82963 0.0625 2.4   V1 2.9037 0.1 2.4   V2 2.95756 0.104938 2.43496 
+  N0 0.483629 -0.537366 -0.690899   N1 0.247465 -0.879877 -0.405681   N2 0.241288 -0.970358 -0.0136399 
+   txt003 
+STRI 
+  V0 2.86949 0.0655864 2.43231   V1 2.83426 0 2.43125   V2 2.8 0 2.4 
+  N0 0.577416 -0.711734 -0.400031   N1 0.789352 -1.30938e-15 -0.613941   N2 0.6 -3.73979e-29 -0.8 
+   txt003 
+STRI 
+  V0 2.8 0 2.4   V1 2.82963 0.0625 2.4   V2 2.86949 0.0655864 2.43231 
+  N0 0.6 -3.73979e-29 -0.8   N1 0.483629 -0.537366 -0.690899   N2 0.577416 -0.711734 -0.400031 
+   txt003 
+STRI 
+  V0 0.268946 -0.0750782 3.12708   V1 0.278704 0 3.12708   V2 0 0 3.15 
+  N0 0.241077 -0.0645609 0.968356   N1 0.249998 0 0.968246   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.241285 -0.141931 3.12708   V1 0.268946 -0.0750782 3.12708   V2 0 0 3.15 
+  N0 0.215548 -0.124615 0.968509   N1 0.241077 -0.0645609 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.19814 -0.19814 3.12708   V1 0.241285 -0.141931 3.12708   V2 0 0 3.15 
+  N0 0.175885 -0.175885 0.96857   N1 0.215548 -0.124615 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.141931 -0.241285 3.12708   V1 0.19814 -0.19814 3.12708   V2 0 0 3.15 
+  N0 0.124615 -0.215548 0.968509   N1 0.175885 -0.175885 0.96857   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.0750782 -0.268946 3.12708   V1 0.141931 -0.241285 3.12708   V2 0 0 3.15 
+  N0 0.0645609 -0.241077 0.968356   N1 0.124615 -0.215548 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0 -0.278704 3.12708   V1 0.0750782 -0.268946 3.12708   V2 0 0 3.15 
+  N0 -2.80184e-15 -0.249998 0.968246   N1 0.0645609 -0.241077 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.278704 0 3.12708   V1 0.268946 -0.0750782 3.12708   V2 0.350254 -0.0977709 3.06667 
+  N0 0.249998 0 0.968246   N1 0.241077 -0.0645609 0.968356   N2 0.955496 -0.255913 0.146755 
+   txt003 
+STRI 
+  V0 0.350254 -0.0977709 3.06667   V1 0.362963 0 3.06667   V2 0.278704 0 3.12708 
+  N0 0.955496 -0.255913 0.146755   N1 0.989203 0 0.146549   N2 0.249998 0 0.968246 
+   txt003 
+STRI 
+  V0 0.268946 -0.0750782 3.12708   V1 0.241285 -0.141931 3.12708   V2 0.314228 -0.184834 3.06667 
+  N0 0.241077 -0.0645609 0.968356   N1 0.215548 -0.124615 0.968509   N2 0.856312 -0.495088 0.147029 
+   txt003 
+STRI 
+  V0 0.314228 -0.184834 3.06667   V1 0.350254 -0.0977709 3.06667   V2 0.268946 -0.0750782 3.12708 
+  N0 0.856312 -0.495088 0.147029   N1 0.955496 -0.255913 0.146755   N2 0.241077 -0.0645609 0.968356 
+   txt003 
+STRI 
+  V0 0.241285 -0.141931 3.12708   V1 0.19814 -0.19814 3.12708   V2 0.258037 -0.258037 3.06667 
+  N0 0.215548 -0.124615 0.968509   N1 0.175885 -0.175885 0.96857   N2 0.699411 -0.699411 0.147135 
+   txt003 
+STRI 
+  V0 0.258037 -0.258037 3.06667   V1 0.314228 -0.184834 3.06667   V2 0.241285 -0.141931 3.12708 
+  N0 0.699411 -0.699411 0.147135   N1 0.856312 -0.495088 0.147029   N2 0.215548 -0.124615 0.968509 
+   txt003 
+STRI 
+  V0 0.19814 -0.19814 3.12708   V1 0.141931 -0.241285 3.12708   V2 0.184834 -0.314228 3.06667 
+  N0 0.175885 -0.175885 0.96857   N1 0.124615 -0.215548 0.968509   N2 0.495088 -0.856312 0.147029 
+   txt003 
+STRI 
+  V0 0.184834 -0.314228 3.06667   V1 0.258037 -0.258037 3.06667   V2 0.19814 -0.19814 3.12708 
+  N0 0.495088 -0.856312 0.147029   N1 0.699411 -0.699411 0.147135   N2 0.175885 -0.175885 0.96857 
+   txt003 
+STRI 
+  V0 0.141931 -0.241285 3.12708   V1 0.0750782 -0.268946 3.12708   V2 0.0977709 -0.350254 3.06667 
+  N0 0.124615 -0.215548 0.968509   N1 0.0645609 -0.241077 0.968356   N2 0.255913 -0.955496 0.146755 
+   txt003 
+STRI 
+  V0 0.0977709 -0.350254 3.06667   V1 0.184834 -0.314228 3.06667   V2 0.141931 -0.241285 3.12708 
+  N0 0.255913 -0.955496 0.146755   N1 0.495088 -0.856312 0.147029   N2 0.124615 -0.215548 0.968509 
+   txt003 
+STRI 
+  V0 0.0750782 -0.268946 3.12708   V1 0 -0.278704 3.12708   V2 0 -0.362963 3.06667 
+  N0 0.0645609 -0.241077 0.968356   N1 -2.80184e-15 -0.249998 0.968246   N2 -4.98112e-16 -0.989203 0.146549 
+   txt003 
+STRI 
+  V0 0 -0.362963 3.06667   V1 0.0977709 -0.350254 3.06667   V2 0.0750782 -0.268946 3.12708 
+  N0 -4.98112e-16 -0.989203 0.146549   N1 0.255913 -0.955496 0.146755   N2 0.0645609 -0.241077 0.968356 
+   txt003 
+STRI 
+  V0 0.362963 0 3.06667   V1 0.350254 -0.0977709 3.06667   V2 0.313617 -0.0875289 2.98125 
+  N0 0.989203 0 0.146549   N1 0.955496 -0.255913 0.146755   N2 0.753688 -0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 0.313617 -0.0875289 2.98125   V1 0.325 0 2.98125   V2 0.362963 0 3.06667 
+  N0 0.753688 -0.201937 -0.625441   N1 0.780869 0 -0.624695   N2 0.989203 0 0.146549 
+   txt003 
+STRI 
+  V0 0.350254 -0.0977709 3.06667   V1 0.314228 -0.184834 3.06667   V2 0.281352 -0.165481 2.98125 
+  N0 0.955496 -0.255913 0.146755   N1 0.856312 -0.495088 0.147029   N2 0.674735 -0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 0.281352 -0.165481 2.98125   V1 0.313617 -0.0875289 2.98125   V2 0.350254 -0.0977709 3.06667 
+  N0 0.674735 -0.390178 -0.626493   N1 0.753688 -0.201937 -0.625441   N2 0.955496 -0.255913 0.146755 
+   txt003 
+STRI 
+  V0 0.314228 -0.184834 3.06667   V1 0.258037 -0.258037 3.06667   V2 0.231031 -0.231031 2.98125 
+  N0 0.856312 -0.495088 0.147029   N1 0.699411 -0.699411 0.147135   N2 0.550896 -0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 0.231031 -0.231031 2.98125   V1 0.281352 -0.165481 2.98125   V2 0.314228 -0.184834 3.06667 
+  N0 0.550896 -0.550896 -0.626919   N1 0.674735 -0.390178 -0.626493   N2 0.856312 -0.495088 0.147029 
+   txt003 
+STRI 
+  V0 0.258037 -0.258037 3.06667   V1 0.184834 -0.314228 3.06667   V2 0.165481 -0.281352 2.98125 
+  N0 0.699411 -0.699411 0.147135   N1 0.495088 -0.856312 0.147029   N2 0.390178 -0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 0.165481 -0.281352 2.98125   V1 0.231031 -0.231031 2.98125   V2 0.258037 -0.258037 3.06667 
+  N0 0.390178 -0.674735 -0.626493   N1 0.550896 -0.550896 -0.626919   N2 0.699411 -0.699411 0.147135 
+   txt003 
+STRI 
+  V0 0.184834 -0.314228 3.06667   V1 0.0977709 -0.350254 3.06667   V2 0.0875289 -0.313617 2.98125 
+  N0 0.495088 -0.856312 0.147029   N1 0.255913 -0.955496 0.146755   N2 0.201937 -0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 0.0875289 -0.313617 2.98125   V1 0.165481 -0.281352 2.98125   V2 0.184834 -0.314228 3.06667 
+  N0 0.201937 -0.753688 -0.625441   N1 0.390178 -0.674735 -0.626493   N2 0.495088 -0.856312 0.147029 
+   txt003 
+STRI 
+  V0 0.0977709 -0.350254 3.06667   V1 0 -0.362963 3.06667   V2 -1.11022e-16 -0.325 2.98125 
+  N0 0.255913 -0.955496 0.146755   N1 -4.98112e-16 -0.989203 0.146549   N2 1.51803e-15 -0.780869 -0.624695 
+   txt003 
+STRI 
+  V0 -1.11022e-16 -0.325 2.98125   V1 0.0875289 -0.313617 2.98125   V2 0.0977709 -0.350254 3.06667 
+  N0 1.51803e-15 -0.780869 -0.624695   N1 0.201937 -0.753688 -0.625441   N2 0.255913 -0.955496 0.146755 
+   txt003 
+STRI 
+  V0 0.325 0 2.98125   V1 0.313617 -0.0875289 2.98125   V2 0.228728 -0.0638032 2.88333 
+  N0 0.780869 0 -0.624695   N1 0.753688 -0.201937 -0.625441   N2 0.721244 -0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 0.228728 -0.0638032 2.88333   V1 0.237037 0 2.88333   V2 0.325 0 2.98125 
+  N0 0.721244 -0.193465 -0.665116   N1 0.747409 0 -0.664364   N2 0.780869 0 -0.624695 
+   txt003 
+STRI 
+  V0 0.313617 -0.0875289 2.98125   V1 0.281352 -0.165481 2.98125   V2 0.20518 -0.120647 2.88333 
+  N0 0.753688 -0.201937 -0.625441   N1 0.674735 -0.390178 -0.626493   N2 0.645526 -0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 0.20518 -0.120647 2.88333   V1 0.228728 -0.0638032 2.88333   V2 0.313617 -0.0875289 2.98125 
+  N0 0.645526 -0.373497 -0.66618   N1 0.721244 -0.193465 -0.665116   N2 0.753688 -0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 0.281352 -0.165481 2.98125   V1 0.231031 -0.231031 2.98125   V2 0.168463 -0.168463 2.88333 
+  N0 0.674735 -0.390178 -0.626493   N1 0.550896 -0.550896 -0.626919   N2 0.527081 -0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 0.168463 -0.168463 2.88333   V1 0.20518 -0.120647 2.88333   V2 0.281352 -0.165481 2.98125 
+  N0 0.527081 -0.527081 -0.666611   N1 0.645526 -0.373497 -0.66618   N2 0.674735 -0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 0.231031 -0.231031 2.98125   V1 0.165481 -0.281352 2.98125   V2 0.120647 -0.20518 2.88333 
+  N0 0.550896 -0.550896 -0.626919   N1 0.390178 -0.674735 -0.626493   N2 0.373497 -0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 0.120647 -0.20518 2.88333   V1 0.168463 -0.168463 2.88333   V2 0.231031 -0.231031 2.98125 
+  N0 0.373497 -0.645526 -0.66618   N1 0.527081 -0.527081 -0.666611   N2 0.550896 -0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 0.165481 -0.281352 2.98125   V1 0.0875289 -0.313617 2.98125   V2 0.0638032 -0.228728 2.88333 
+  N0 0.390178 -0.674735 -0.626493   N1 0.201937 -0.753688 -0.625441   N2 0.193465 -0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 0.0638032 -0.228728 2.88333   V1 0.120647 -0.20518 2.88333   V2 0.165481 -0.281352 2.98125 
+  N0 0.193465 -0.721244 -0.665116   N1 0.373497 -0.645526 -0.66618   N2 0.390178 -0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 0.0875289 -0.313617 2.98125   V1 -1.11022e-16 -0.325 2.98125   V2 -1.11022e-16 -0.237037 2.88333 
+  N0 0.201937 -0.753688 -0.625441   N1 1.51803e-15 -0.780869 -0.624695   N2 2.42292e-15 -0.747409 -0.664364 
+   txt003 
+STRI 
+  V0 -1.11022e-16 -0.237037 2.88333   V1 0.0638032 -0.228728 2.88333   V2 0.0875289 -0.313617 2.98125 
+  N0 2.42292e-15 -0.747409 -0.664364   N1 0.193465 -0.721244 -0.665116   N2 0.201937 -0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 0.237037 0 2.88333   V1 0.228728 -0.0638032 2.88333   V2 0.165279 -0.0460445 2.78542 
+  N0 0.747409 0 -0.664364   N1 0.721244 -0.193465 -0.665116   N2 0.917897 -0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 0.165279 -0.0460445 2.78542   V1 0.171296 0 2.78542   V2 0.237037 0 2.88333 
+  N0 0.917897 -0.246906 -0.310647   N1 0.950775 0 -0.309882   N2 0.747409 0 -0.664364 
+   txt003 
+STRI 
+  V0 0.228728 -0.0638032 2.88333   V1 0.20518 -0.120647 2.88333   V2 0.148234 -0.0871056 2.78542 
+  N0 0.721244 -0.193465 -0.665116   N1 0.645526 -0.373497 -0.66618   N2 0.822132 -0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 0.148234 -0.0871056 2.78542   V1 0.165279 -0.0460445 2.78542   V2 0.228728 -0.0638032 2.88333 
+  N0 0.822132 -0.476337 -0.311772   N1 0.917897 -0.246906 -0.310647   N2 0.721244 -0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 0.20518 -0.120647 2.88333   V1 0.168463 -0.168463 2.88333   V2 0.121672 -0.121672 2.78542 
+  N0 0.645526 -0.373497 -0.66618   N1 0.527081 -0.527081 -0.666611   N2 0.671754 -0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 0.121672 -0.121672 2.78542   V1 0.148234 -0.0871056 2.78542   V2 0.20518 -0.120647 2.88333 
+  N0 0.671754 -0.671754 -0.312241   N1 0.822132 -0.476337 -0.311772   N2 0.645526 -0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 0.168463 -0.168463 2.88333   V1 0.120647 -0.20518 2.88333   V2 0.0871056 -0.148234 2.78542 
+  N0 0.527081 -0.527081 -0.666611   N1 0.373497 -0.645526 -0.66618   N2 0.476337 -0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 0.0871056 -0.148234 2.78542   V1 0.121672 -0.121672 2.78542   V2 0.168463 -0.168463 2.88333 
+  N0 0.476337 -0.822132 -0.311772   N1 0.671754 -0.671754 -0.312241   N2 0.527081 -0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 0.120647 -0.20518 2.88333   V1 0.0638032 -0.228728 2.88333   V2 0.0460445 -0.165279 2.78542 
+  N0 0.373497 -0.645526 -0.66618   N1 0.193465 -0.721244 -0.665116   N2 0.246906 -0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 0.0460445 -0.165279 2.78542   V1 0.0871056 -0.148234 2.78542   V2 0.120647 -0.20518 2.88333 
+  N0 0.246906 -0.917897 -0.310647   N1 0.476337 -0.822132 -0.311772   N2 0.373497 -0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 0.0638032 -0.228728 2.88333   V1 -1.11022e-16 -0.237037 2.88333   V2 -6.66134e-16 -0.171296 2.78542 
+  N0 0.193465 -0.721244 -0.665116   N1 2.42292e-15 -0.747409 -0.664364   N2 2.16507e-15 -0.950775 -0.309882 
+   txt003 
+STRI 
+  V0 -6.66134e-16 -0.171296 2.78542   V1 0.0460445 -0.165279 2.78542   V2 0.0638032 -0.228728 2.88333 
+  N0 2.16507e-15 -0.950775 -0.309882   N1 0.246906 -0.917897 -0.310647   N2 0.193465 -0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 0.171296 0 2.78542   V1 0.165279 -0.0460445 2.78542   V2 0.192963 -0.0537037 2.7 
+  N0 0.950775 0 -0.309882   N1 0.917897 -0.246906 -0.310647   N2 0.578783 -0.15602 0.800417 
+   txt003 
+STRI 
+  V0 0.192963 -0.0537037 2.7   V1 0.2 0 2.7   V2 0.171296 0 2.78542 
+  N0 0.578783 -0.15602 0.800417   N1 0.6 0 0.8   N2 0.950775 0 -0.309882 
+   txt003 
+STRI 
+  V0 0.165279 -0.0460445 2.78542   V1 0.148234 -0.0871056 2.78542   V2 0.173037 -0.10163 2.7 
+  N0 0.917897 -0.246906 -0.310647   N1 0.822132 -0.476337 -0.311772   N2 0.517905 -0.300385 0.800964 
+   txt003 
+STRI 
+  V0 0.173037 -0.10163 2.7   V1 0.192963 -0.0537037 2.7   V2 0.165279 -0.0460445 2.78542 
+  N0 0.517905 -0.300385 0.800964   N1 0.578783 -0.15602 0.800417   N2 0.917897 -0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 0.148234 -0.0871056 2.78542   V1 0.121672 -0.121672 2.78542   V2 0.142 -0.142 2.7 
+  N0 0.822132 -0.476337 -0.311772   N1 0.671754 -0.671754 -0.312241   N2 0.423155 -0.423155 0.801174 
+   txt003 
+STRI 
+  V0 0.142 -0.142 2.7   V1 0.173037 -0.10163 2.7   V2 0.148234 -0.0871056 2.78542 
+  N0 0.423155 -0.423155 0.801174   N1 0.517905 -0.300385 0.800964   N2 0.822132 -0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 0.121672 -0.121672 2.78542   V1 0.0871056 -0.148234 2.78542   V2 0.10163 -0.173037 2.7 
+  N0 0.671754 -0.671754 -0.312241   N1 0.476337 -0.822132 -0.311772   N2 0.300385 -0.517905 0.800964 
+   txt003 
+STRI 
+  V0 0.10163 -0.173037 2.7   V1 0.142 -0.142 2.7   V2 0.121672 -0.121672 2.78542 
+  N0 0.300385 -0.517905 0.800964   N1 0.423155 -0.423155 0.801174   N2 0.671754 -0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 0.0871056 -0.148234 2.78542   V1 0.0460445 -0.165279 2.78542   V2 0.0537037 -0.192963 2.7 
+  N0 0.476337 -0.822132 -0.311772   N1 0.246906 -0.917897 -0.310647   N2 0.15602 -0.578783 0.800417 
+   txt003 
+STRI 
+  V0 0.0537037 -0.192963 2.7   V1 0.10163 -0.173037 2.7   V2 0.0871056 -0.148234 2.78542 
+  N0 0.15602 -0.578783 0.800417   N1 0.300385 -0.517905 0.800964   N2 0.476337 -0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 0.0460445 -0.165279 2.78542   V1 -6.66134e-16 -0.171296 2.78542   V2 0 -0.2 2.7 
+  N0 0.246906 -0.917897 -0.310647   N1 2.16507e-15 -0.950775 -0.309882   N2 -3.17207e-15 -0.6 0.8 
+   txt003 
+STRI 
+  V0 0 -0.2 2.7   V1 0.0537037 -0.192963 2.7   V2 0.0460445 -0.165279 2.78542 
+  N0 -3.17207e-15 -0.6 0.8   N1 0.15602 -0.578783 0.800417   N2 0.246906 -0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 -0.0750782 -0.268946 3.12708   V1 0 -0.278704 3.12708   V2 0 0 3.15 
+  N0 -0.0645609 -0.241077 0.968356   N1 0 -0.249998 0.968246   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.141931 -0.241285 3.12708   V1 -0.0750782 -0.268946 3.12708   V2 0 0 3.15 
+  N0 -0.124615 -0.215548 0.968509   N1 -0.0645609 -0.241077 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.19814 -0.19814 3.12708   V1 -0.141931 -0.241285 3.12708   V2 0 0 3.15 
+  N0 -0.175885 -0.175885 0.96857   N1 -0.124615 -0.215548 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.241285 -0.141931 3.12708   V1 -0.19814 -0.19814 3.12708   V2 0 0 3.15 
+  N0 -0.215548 -0.124615 0.968509   N1 -0.175885 -0.175885 0.96857   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.268946 -0.0750782 3.12708   V1 -0.241285 -0.141931 3.12708   V2 0 0 3.15 
+  N0 -0.241077 -0.0645609 0.968356   N1 -0.215548 -0.124615 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.278704 0 3.12708   V1 -0.268946 -0.0750782 3.12708   V2 0 0 3.15 
+  N0 -0.249998 2.80184e-15 0.968246   N1 -0.241077 -0.0645609 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0 -0.278704 3.12708   V1 -0.0750782 -0.268946 3.12708   V2 -0.0977709 -0.350254 3.06667 
+  N0 0 -0.249998 0.968246   N1 -0.0645609 -0.241077 0.968356   N2 -0.255913 -0.955496 0.146755 
+   txt003 
+STRI 
+  V0 -0.0977709 -0.350254 3.06667   V1 0 -0.362963 3.06667   V2 0 -0.278704 3.12708 
+  N0 -0.255913 -0.955496 0.146755   N1 0 -0.989203 0.146549   N2 0 -0.249998 0.968246 
+   txt003 
+STRI 
+  V0 -0.0750782 -0.268946 3.12708   V1 -0.141931 -0.241285 3.12708   V2 -0.184834 -0.314228 3.06667 
+  N0 -0.0645609 -0.241077 0.968356   N1 -0.124615 -0.215548 0.968509   N2 -0.495088 -0.856312 0.147029 
+   txt003 
+STRI 
+  V0 -0.184834 -0.314228 3.06667   V1 -0.0977709 -0.350254 3.06667   V2 -0.0750782 -0.268946 3.12708 
+  N0 -0.495088 -0.856312 0.147029   N1 -0.255913 -0.955496 0.146755   N2 -0.0645609 -0.241077 0.968356 
+   txt003 
+STRI 
+  V0 -0.141931 -0.241285 3.12708   V1 -0.19814 -0.19814 3.12708   V2 -0.258037 -0.258037 3.06667 
+  N0 -0.124615 -0.215548 0.968509   N1 -0.175885 -0.175885 0.96857   N2 -0.699411 -0.699411 0.147135 
+   txt003 
+STRI 
+  V0 -0.258037 -0.258037 3.06667   V1 -0.184834 -0.314228 3.06667   V2 -0.141931 -0.241285 3.12708 
+  N0 -0.699411 -0.699411 0.147135   N1 -0.495088 -0.856312 0.147029   N2 -0.124615 -0.215548 0.968509 
+   txt003 
+STRI 
+  V0 -0.19814 -0.19814 3.12708   V1 -0.241285 -0.141931 3.12708   V2 -0.314228 -0.184834 3.06667 
+  N0 -0.175885 -0.175885 0.96857   N1 -0.215548 -0.124615 0.968509   N2 -0.856312 -0.495088 0.147029 
+   txt003 
+STRI 
+  V0 -0.314228 -0.184834 3.06667   V1 -0.258037 -0.258037 3.06667   V2 -0.19814 -0.19814 3.12708 
+  N0 -0.856312 -0.495088 0.147029   N1 -0.699411 -0.699411 0.147135   N2 -0.175885 -0.175885 0.96857 
+   txt003 
+STRI 
+  V0 -0.241285 -0.141931 3.12708   V1 -0.268946 -0.0750782 3.12708   V2 -0.350254 -0.0977709 3.06667 
+  N0 -0.215548 -0.124615 0.968509   N1 -0.241077 -0.0645609 0.968356   N2 -0.955496 -0.255913 0.146755 
+   txt003 
+STRI 
+  V0 -0.350254 -0.0977709 3.06667   V1 -0.314228 -0.184834 3.06667   V2 -0.241285 -0.141931 3.12708 
+  N0 -0.955496 -0.255913 0.146755   N1 -0.856312 -0.495088 0.147029   N2 -0.215548 -0.124615 0.968509 
+   txt003 
+STRI 
+  V0 -0.268946 -0.0750782 3.12708   V1 -0.278704 0 3.12708   V2 -0.362963 0 3.06667 
+  N0 -0.241077 -0.0645609 0.968356   N1 -0.249998 2.80184e-15 0.968246   N2 -0.989203 4.98112e-16 0.146549 
+   txt003 
+STRI 
+  V0 -0.362963 0 3.06667   V1 -0.350254 -0.0977709 3.06667   V2 -0.268946 -0.0750782 3.12708 
+  N0 -0.989203 4.98112e-16 0.146549   N1 -0.955496 -0.255913 0.146755   N2 -0.241077 -0.0645609 0.968356 
+   txt003 
+STRI 
+  V0 0 -0.362963 3.06667   V1 -0.0977709 -0.350254 3.06667   V2 -0.0875289 -0.313617 2.98125 
+  N0 0 -0.989203 0.146549   N1 -0.255913 -0.955496 0.146755   N2 -0.201937 -0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 -0.0875289 -0.313617 2.98125   V1 0 -0.325 2.98125   V2 0 -0.362963 3.06667 
+  N0 -0.201937 -0.753688 -0.625441   N1 -0 -0.780869 -0.624695   N2 0 -0.989203 0.146549 
+   txt003 
+STRI 
+  V0 -0.0977709 -0.350254 3.06667   V1 -0.184834 -0.314228 3.06667   V2 -0.165481 -0.281352 2.98125 
+  N0 -0.255913 -0.955496 0.146755   N1 -0.495088 -0.856312 0.147029   N2 -0.390178 -0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 -0.165481 -0.281352 2.98125   V1 -0.0875289 -0.313617 2.98125   V2 -0.0977709 -0.350254 3.06667 
+  N0 -0.390178 -0.674735 -0.626493   N1 -0.201937 -0.753688 -0.625441   N2 -0.255913 -0.955496 0.146755 
+   txt003 
+STRI 
+  V0 -0.184834 -0.314228 3.06667   V1 -0.258037 -0.258037 3.06667   V2 -0.231031 -0.231031 2.98125 
+  N0 -0.495088 -0.856312 0.147029   N1 -0.699411 -0.699411 0.147135   N2 -0.550896 -0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 -0.231031 -0.231031 2.98125   V1 -0.165481 -0.281352 2.98125   V2 -0.184834 -0.314228 3.06667 
+  N0 -0.550896 -0.550896 -0.626919   N1 -0.390178 -0.674735 -0.626493   N2 -0.495088 -0.856312 0.147029 
+   txt003 
+STRI 
+  V0 -0.258037 -0.258037 3.06667   V1 -0.314228 -0.184834 3.06667   V2 -0.281352 -0.165481 2.98125 
+  N0 -0.699411 -0.699411 0.147135   N1 -0.856312 -0.495088 0.147029   N2 -0.674735 -0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 -0.281352 -0.165481 2.98125   V1 -0.231031 -0.231031 2.98125   V2 -0.258037 -0.258037 3.06667 
+  N0 -0.674735 -0.390178 -0.626493   N1 -0.550896 -0.550896 -0.626919   N2 -0.699411 -0.699411 0.147135 
+   txt003 
+STRI 
+  V0 -0.314228 -0.184834 3.06667   V1 -0.350254 -0.0977709 3.06667   V2 -0.313617 -0.0875289 2.98125 
+  N0 -0.856312 -0.495088 0.147029   N1 -0.955496 -0.255913 0.146755   N2 -0.753688 -0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 -0.313617 -0.0875289 2.98125   V1 -0.281352 -0.165481 2.98125   V2 -0.314228 -0.184834 3.06667 
+  N0 -0.753688 -0.201937 -0.625441   N1 -0.674735 -0.390178 -0.626493   N2 -0.856312 -0.495088 0.147029 
+   txt003 
+STRI 
+  V0 -0.350254 -0.0977709 3.06667   V1 -0.362963 0 3.06667   V2 -0.325 1.11022e-16 2.98125 
+  N0 -0.955496 -0.255913 0.146755   N1 -0.989203 4.98112e-16 0.146549   N2 -0.780869 -1.51803e-15 -0.624695 
+   txt003 
+STRI 
+  V0 -0.325 1.11022e-16 2.98125   V1 -0.313617 -0.0875289 2.98125   V2 -0.350254 -0.0977709 3.06667 
+  N0 -0.780869 -1.51803e-15 -0.624695   N1 -0.753688 -0.201937 -0.625441   N2 -0.955496 -0.255913 0.146755 
+   txt003 
+STRI 
+  V0 0 -0.325 2.98125   V1 -0.0875289 -0.313617 2.98125   V2 -0.0638032 -0.228728 2.88333 
+  N0 -0 -0.780869 -0.624695   N1 -0.201937 -0.753688 -0.625441   N2 -0.193465 -0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 -0.0638032 -0.228728 2.88333   V1 0 -0.237037 2.88333   V2 0 -0.325 2.98125 
+  N0 -0.193465 -0.721244 -0.665116   N1 -0 -0.747409 -0.664364   N2 -0 -0.780869 -0.624695 
+   txt003 
+STRI 
+  V0 -0.0875289 -0.313617 2.98125   V1 -0.165481 -0.281352 2.98125   V2 -0.120647 -0.20518 2.88333 
+  N0 -0.201937 -0.753688 -0.625441   N1 -0.390178 -0.674735 -0.626493   N2 -0.373497 -0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 -0.120647 -0.20518 2.88333   V1 -0.0638032 -0.228728 2.88333   V2 -0.0875289 -0.313617 2.98125 
+  N0 -0.373497 -0.645526 -0.66618   N1 -0.193465 -0.721244 -0.665116   N2 -0.201937 -0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 -0.165481 -0.281352 2.98125   V1 -0.231031 -0.231031 2.98125   V2 -0.168463 -0.168463 2.88333 
+  N0 -0.390178 -0.674735 -0.626493   N1 -0.550896 -0.550896 -0.626919   N2 -0.527081 -0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 -0.168463 -0.168463 2.88333   V1 -0.120647 -0.20518 2.88333   V2 -0.165481 -0.281352 2.98125 
+  N0 -0.527081 -0.527081 -0.666611   N1 -0.373497 -0.645526 -0.66618   N2 -0.390178 -0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 -0.231031 -0.231031 2.98125   V1 -0.281352 -0.165481 2.98125   V2 -0.20518 -0.120647 2.88333 
+  N0 -0.550896 -0.550896 -0.626919   N1 -0.674735 -0.390178 -0.626493   N2 -0.645526 -0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 -0.20518 -0.120647 2.88333   V1 -0.168463 -0.168463 2.88333   V2 -0.231031 -0.231031 2.98125 
+  N0 -0.645526 -0.373497 -0.66618   N1 -0.527081 -0.527081 -0.666611   N2 -0.550896 -0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 -0.281352 -0.165481 2.98125   V1 -0.313617 -0.0875289 2.98125   V2 -0.228728 -0.0638032 2.88333 
+  N0 -0.674735 -0.390178 -0.626493   N1 -0.753688 -0.201937 -0.625441   N2 -0.721244 -0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 -0.228728 -0.0638032 2.88333   V1 -0.20518 -0.120647 2.88333   V2 -0.281352 -0.165481 2.98125 
+  N0 -0.721244 -0.193465 -0.665116   N1 -0.645526 -0.373497 -0.66618   N2 -0.674735 -0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 -0.313617 -0.0875289 2.98125   V1 -0.325 1.11022e-16 2.98125   V2 -0.237037 1.11022e-16 2.88333 
+  N0 -0.753688 -0.201937 -0.625441   N1 -0.780869 -1.51803e-15 -0.624695   N2 -0.747409 -2.42292e-15 -0.664364 
+   txt003 
+STRI 
+  V0 -0.237037 1.11022e-16 2.88333   V1 -0.228728 -0.0638032 2.88333   V2 -0.313617 -0.0875289 2.98125 
+  N0 -0.747409 -2.42292e-15 -0.664364   N1 -0.721244 -0.193465 -0.665116   N2 -0.753688 -0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 0 -0.237037 2.88333   V1 -0.0638032 -0.228728 2.88333   V2 -0.0460445 -0.165279 2.78542 
+  N0 -0 -0.747409 -0.664364   N1 -0.193465 -0.721244 -0.665116   N2 -0.246906 -0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 -0.0460445 -0.165279 2.78542   V1 0 -0.171296 2.78542   V2 0 -0.237037 2.88333 
+  N0 -0.246906 -0.917897 -0.310647   N1 -0 -0.950775 -0.309882   N2 -0 -0.747409 -0.664364 
+   txt003 
+STRI 
+  V0 -0.0638032 -0.228728 2.88333   V1 -0.120647 -0.20518 2.88333   V2 -0.0871056 -0.148234 2.78542 
+  N0 -0.193465 -0.721244 -0.665116   N1 -0.373497 -0.645526 -0.66618   N2 -0.476337 -0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 -0.0871056 -0.148234 2.78542   V1 -0.0460445 -0.165279 2.78542   V2 -0.0638032 -0.228728 2.88333 
+  N0 -0.476337 -0.822132 -0.311772   N1 -0.246906 -0.917897 -0.310647   N2 -0.193465 -0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 -0.120647 -0.20518 2.88333   V1 -0.168463 -0.168463 2.88333   V2 -0.121672 -0.121672 2.78542 
+  N0 -0.373497 -0.645526 -0.66618   N1 -0.527081 -0.527081 -0.666611   N2 -0.671754 -0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 -0.121672 -0.121672 2.78542   V1 -0.0871056 -0.148234 2.78542   V2 -0.120647 -0.20518 2.88333 
+  N0 -0.671754 -0.671754 -0.312241   N1 -0.476337 -0.822132 -0.311772   N2 -0.373497 -0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 -0.168463 -0.168463 2.88333   V1 -0.20518 -0.120647 2.88333   V2 -0.148234 -0.0871056 2.78542 
+  N0 -0.527081 -0.527081 -0.666611   N1 -0.645526 -0.373497 -0.66618   N2 -0.822132 -0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 -0.148234 -0.0871056 2.78542   V1 -0.121672 -0.121672 2.78542   V2 -0.168463 -0.168463 2.88333 
+  N0 -0.822132 -0.476337 -0.311772   N1 -0.671754 -0.671754 -0.312241   N2 -0.527081 -0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 -0.20518 -0.120647 2.88333   V1 -0.228728 -0.0638032 2.88333   V2 -0.165279 -0.0460445 2.78542 
+  N0 -0.645526 -0.373497 -0.66618   N1 -0.721244 -0.193465 -0.665116   N2 -0.917897 -0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 -0.165279 -0.0460445 2.78542   V1 -0.148234 -0.0871056 2.78542   V2 -0.20518 -0.120647 2.88333 
+  N0 -0.917897 -0.246906 -0.310647   N1 -0.822132 -0.476337 -0.311772   N2 -0.645526 -0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 -0.228728 -0.0638032 2.88333   V1 -0.237037 1.11022e-16 2.88333   V2 -0.171296 6.66134e-16 2.78542 
+  N0 -0.721244 -0.193465 -0.665116   N1 -0.747409 -2.42292e-15 -0.664364   N2 -0.950775 -2.16507e-15 -0.309882 
+   txt003 
+STRI 
+  V0 -0.171296 6.66134e-16 2.78542   V1 -0.165279 -0.0460445 2.78542   V2 -0.228728 -0.0638032 2.88333 
+  N0 -0.950775 -2.16507e-15 -0.309882   N1 -0.917897 -0.246906 -0.310647   N2 -0.721244 -0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 0 -0.171296 2.78542   V1 -0.0460445 -0.165279 2.78542   V2 -0.0537037 -0.192963 2.7 
+  N0 -0 -0.950775 -0.309882   N1 -0.246906 -0.917897 -0.310647   N2 -0.15602 -0.578783 0.800417 
+   txt003 
+STRI 
+  V0 -0.0537037 -0.192963 2.7   V1 0 -0.2 2.7   V2 0 -0.171296 2.78542 
+  N0 -0.15602 -0.578783 0.800417   N1 0 -0.6 0.8   N2 -0 -0.950775 -0.309882 
+   txt003 
+STRI 
+  V0 -0.0460445 -0.165279 2.78542   V1 -0.0871056 -0.148234 2.78542   V2 -0.10163 -0.173037 2.7 
+  N0 -0.246906 -0.917897 -0.310647   N1 -0.476337 -0.822132 -0.311772   N2 -0.300385 -0.517905 0.800964 
+   txt003 
+STRI 
+  V0 -0.10163 -0.173037 2.7   V1 -0.0537037 -0.192963 2.7   V2 -0.0460445 -0.165279 2.78542 
+  N0 -0.300385 -0.517905 0.800964   N1 -0.15602 -0.578783 0.800417   N2 -0.246906 -0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 -0.0871056 -0.148234 2.78542   V1 -0.121672 -0.121672 2.78542   V2 -0.142 -0.142 2.7 
+  N0 -0.476337 -0.822132 -0.311772   N1 -0.671754 -0.671754 -0.312241   N2 -0.423155 -0.423155 0.801174 
+   txt003 
+STRI 
+  V0 -0.142 -0.142 2.7   V1 -0.10163 -0.173037 2.7   V2 -0.0871056 -0.148234 2.78542 
+  N0 -0.423155 -0.423155 0.801174   N1 -0.300385 -0.517905 0.800964   N2 -0.476337 -0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 -0.121672 -0.121672 2.78542   V1 -0.148234 -0.0871056 2.78542   V2 -0.173037 -0.10163 2.7 
+  N0 -0.671754 -0.671754 -0.312241   N1 -0.822132 -0.476337 -0.311772   N2 -0.517905 -0.300385 0.800964 
+   txt003 
+STRI 
+  V0 -0.173037 -0.10163 2.7   V1 -0.142 -0.142 2.7   V2 -0.121672 -0.121672 2.78542 
+  N0 -0.517905 -0.300385 0.800964   N1 -0.423155 -0.423155 0.801174   N2 -0.671754 -0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 -0.148234 -0.0871056 2.78542   V1 -0.165279 -0.0460445 2.78542   V2 -0.192963 -0.0537037 2.7 
+  N0 -0.822132 -0.476337 -0.311772   N1 -0.917897 -0.246906 -0.310647   N2 -0.578783 -0.15602 0.800417 
+   txt003 
+STRI 
+  V0 -0.192963 -0.0537037 2.7   V1 -0.173037 -0.10163 2.7   V2 -0.148234 -0.0871056 2.78542 
+  N0 -0.578783 -0.15602 0.800417   N1 -0.517905 -0.300385 0.800964   N2 -0.822132 -0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 -0.165279 -0.0460445 2.78542   V1 -0.171296 6.66134e-16 2.78542   V2 -0.2 0 2.7 
+  N0 -0.917897 -0.246906 -0.310647   N1 -0.950775 -2.16507e-15 -0.309882   N2 -0.6 3.17207e-15 0.8 
+   txt003 
+STRI 
+  V0 -0.2 0 2.7   V1 -0.192963 -0.0537037 2.7   V2 -0.165279 -0.0460445 2.78542 
+  N0 -0.6 3.17207e-15 0.8   N1 -0.578783 -0.15602 0.800417   N2 -0.917897 -0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 -0.268946 0.0750782 3.12708   V1 -0.278704 0 3.12708   V2 0 0 3.15 
+  N0 -0.241077 0.0645609 0.968356   N1 -0.249998 0 0.968246   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.241285 0.141931 3.12708   V1 -0.268946 0.0750782 3.12708   V2 0 0 3.15 
+  N0 -0.215548 0.124615 0.968509   N1 -0.241077 0.0645609 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.19814 0.19814 3.12708   V1 -0.241285 0.141931 3.12708   V2 0 0 3.15 
+  N0 -0.175885 0.175885 0.96857   N1 -0.215548 0.124615 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.141931 0.241285 3.12708   V1 -0.19814 0.19814 3.12708   V2 0 0 3.15 
+  N0 -0.124615 0.215548 0.968509   N1 -0.175885 0.175885 0.96857   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.0750782 0.268946 3.12708   V1 -0.141931 0.241285 3.12708   V2 0 0 3.15 
+  N0 -0.0645609 0.241077 0.968356   N1 -0.124615 0.215548 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0 0.278704 3.12708   V1 -0.0750782 0.268946 3.12708   V2 0 0 3.15 
+  N0 2.80184e-15 0.249998 0.968246   N1 -0.0645609 0.241077 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 -0.278704 0 3.12708   V1 -0.268946 0.0750782 3.12708   V2 -0.350254 0.0977709 3.06667 
+  N0 -0.249998 0 0.968246   N1 -0.241077 0.0645609 0.968356   N2 -0.955496 0.255913 0.146755 
+   txt003 
+STRI 
+  V0 -0.350254 0.0977709 3.06667   V1 -0.362963 0 3.06667   V2 -0.278704 0 3.12708 
+  N0 -0.955496 0.255913 0.146755   N1 -0.989203 0 0.146549   N2 -0.249998 0 0.968246 
+   txt003 
+STRI 
+  V0 -0.268946 0.0750782 3.12708   V1 -0.241285 0.141931 3.12708   V2 -0.314228 0.184834 3.06667 
+  N0 -0.241077 0.0645609 0.968356   N1 -0.215548 0.124615 0.968509   N2 -0.856312 0.495088 0.147029 
+   txt003 
+STRI 
+  V0 -0.314228 0.184834 3.06667   V1 -0.350254 0.0977709 3.06667   V2 -0.268946 0.0750782 3.12708 
+  N0 -0.856312 0.495088 0.147029   N1 -0.955496 0.255913 0.146755   N2 -0.241077 0.0645609 0.968356 
+   txt003 
+STRI 
+  V0 -0.241285 0.141931 3.12708   V1 -0.19814 0.19814 3.12708   V2 -0.258037 0.258037 3.06667 
+  N0 -0.215548 0.124615 0.968509   N1 -0.175885 0.175885 0.96857   N2 -0.699411 0.699411 0.147135 
+   txt003 
+STRI 
+  V0 -0.258037 0.258037 3.06667   V1 -0.314228 0.184834 3.06667   V2 -0.241285 0.141931 3.12708 
+  N0 -0.699411 0.699411 0.147135   N1 -0.856312 0.495088 0.147029   N2 -0.215548 0.124615 0.968509 
+   txt003 
+STRI 
+  V0 -0.19814 0.19814 3.12708   V1 -0.141931 0.241285 3.12708   V2 -0.184834 0.314228 3.06667 
+  N0 -0.175885 0.175885 0.96857   N1 -0.124615 0.215548 0.968509   N2 -0.495088 0.856312 0.147029 
+   txt003 
+STRI 
+  V0 -0.184834 0.314228 3.06667   V1 -0.258037 0.258037 3.06667   V2 -0.19814 0.19814 3.12708 
+  N0 -0.495088 0.856312 0.147029   N1 -0.699411 0.699411 0.147135   N2 -0.175885 0.175885 0.96857 
+   txt003 
+STRI 
+  V0 -0.141931 0.241285 3.12708   V1 -0.0750782 0.268946 3.12708   V2 -0.0977709 0.350254 3.06667 
+  N0 -0.124615 0.215548 0.968509   N1 -0.0645609 0.241077 0.968356   N2 -0.255913 0.955496 0.146755 
+   txt003 
+STRI 
+  V0 -0.0977709 0.350254 3.06667   V1 -0.184834 0.314228 3.06667   V2 -0.141931 0.241285 3.12708 
+  N0 -0.255913 0.955496 0.146755   N1 -0.495088 0.856312 0.147029   N2 -0.124615 0.215548 0.968509 
+   txt003 
+STRI 
+  V0 -0.0750782 0.268946 3.12708   V1 0 0.278704 3.12708   V2 0 0.362963 3.06667 
+  N0 -0.0645609 0.241077 0.968356   N1 2.80184e-15 0.249998 0.968246   N2 4.98112e-16 0.989203 0.146549 
+   txt003 
+STRI 
+  V0 0 0.362963 3.06667   V1 -0.0977709 0.350254 3.06667   V2 -0.0750782 0.268946 3.12708 
+  N0 4.98112e-16 0.989203 0.146549   N1 -0.255913 0.955496 0.146755   N2 -0.0645609 0.241077 0.968356 
+   txt003 
+STRI 
+  V0 -0.362963 0 3.06667   V1 -0.350254 0.0977709 3.06667   V2 -0.313617 0.0875289 2.98125 
+  N0 -0.989203 0 0.146549   N1 -0.955496 0.255913 0.146755   N2 -0.753688 0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 -0.313617 0.0875289 2.98125   V1 -0.325 0 2.98125   V2 -0.362963 0 3.06667 
+  N0 -0.753688 0.201937 -0.625441   N1 -0.780869 0 -0.624695   N2 -0.989203 0 0.146549 
+   txt003 
+STRI 
+  V0 -0.350254 0.0977709 3.06667   V1 -0.314228 0.184834 3.06667   V2 -0.281352 0.165481 2.98125 
+  N0 -0.955496 0.255913 0.146755   N1 -0.856312 0.495088 0.147029   N2 -0.674735 0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 -0.281352 0.165481 2.98125   V1 -0.313617 0.0875289 2.98125   V2 -0.350254 0.0977709 3.06667 
+  N0 -0.674735 0.390178 -0.626493   N1 -0.753688 0.201937 -0.625441   N2 -0.955496 0.255913 0.146755 
+   txt003 
+STRI 
+  V0 -0.314228 0.184834 3.06667   V1 -0.258037 0.258037 3.06667   V2 -0.231031 0.231031 2.98125 
+  N0 -0.856312 0.495088 0.147029   N1 -0.699411 0.699411 0.147135   N2 -0.550896 0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 -0.231031 0.231031 2.98125   V1 -0.281352 0.165481 2.98125   V2 -0.314228 0.184834 3.06667 
+  N0 -0.550896 0.550896 -0.626919   N1 -0.674735 0.390178 -0.626493   N2 -0.856312 0.495088 0.147029 
+   txt003 
+STRI 
+  V0 -0.258037 0.258037 3.06667   V1 -0.184834 0.314228 3.06667   V2 -0.165481 0.281352 2.98125 
+  N0 -0.699411 0.699411 0.147135   N1 -0.495088 0.856312 0.147029   N2 -0.390178 0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 -0.165481 0.281352 2.98125   V1 -0.231031 0.231031 2.98125   V2 -0.258037 0.258037 3.06667 
+  N0 -0.390178 0.674735 -0.626493   N1 -0.550896 0.550896 -0.626919   N2 -0.699411 0.699411 0.147135 
+   txt003 
+STRI 
+  V0 -0.184834 0.314228 3.06667   V1 -0.0977709 0.350254 3.06667   V2 -0.0875289 0.313617 2.98125 
+  N0 -0.495088 0.856312 0.147029   N1 -0.255913 0.955496 0.146755   N2 -0.201937 0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 -0.0875289 0.313617 2.98125   V1 -0.165481 0.281352 2.98125   V2 -0.184834 0.314228 3.06667 
+  N0 -0.201937 0.753688 -0.625441   N1 -0.390178 0.674735 -0.626493   N2 -0.495088 0.856312 0.147029 
+   txt003 
+STRI 
+  V0 -0.0977709 0.350254 3.06667   V1 0 0.362963 3.06667   V2 1.11022e-16 0.325 2.98125 
+  N0 -0.255913 0.955496 0.146755   N1 4.98112e-16 0.989203 0.146549   N2 -1.51803e-15 0.780869 -0.624695 
+   txt003 
+STRI 
+  V0 1.11022e-16 0.325 2.98125   V1 -0.0875289 0.313617 2.98125   V2 -0.0977709 0.350254 3.06667 
+  N0 -1.51803e-15 0.780869 -0.624695   N1 -0.201937 0.753688 -0.625441   N2 -0.255913 0.955496 0.146755 
+   txt003 
+STRI 
+  V0 -0.325 0 2.98125   V1 -0.313617 0.0875289 2.98125   V2 -0.228728 0.0638032 2.88333 
+  N0 -0.780869 0 -0.624695   N1 -0.753688 0.201937 -0.625441   N2 -0.721244 0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 -0.228728 0.0638032 2.88333   V1 -0.237037 0 2.88333   V2 -0.325 0 2.98125 
+  N0 -0.721244 0.193465 -0.665116   N1 -0.747409 0 -0.664364   N2 -0.780869 0 -0.624695 
+   txt003 
+STRI 
+  V0 -0.313617 0.0875289 2.98125   V1 -0.281352 0.165481 2.98125   V2 -0.20518 0.120647 2.88333 
+  N0 -0.753688 0.201937 -0.625441   N1 -0.674735 0.390178 -0.626493   N2 -0.645526 0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 -0.20518 0.120647 2.88333   V1 -0.228728 0.0638032 2.88333   V2 -0.313617 0.0875289 2.98125 
+  N0 -0.645526 0.373497 -0.66618   N1 -0.721244 0.193465 -0.665116   N2 -0.753688 0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 -0.281352 0.165481 2.98125   V1 -0.231031 0.231031 2.98125   V2 -0.168463 0.168463 2.88333 
+  N0 -0.674735 0.390178 -0.626493   N1 -0.550896 0.550896 -0.626919   N2 -0.527081 0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 -0.168463 0.168463 2.88333   V1 -0.20518 0.120647 2.88333   V2 -0.281352 0.165481 2.98125 
+  N0 -0.527081 0.527081 -0.666611   N1 -0.645526 0.373497 -0.66618   N2 -0.674735 0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 -0.231031 0.231031 2.98125   V1 -0.165481 0.281352 2.98125   V2 -0.120647 0.20518 2.88333 
+  N0 -0.550896 0.550896 -0.626919   N1 -0.390178 0.674735 -0.626493   N2 -0.373497 0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 -0.120647 0.20518 2.88333   V1 -0.168463 0.168463 2.88333   V2 -0.231031 0.231031 2.98125 
+  N0 -0.373497 0.645526 -0.66618   N1 -0.527081 0.527081 -0.666611   N2 -0.550896 0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 -0.165481 0.281352 2.98125   V1 -0.0875289 0.313617 2.98125   V2 -0.0638032 0.228728 2.88333 
+  N0 -0.390178 0.674735 -0.626493   N1 -0.201937 0.753688 -0.625441   N2 -0.193465 0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 -0.0638032 0.228728 2.88333   V1 -0.120647 0.20518 2.88333   V2 -0.165481 0.281352 2.98125 
+  N0 -0.193465 0.721244 -0.665116   N1 -0.373497 0.645526 -0.66618   N2 -0.390178 0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 -0.0875289 0.313617 2.98125   V1 1.11022e-16 0.325 2.98125   V2 1.11022e-16 0.237037 2.88333 
+  N0 -0.201937 0.753688 -0.625441   N1 -1.51803e-15 0.780869 -0.624695   N2 -2.42292e-15 0.747409 -0.664364 
+   txt003 
+STRI 
+  V0 1.11022e-16 0.237037 2.88333   V1 -0.0638032 0.228728 2.88333   V2 -0.0875289 0.313617 2.98125 
+  N0 -2.42292e-15 0.747409 -0.664364   N1 -0.193465 0.721244 -0.665116   N2 -0.201937 0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 -0.237037 0 2.88333   V1 -0.228728 0.0638032 2.88333   V2 -0.165279 0.0460445 2.78542 
+  N0 -0.747409 0 -0.664364   N1 -0.721244 0.193465 -0.665116   N2 -0.917897 0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 -0.165279 0.0460445 2.78542   V1 -0.171296 0 2.78542   V2 -0.237037 0 2.88333 
+  N0 -0.917897 0.246906 -0.310647   N1 -0.950775 0 -0.309882   N2 -0.747409 0 -0.664364 
+   txt003 
+STRI 
+  V0 -0.228728 0.0638032 2.88333   V1 -0.20518 0.120647 2.88333   V2 -0.148234 0.0871056 2.78542 
+  N0 -0.721244 0.193465 -0.665116   N1 -0.645526 0.373497 -0.66618   N2 -0.822132 0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 -0.148234 0.0871056 2.78542   V1 -0.165279 0.0460445 2.78542   V2 -0.228728 0.0638032 2.88333 
+  N0 -0.822132 0.476337 -0.311772   N1 -0.917897 0.246906 -0.310647   N2 -0.721244 0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 -0.20518 0.120647 2.88333   V1 -0.168463 0.168463 2.88333   V2 -0.121672 0.121672 2.78542 
+  N0 -0.645526 0.373497 -0.66618   N1 -0.527081 0.527081 -0.666611   N2 -0.671754 0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 -0.121672 0.121672 2.78542   V1 -0.148234 0.0871056 2.78542   V2 -0.20518 0.120647 2.88333 
+  N0 -0.671754 0.671754 -0.312241   N1 -0.822132 0.476337 -0.311772   N2 -0.645526 0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 -0.168463 0.168463 2.88333   V1 -0.120647 0.20518 2.88333   V2 -0.0871056 0.148234 2.78542 
+  N0 -0.527081 0.527081 -0.666611   N1 -0.373497 0.645526 -0.66618   N2 -0.476337 0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 -0.0871056 0.148234 2.78542   V1 -0.121672 0.121672 2.78542   V2 -0.168463 0.168463 2.88333 
+  N0 -0.476337 0.822132 -0.311772   N1 -0.671754 0.671754 -0.312241   N2 -0.527081 0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 -0.120647 0.20518 2.88333   V1 -0.0638032 0.228728 2.88333   V2 -0.0460445 0.165279 2.78542 
+  N0 -0.373497 0.645526 -0.66618   N1 -0.193465 0.721244 -0.665116   N2 -0.246906 0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 -0.0460445 0.165279 2.78542   V1 -0.0871056 0.148234 2.78542   V2 -0.120647 0.20518 2.88333 
+  N0 -0.246906 0.917897 -0.310647   N1 -0.476337 0.822132 -0.311772   N2 -0.373497 0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 -0.0638032 0.228728 2.88333   V1 1.11022e-16 0.237037 2.88333   V2 6.66134e-16 0.171296 2.78542 
+  N0 -0.193465 0.721244 -0.665116   N1 -2.42292e-15 0.747409 -0.664364   N2 -2.16507e-15 0.950775 -0.309882 
+   txt003 
+STRI 
+  V0 6.66134e-16 0.171296 2.78542   V1 -0.0460445 0.165279 2.78542   V2 -0.0638032 0.228728 2.88333 
+  N0 -2.16507e-15 0.950775 -0.309882   N1 -0.246906 0.917897 -0.310647   N2 -0.193465 0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 -0.171296 0 2.78542   V1 -0.165279 0.0460445 2.78542   V2 -0.192963 0.0537037 2.7 
+  N0 -0.950775 0 -0.309882   N1 -0.917897 0.246906 -0.310647   N2 -0.578783 0.15602 0.800417 
+   txt003 
+STRI 
+  V0 -0.192963 0.0537037 2.7   V1 -0.2 0 2.7   V2 -0.171296 0 2.78542 
+  N0 -0.578783 0.15602 0.800417   N1 -0.6 0 0.8   N2 -0.950775 0 -0.309882 
+   txt003 
+STRI 
+  V0 -0.165279 0.0460445 2.78542   V1 -0.148234 0.0871056 2.78542   V2 -0.173037 0.10163 2.7 
+  N0 -0.917897 0.246906 -0.310647   N1 -0.822132 0.476337 -0.311772   N2 -0.517905 0.300385 0.800964 
+   txt003 
+STRI 
+  V0 -0.173037 0.10163 2.7   V1 -0.192963 0.0537037 2.7   V2 -0.165279 0.0460445 2.78542 
+  N0 -0.517905 0.300385 0.800964   N1 -0.578783 0.15602 0.800417   N2 -0.917897 0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 -0.148234 0.0871056 2.78542   V1 -0.121672 0.121672 2.78542   V2 -0.142 0.142 2.7 
+  N0 -0.822132 0.476337 -0.311772   N1 -0.671754 0.671754 -0.312241   N2 -0.423155 0.423155 0.801174 
+   txt003 
+STRI 
+  V0 -0.142 0.142 2.7   V1 -0.173037 0.10163 2.7   V2 -0.148234 0.0871056 2.78542 
+  N0 -0.423155 0.423155 0.801174   N1 -0.517905 0.300385 0.800964   N2 -0.822132 0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 -0.121672 0.121672 2.78542   V1 -0.0871056 0.148234 2.78542   V2 -0.10163 0.173037 2.7 
+  N0 -0.671754 0.671754 -0.312241   N1 -0.476337 0.822132 -0.311772   N2 -0.300385 0.517905 0.800964 
+   txt003 
+STRI 
+  V0 -0.10163 0.173037 2.7   V1 -0.142 0.142 2.7   V2 -0.121672 0.121672 2.78542 
+  N0 -0.300385 0.517905 0.800964   N1 -0.423155 0.423155 0.801174   N2 -0.671754 0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 -0.0871056 0.148234 2.78542   V1 -0.0460445 0.165279 2.78542   V2 -0.0537037 0.192963 2.7 
+  N0 -0.476337 0.822132 -0.311772   N1 -0.246906 0.917897 -0.310647   N2 -0.15602 0.578783 0.800417 
+   txt003 
+STRI 
+  V0 -0.0537037 0.192963 2.7   V1 -0.10163 0.173037 2.7   V2 -0.0871056 0.148234 2.78542 
+  N0 -0.15602 0.578783 0.800417   N1 -0.300385 0.517905 0.800964   N2 -0.476337 0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 -0.0460445 0.165279 2.78542   V1 6.66134e-16 0.171296 2.78542   V2 0 0.2 2.7 
+  N0 -0.246906 0.917897 -0.310647   N1 -2.16507e-15 0.950775 -0.309882   N2 3.17207e-15 0.6 0.8 
+   txt003 
+STRI 
+  V0 0 0.2 2.7   V1 -0.0537037 0.192963 2.7   V2 -0.0460445 0.165279 2.78542 
+  N0 3.17207e-15 0.6 0.8   N1 -0.15602 0.578783 0.800417   N2 -0.246906 0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 0.0750782 0.268946 3.12708   V1 0 0.278704 3.12708   V2 0 0 3.15 
+  N0 0.0645609 0.241077 0.968356   N1 -0 0.249998 0.968246   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.141931 0.241285 3.12708   V1 0.0750782 0.268946 3.12708   V2 0 0 3.15 
+  N0 0.124615 0.215548 0.968509   N1 0.0645609 0.241077 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.19814 0.19814 3.12708   V1 0.141931 0.241285 3.12708   V2 0 0 3.15 
+  N0 0.175885 0.175885 0.96857   N1 0.124615 0.215548 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.241285 0.141931 3.12708   V1 0.19814 0.19814 3.12708   V2 0 0 3.15 
+  N0 0.215548 0.124615 0.968509   N1 0.175885 0.175885 0.96857   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.268946 0.0750782 3.12708   V1 0.241285 0.141931 3.12708   V2 0 0 3.15 
+  N0 0.241077 0.0645609 0.968356   N1 0.215548 0.124615 0.968509   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0.278704 0 3.12708   V1 0.268946 0.0750782 3.12708   V2 0 0 3.15 
+  N0 0.249998 -2.80184e-15 0.968246   N1 0.241077 0.0645609 0.968356   N2 0 0 1 
+   txt003 
+STRI 
+  V0 0 0.278704 3.12708   V1 0.0750782 0.268946 3.12708   V2 0.0977709 0.350254 3.06667 
+  N0 -0 0.249998 0.968246   N1 0.0645609 0.241077 0.968356   N2 0.255913 0.955496 0.146755 
+   txt003 
+STRI 
+  V0 0.0977709 0.350254 3.06667   V1 0 0.362963 3.06667   V2 0 0.278704 3.12708 
+  N0 0.255913 0.955496 0.146755   N1 -0 0.989203 0.146549   N2 -0 0.249998 0.968246 
+   txt003 
+STRI 
+  V0 0.0750782 0.268946 3.12708   V1 0.141931 0.241285 3.12708   V2 0.184834 0.314228 3.06667 
+  N0 0.0645609 0.241077 0.968356   N1 0.124615 0.215548 0.968509   N2 0.495088 0.856312 0.147029 
+   txt003 
+STRI 
+  V0 0.184834 0.314228 3.06667   V1 0.0977709 0.350254 3.06667   V2 0.0750782 0.268946 3.12708 
+  N0 0.495088 0.856312 0.147029   N1 0.255913 0.955496 0.146755   N2 0.0645609 0.241077 0.968356 
+   txt003 
+STRI 
+  V0 0.141931 0.241285 3.12708   V1 0.19814 0.19814 3.12708   V2 0.258037 0.258037 3.06667 
+  N0 0.124615 0.215548 0.968509   N1 0.175885 0.175885 0.96857   N2 0.699411 0.699411 0.147135 
+   txt003 
+STRI 
+  V0 0.258037 0.258037 3.06667   V1 0.184834 0.314228 3.06667   V2 0.141931 0.241285 3.12708 
+  N0 0.699411 0.699411 0.147135   N1 0.495088 0.856312 0.147029   N2 0.124615 0.215548 0.968509 
+   txt003 
+STRI 
+  V0 0.19814 0.19814 3.12708   V1 0.241285 0.141931 3.12708   V2 0.314228 0.184834 3.06667 
+  N0 0.175885 0.175885 0.96857   N1 0.215548 0.124615 0.968509   N2 0.856312 0.495088 0.147029 
+   txt003 
+STRI 
+  V0 0.314228 0.184834 3.06667   V1 0.258037 0.258037 3.06667   V2 0.19814 0.19814 3.12708 
+  N0 0.856312 0.495088 0.147029   N1 0.699411 0.699411 0.147135   N2 0.175885 0.175885 0.96857 
+   txt003 
+STRI 
+  V0 0.241285 0.141931 3.12708   V1 0.268946 0.0750782 3.12708   V2 0.350254 0.0977709 3.06667 
+  N0 0.215548 0.124615 0.968509   N1 0.241077 0.0645609 0.968356   N2 0.955496 0.255913 0.146755 
+   txt003 
+STRI 
+  V0 0.350254 0.0977709 3.06667   V1 0.314228 0.184834 3.06667   V2 0.241285 0.141931 3.12708 
+  N0 0.955496 0.255913 0.146755   N1 0.856312 0.495088 0.147029   N2 0.215548 0.124615 0.968509 
+   txt003 
+STRI 
+  V0 0.268946 0.0750782 3.12708   V1 0.278704 0 3.12708   V2 0.362963 0 3.06667 
+  N0 0.241077 0.0645609 0.968356   N1 0.249998 -2.80184e-15 0.968246   N2 0.989203 -4.98112e-16 0.146549 
+   txt003 
+STRI 
+  V0 0.362963 0 3.06667   V1 0.350254 0.0977709 3.06667   V2 0.268946 0.0750782 3.12708 
+  N0 0.989203 -4.98112e-16 0.146549   N1 0.955496 0.255913 0.146755   N2 0.241077 0.0645609 0.968356 
+   txt003 
+STRI 
+  V0 0 0.362963 3.06667   V1 0.0977709 0.350254 3.06667   V2 0.0875289 0.313617 2.98125 
+  N0 -0 0.989203 0.146549   N1 0.255913 0.955496 0.146755   N2 0.201937 0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 0.0875289 0.313617 2.98125   V1 0 0.325 2.98125   V2 0 0.362963 3.06667 
+  N0 0.201937 0.753688 -0.625441   N1 0 0.780869 -0.624695   N2 -0 0.989203 0.146549 
+   txt003 
+STRI 
+  V0 0.0977709 0.350254 3.06667   V1 0.184834 0.314228 3.06667   V2 0.165481 0.281352 2.98125 
+  N0 0.255913 0.955496 0.146755   N1 0.495088 0.856312 0.147029   N2 0.390178 0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 0.165481 0.281352 2.98125   V1 0.0875289 0.313617 2.98125   V2 0.0977709 0.350254 3.06667 
+  N0 0.390178 0.674735 -0.626493   N1 0.201937 0.753688 -0.625441   N2 0.255913 0.955496 0.146755 
+   txt003 
+STRI 
+  V0 0.184834 0.314228 3.06667   V1 0.258037 0.258037 3.06667   V2 0.231031 0.231031 2.98125 
+  N0 0.495088 0.856312 0.147029   N1 0.699411 0.699411 0.147135   N2 0.550896 0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 0.231031 0.231031 2.98125   V1 0.165481 0.281352 2.98125   V2 0.184834 0.314228 3.06667 
+  N0 0.550896 0.550896 -0.626919   N1 0.390178 0.674735 -0.626493   N2 0.495088 0.856312 0.147029 
+   txt003 
+STRI 
+  V0 0.258037 0.258037 3.06667   V1 0.314228 0.184834 3.06667   V2 0.281352 0.165481 2.98125 
+  N0 0.699411 0.699411 0.147135   N1 0.856312 0.495088 0.147029   N2 0.674735 0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 0.281352 0.165481 2.98125   V1 0.231031 0.231031 2.98125   V2 0.258037 0.258037 3.06667 
+  N0 0.674735 0.390178 -0.626493   N1 0.550896 0.550896 -0.626919   N2 0.699411 0.699411 0.147135 
+   txt003 
+STRI 
+  V0 0.314228 0.184834 3.06667   V1 0.350254 0.0977709 3.06667   V2 0.313617 0.0875289 2.98125 
+  N0 0.856312 0.495088 0.147029   N1 0.955496 0.255913 0.146755   N2 0.753688 0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 0.313617 0.0875289 2.98125   V1 0.281352 0.165481 2.98125   V2 0.314228 0.184834 3.06667 
+  N0 0.753688 0.201937 -0.625441   N1 0.674735 0.390178 -0.626493   N2 0.856312 0.495088 0.147029 
+   txt003 
+STRI 
+  V0 0.350254 0.0977709 3.06667   V1 0.362963 0 3.06667   V2 0.325 -1.11022e-16 2.98125 
+  N0 0.955496 0.255913 0.146755   N1 0.989203 -4.98112e-16 0.146549   N2 0.780869 1.51803e-15 -0.624695 
+   txt003 
+STRI 
+  V0 0.325 -1.11022e-16 2.98125   V1 0.313617 0.0875289 2.98125   V2 0.350254 0.0977709 3.06667 
+  N0 0.780869 1.51803e-15 -0.624695   N1 0.753688 0.201937 -0.625441   N2 0.955496 0.255913 0.146755 
+   txt003 
+STRI 
+  V0 0 0.325 2.98125   V1 0.0875289 0.313617 2.98125   V2 0.0638032 0.228728 2.88333 
+  N0 0 0.780869 -0.624695   N1 0.201937 0.753688 -0.625441   N2 0.193465 0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 0.0638032 0.228728 2.88333   V1 0 0.237037 2.88333   V2 0 0.325 2.98125 
+  N0 0.193465 0.721244 -0.665116   N1 0 0.747409 -0.664364   N2 0 0.780869 -0.624695 
+   txt003 
+STRI 
+  V0 0.0875289 0.313617 2.98125   V1 0.165481 0.281352 2.98125   V2 0.120647 0.20518 2.88333 
+  N0 0.201937 0.753688 -0.625441   N1 0.390178 0.674735 -0.626493   N2 0.373497 0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 0.120647 0.20518 2.88333   V1 0.0638032 0.228728 2.88333   V2 0.0875289 0.313617 2.98125 
+  N0 0.373497 0.645526 -0.66618   N1 0.193465 0.721244 -0.665116   N2 0.201937 0.753688 -0.625441 
+   txt003 
+STRI 
+  V0 0.165481 0.281352 2.98125   V1 0.231031 0.231031 2.98125   V2 0.168463 0.168463 2.88333 
+  N0 0.390178 0.674735 -0.626493   N1 0.550896 0.550896 -0.626919   N2 0.527081 0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 0.168463 0.168463 2.88333   V1 0.120647 0.20518 2.88333   V2 0.165481 0.281352 2.98125 
+  N0 0.527081 0.527081 -0.666611   N1 0.373497 0.645526 -0.66618   N2 0.390178 0.674735 -0.626493 
+   txt003 
+STRI 
+  V0 0.231031 0.231031 2.98125   V1 0.281352 0.165481 2.98125   V2 0.20518 0.120647 2.88333 
+  N0 0.550896 0.550896 -0.626919   N1 0.674735 0.390178 -0.626493   N2 0.645526 0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 0.20518 0.120647 2.88333   V1 0.168463 0.168463 2.88333   V2 0.231031 0.231031 2.98125 
+  N0 0.645526 0.373497 -0.66618   N1 0.527081 0.527081 -0.666611   N2 0.550896 0.550896 -0.626919 
+   txt003 
+STRI 
+  V0 0.281352 0.165481 2.98125   V1 0.313617 0.0875289 2.98125   V2 0.228728 0.0638032 2.88333 
+  N0 0.674735 0.390178 -0.626493   N1 0.753688 0.201937 -0.625441   N2 0.721244 0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 0.228728 0.0638032 2.88333   V1 0.20518 0.120647 2.88333   V2 0.281352 0.165481 2.98125 
+  N0 0.721244 0.193465 -0.665116   N1 0.645526 0.373497 -0.66618   N2 0.674735 0.390178 -0.626493 
+   txt003 
+STRI 
+  V0 0.313617 0.0875289 2.98125   V1 0.325 -1.11022e-16 2.98125   V2 0.237037 -1.11022e-16 2.88333 
+  N0 0.753688 0.201937 -0.625441   N1 0.780869 1.51803e-15 -0.624695   N2 0.747409 2.42292e-15 -0.664364 
+   txt003 
+STRI 
+  V0 0.237037 -1.11022e-16 2.88333   V1 0.228728 0.0638032 2.88333   V2 0.313617 0.0875289 2.98125 
+  N0 0.747409 2.42292e-15 -0.664364   N1 0.721244 0.193465 -0.665116   N2 0.753688 0.201937 -0.625441 
+   txt003 
+STRI 
+  V0 0 0.237037 2.88333   V1 0.0638032 0.228728 2.88333   V2 0.0460445 0.165279 2.78542 
+  N0 0 0.747409 -0.664364   N1 0.193465 0.721244 -0.665116   N2 0.246906 0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 0.0460445 0.165279 2.78542   V1 0 0.171296 2.78542   V2 0 0.237037 2.88333 
+  N0 0.246906 0.917897 -0.310647   N1 0 0.950775 -0.309882   N2 0 0.747409 -0.664364 
+   txt003 
+STRI 
+  V0 0.0638032 0.228728 2.88333   V1 0.120647 0.20518 2.88333   V2 0.0871056 0.148234 2.78542 
+  N0 0.193465 0.721244 -0.665116   N1 0.373497 0.645526 -0.66618   N2 0.476337 0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 0.0871056 0.148234 2.78542   V1 0.0460445 0.165279 2.78542   V2 0.0638032 0.228728 2.88333 
+  N0 0.476337 0.822132 -0.311772   N1 0.246906 0.917897 -0.310647   N2 0.193465 0.721244 -0.665116 
+   txt003 
+STRI 
+  V0 0.120647 0.20518 2.88333   V1 0.168463 0.168463 2.88333   V2 0.121672 0.121672 2.78542 
+  N0 0.373497 0.645526 -0.66618   N1 0.527081 0.527081 -0.666611   N2 0.671754 0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 0.121672 0.121672 2.78542   V1 0.0871056 0.148234 2.78542   V2 0.120647 0.20518 2.88333 
+  N0 0.671754 0.671754 -0.312241   N1 0.476337 0.822132 -0.311772   N2 0.373497 0.645526 -0.66618 
+   txt003 
+STRI 
+  V0 0.168463 0.168463 2.88333   V1 0.20518 0.120647 2.88333   V2 0.148234 0.0871056 2.78542 
+  N0 0.527081 0.527081 -0.666611   N1 0.645526 0.373497 -0.66618   N2 0.822132 0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 0.148234 0.0871056 2.78542   V1 0.121672 0.121672 2.78542   V2 0.168463 0.168463 2.88333 
+  N0 0.822132 0.476337 -0.311772   N1 0.671754 0.671754 -0.312241   N2 0.527081 0.527081 -0.666611 
+   txt003 
+STRI 
+  V0 0.20518 0.120647 2.88333   V1 0.228728 0.0638032 2.88333   V2 0.165279 0.0460445 2.78542 
+  N0 0.645526 0.373497 -0.66618   N1 0.721244 0.193465 -0.665116   N2 0.917897 0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 0.165279 0.0460445 2.78542   V1 0.148234 0.0871056 2.78542   V2 0.20518 0.120647 2.88333 
+  N0 0.917897 0.246906 -0.310647   N1 0.822132 0.476337 -0.311772   N2 0.645526 0.373497 -0.66618 
+   txt003 
+STRI 
+  V0 0.228728 0.0638032 2.88333   V1 0.237037 -1.11022e-16 2.88333   V2 0.171296 -6.66134e-16 2.78542 
+  N0 0.721244 0.193465 -0.665116   N1 0.747409 2.42292e-15 -0.664364   N2 0.950775 2.16507e-15 -0.309882 
+   txt003 
+STRI 
+  V0 0.171296 -6.66134e-16 2.78542   V1 0.165279 0.0460445 2.78542   V2 0.228728 0.0638032 2.88333 
+  N0 0.950775 2.16507e-15 -0.309882   N1 0.917897 0.246906 -0.310647   N2 0.721244 0.193465 -0.665116 
+   txt003 
+STRI 
+  V0 0 0.171296 2.78542   V1 0.0460445 0.165279 2.78542   V2 0.0537037 0.192963 2.7 
+  N0 0 0.950775 -0.309882   N1 0.246906 0.917897 -0.310647   N2 0.15602 0.578783 0.800417 
+   txt003 
+STRI 
+  V0 0.0537037 0.192963 2.7   V1 0 0.2 2.7   V2 0 0.171296 2.78542 
+  N0 0.15602 0.578783 0.800417   N1 -0 0.6 0.8   N2 0 0.950775 -0.309882 
+   txt003 
+STRI 
+  V0 0.0460445 0.165279 2.78542   V1 0.0871056 0.148234 2.78542   V2 0.10163 0.173037 2.7 
+  N0 0.246906 0.917897 -0.310647   N1 0.476337 0.822132 -0.311772   N2 0.300385 0.517905 0.800964 
+   txt003 
+STRI 
+  V0 0.10163 0.173037 2.7   V1 0.0537037 0.192963 2.7   V2 0.0460445 0.165279 2.78542 
+  N0 0.300385 0.517905 0.800964   N1 0.15602 0.578783 0.800417   N2 0.246906 0.917897 -0.310647 
+   txt003 
+STRI 
+  V0 0.0871056 0.148234 2.78542   V1 0.121672 0.121672 2.78542   V2 0.142 0.142 2.7 
+  N0 0.476337 0.822132 -0.311772   N1 0.671754 0.671754 -0.312241   N2 0.423155 0.423155 0.801174 
+   txt003 
+STRI 
+  V0 0.142 0.142 2.7   V1 0.10163 0.173037 2.7   V2 0.0871056 0.148234 2.78542 
+  N0 0.423155 0.423155 0.801174   N1 0.300385 0.517905 0.800964   N2 0.476337 0.822132 -0.311772 
+   txt003 
+STRI 
+  V0 0.121672 0.121672 2.78542   V1 0.148234 0.0871056 2.78542   V2 0.173037 0.10163 2.7 
+  N0 0.671754 0.671754 -0.312241   N1 0.822132 0.476337 -0.311772   N2 0.517905 0.300385 0.800964 
+   txt003 
+STRI 
+  V0 0.173037 0.10163 2.7   V1 0.142 0.142 2.7   V2 0.121672 0.121672 2.78542 
+  N0 0.517905 0.300385 0.800964   N1 0.423155 0.423155 0.801174   N2 0.671754 0.671754 -0.312241 
+   txt003 
+STRI 
+  V0 0.148234 0.0871056 2.78542   V1 0.165279 0.0460445 2.78542   V2 0.192963 0.0537037 2.7 
+  N0 0.822132 0.476337 -0.311772   N1 0.917897 0.246906 -0.310647   N2 0.578783 0.15602 0.800417 
+   txt003 
+STRI 
+  V0 0.192963 0.0537037 2.7   V1 0.173037 0.10163 2.7   V2 0.148234 0.0871056 2.78542 
+  N0 0.578783 0.15602 0.800417   N1 0.517905 0.300385 0.800964   N2 0.822132 0.476337 -0.311772 
+   txt003 
+STRI 
+  V0 0.165279 0.0460445 2.78542   V1 0.171296 -6.66134e-16 2.78542   V2 0.2 0 2.7 
+  N0 0.917897 0.246906 -0.310647   N1 0.950775 2.16507e-15 -0.309882   N2 0.6 -3.17207e-15 0.8 
+   txt003 
+STRI 
+  V0 0.2 0 2.7   V1 0.192963 0.0537037 2.7   V2 0.165279 0.0460445 2.78542 
+  N0 0.6 -3.17207e-15 0.8   N1 0.578783 0.15602 0.800417   N2 0.917897 0.246906 -0.310647 
+   txt003 
+STRI 
+  V0 0.2 0 2.7   V1 0.192963 -0.0537037 2.7   V2 0.338579 -0.0942301 2.63611 
+  N0 0.6 0 0.8   N1 0.578783 -0.15602 0.800417   N2 0.258756 -0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 0.338579 -0.0942301 2.63611   V1 0.350926 0 2.63611   V2 0.2 0 2.7 
+  N0 0.258756 -0.0697517 0.963421   N1 0.268354 0 0.96332   N2 0.6 0 0.8 
+   txt003 
+STRI 
+  V0 0.192963 -0.0537037 2.7   V1 0.173037 -0.10163 2.7   V2 0.303616 -0.178322 2.63611 
+  N0 0.578783 -0.15602 0.800417   N1 0.517905 -0.300385 0.800964   N2 0.231413 -0.134219 0.963552 
+   txt003 
+STRI 
+  V0 0.303616 -0.178322 2.63611   V1 0.338579 -0.0942301 2.63611   V2 0.192963 -0.0537037 2.7 
+  N0 0.231413 -0.134219 0.963552   N1 0.258756 -0.0697517 0.963421   N2 0.578783 -0.15602 0.800417 
+   txt003 
+STRI 
+  V0 0.173037 -0.10163 2.7   V1 0.142 -0.142 2.7   V2 0.249157 -0.249157 2.63611 
+  N0 0.517905 -0.300385 0.800964   N1 0.423155 -0.423155 0.801174   N2 0.189037 -0.189037 0.963603 
+   txt003 
+STRI 
+  V0 0.249157 -0.249157 2.63611   V1 0.303616 -0.178322 2.63611   V2 0.173037 -0.10163 2.7 
+  N0 0.189037 -0.189037 0.963603   N1 0.231413 -0.134219 0.963552   N2 0.517905 -0.300385 0.800964 
+   txt003 
+STRI 
+  V0 0.142 -0.142 2.7   V1 0.10163 -0.173037 2.7   V2 0.178322 -0.303616 2.63611 
+  N0 0.423155 -0.423155 0.801174   N1 0.300385 -0.517905 0.800964   N2 0.134219 -0.231413 0.963552 
+   txt003 
+STRI 
+  V0 0.178322 -0.303616 2.63611   V1 0.249157 -0.249157 2.63611   V2 0.142 -0.142 2.7 
+  N0 0.134219 -0.231413 0.963552   N1 0.189037 -0.189037 0.963603   N2 0.423155 -0.423155 0.801174 
+   txt003 
+STRI 
+  V0 0.10163 -0.173037 2.7   V1 0.0537037 -0.192963 2.7   V2 0.0942301 -0.338579 2.63611 
+  N0 0.300385 -0.517905 0.800964   N1 0.15602 -0.578783 0.800417   N2 0.0697517 -0.258756 0.963421 
+   txt003 
+STRI 
+  V0 0.0942301 -0.338579 2.63611   V1 0.178322 -0.303616 2.63611   V2 0.10163 -0.173037 2.7 
+  N0 0.0697517 -0.258756 0.963421   N1 0.134219 -0.231413 0.963552   N2 0.300385 -0.517905 0.800964 
+   txt003 
+STRI 
+  V0 0.0537037 -0.192963 2.7   V1 0 -0.2 2.7   V2 5.55112e-17 -0.350926 2.63611 
+  N0 0.15602 -0.578783 0.800417   N1 -9.91271e-17 -0.6 0.8   N2 0 -0.268354 0.96332 
+   txt003 
+STRI 
+  V0 5.55112e-17 -0.350926 2.63611   V1 0.0942301 -0.338579 2.63611   V2 0.0537037 -0.192963 2.7 
+  N0 0 -0.268354 0.96332   N1 0.0697517 -0.258756 0.963421   N2 0.15602 -0.578783 0.800417 
+   txt003 
+STRI 
+  V0 0.350926 0 2.63611   V1 0.338579 -0.0942301 2.63611   V2 0.553875 -0.15415 2.58889 
+  N0 0.268354 0 0.96332   N1 0.258756 -0.0697517 0.963421   N2 0.162011 -0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 0.553875 -0.15415 2.58889   V1 0.574074 0 2.58889   V2 0.350926 0 2.63611 
+  N0 0.162011 -0.0436726 0.985822   N1 0.168031 0 0.985782   N2 0.268354 0 0.96332 
+   txt003 
+STRI 
+  V0 0.338579 -0.0942301 2.63611   V1 0.303616 -0.178322 2.63611   V2 0.49668 -0.291715 2.58889 
+  N0 0.258756 -0.0697517 0.963421   N1 0.231413 -0.134219 0.963552   N2 0.144879 -0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 0.49668 -0.291715 2.58889   V1 0.553875 -0.15415 2.58889   V2 0.338579 -0.0942301 2.63611 
+  N0 0.144879 -0.0840299 0.985875   N1 0.162011 -0.0436726 0.985822   N2 0.258756 -0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 0.303616 -0.178322 2.63611   V1 0.249157 -0.249157 2.63611   V2 0.407593 -0.407593 2.58889 
+  N0 0.231413 -0.134219 0.963552   N1 0.189037 -0.189037 0.963603   N2 0.118345 -0.118345 0.985895 
+   txt003 
+STRI 
+  V0 0.407593 -0.407593 2.58889   V1 0.49668 -0.291715 2.58889   V2 0.303616 -0.178322 2.63611 
+  N0 0.118345 -0.118345 0.985895   N1 0.144879 -0.0840299 0.985875   N2 0.231413 -0.134219 0.963552 
+   txt003 
+STRI 
+  V0 0.249157 -0.249157 2.63611   V1 0.178322 -0.303616 2.63611   V2 0.291715 -0.49668 2.58889 
+  N0 0.189037 -0.189037 0.963603   N1 0.134219 -0.231413 0.963552   N2 0.0840299 -0.144879 0.985875 
+   txt003 
+STRI 
+  V0 0.291715 -0.49668 2.58889   V1 0.407593 -0.407593 2.58889   V2 0.249157 -0.249157 2.63611 
+  N0 0.0840299 -0.144879 0.985875   N1 0.118345 -0.118345 0.985895   N2 0.189037 -0.189037 0.963603 
+   txt003 
+STRI 
+  V0 0.178322 -0.303616 2.63611   V1 0.0942301 -0.338579 2.63611   V2 0.15415 -0.553875 2.58889 
+  N0 0.134219 -0.231413 0.963552   N1 0.0697517 -0.258756 0.963421   N2 0.0436726 -0.162011 0.985822 
+   txt003 
+STRI 
+  V0 0.15415 -0.553875 2.58889   V1 0.291715 -0.49668 2.58889   V2 0.178322 -0.303616 2.63611 
+  N0 0.0436726 -0.162011 0.985822   N1 0.0840299 -0.144879 0.985875   N2 0.134219 -0.231413 0.963552 
+   txt003 
+STRI 
+  V0 0.0942301 -0.338579 2.63611   V1 5.55112e-17 -0.350926 2.63611   V2 2.22045e-16 -0.574074 2.58889 
+  N0 0.0697517 -0.258756 0.963421   N1 0 -0.268354 0.96332   N2 -1.93429e-17 -0.168031 0.985782 
+   txt003 
+STRI 
+  V0 2.22045e-16 -0.574074 2.58889   V1 0.15415 -0.553875 2.58889   V2 0.0942301 -0.338579 2.63611 
+  N0 -1.93429e-17 -0.168031 0.985782   N1 0.0436726 -0.162011 0.985822   N2 0.0697517 -0.258756 0.963421 
+   txt003 
+STRI 
+  V0 0.574074 0 2.58889   V1 0.553875 -0.15415 2.58889   V2 0.795972 -0.221528 2.55 
+  N0 0.168031 0 0.985782   N1 0.162011 -0.0436726 0.985822   N2 0.143025 -0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 0.795972 -0.221528 2.55   V1 0.825 0 2.55   V2 0.574074 0 2.58889 
+  N0 0.143025 -0.0385545 0.988968   N1 0.14834 0 0.988936   N2 0.168031 0 0.985782 
+   txt003 
+STRI 
+  V0 0.553875 -0.15415 2.58889   V1 0.49668 -0.291715 2.58889   V2 0.713778 -0.419222 2.55 
+  N0 0.162011 -0.0436726 0.985822   N1 0.144879 -0.0840299 0.985875   N2 0.127899 -0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 0.713778 -0.419222 2.55   V1 0.795972 -0.221528 2.55   V2 0.553875 -0.15415 2.58889 
+  N0 0.127899 -0.0741814 0.989009   N1 0.143025 -0.0385545 0.988968   N2 0.162011 -0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 0.49668 -0.291715 2.58889   V1 0.407593 -0.407593 2.58889   V2 0.58575 -0.58575 2.55 
+  N0 0.144879 -0.0840299 0.985875   N1 0.118345 -0.118345 0.985895   N2 0.104474 -0.104474 0.989025 
+   txt003 
+STRI 
+  V0 0.58575 -0.58575 2.55   V1 0.713778 -0.419222 2.55   V2 0.49668 -0.291715 2.58889 
+  N0 0.104474 -0.104474 0.989025   N1 0.127899 -0.0741814 0.989009   N2 0.144879 -0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 0.407593 -0.407593 2.58889   V1 0.291715 -0.49668 2.58889   V2 0.419222 -0.713778 2.55 
+  N0 0.118345 -0.118345 0.985895   N1 0.0840299 -0.144879 0.985875   N2 0.0741814 -0.127899 0.989009 
+   txt003 
+STRI 
+  V0 0.419222 -0.713778 2.55   V1 0.58575 -0.58575 2.55   V2 0.407593 -0.407593 2.58889 
+  N0 0.0741814 -0.127899 0.989009   N1 0.104474 -0.104474 0.989025   N2 0.118345 -0.118345 0.985895 
+   txt003 
+STRI 
+  V0 0.291715 -0.49668 2.58889   V1 0.15415 -0.553875 2.58889   V2 0.221528 -0.795972 2.55 
+  N0 0.0840299 -0.144879 0.985875   N1 0.0436726 -0.162011 0.985822   N2 0.0385545 -0.143025 0.988968 
+   txt003 
+STRI 
+  V0 0.221528 -0.795972 2.55   V1 0.419222 -0.713778 2.55   V2 0.291715 -0.49668 2.58889 
+  N0 0.0385545 -0.143025 0.988968   N1 0.0741814 -0.127899 0.989009   N2 0.0840299 -0.144879 0.985875 
+   txt003 
+STRI 
+  V0 0.15415 -0.553875 2.58889   V1 2.22045e-16 -0.574074 2.58889   V2 1.11022e-16 -0.825 2.55 
+  N0 0.0436726 -0.162011 0.985822   N1 -1.93429e-17 -0.168031 0.985782   N2 -2.37649e-17 -0.14834 0.988936 
+   txt003 
+STRI 
+  V0 1.11022e-16 -0.825 2.55   V1 0.221528 -0.795972 2.55   V2 0.15415 -0.553875 2.58889 
+  N0 -2.37649e-17 -0.14834 0.988936   N1 0.0385545 -0.143025 0.988968   N2 0.0436726 -0.162011 0.985822 
+   txt003 
+STRI 
+  V0 0.825 0 2.55   V1 0.795972 -0.221528 2.55   V2 1.02199 -0.284431 2.51111 
+  N0 0.14834 0 0.988936   N1 0.143025 -0.0385545 0.988968   N2 0.186699 -0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 1.02199 -0.284431 2.51111   V1 1.05926 0 2.51111   V2 0.825 0 2.55 
+  N0 0.186699 -0.0503275 0.981127   N1 0.193633 0 0.981074   N2 0.14834 0 0.988936 
+   txt003 
+STRI 
+  V0 0.795972 -0.221528 2.55   V1 0.713778 -0.419222 2.55   V2 0.916455 -0.538261 2.51111 
+  N0 0.143025 -0.0385545 0.988968   N1 0.127899 -0.0741814 0.989009   N2 0.166959 -0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 0.916455 -0.538261 2.51111   V1 1.02199 -0.284431 2.51111   V2 0.795972 -0.221528 2.55 
+  N0 0.166959 -0.0968361 0.981197   N1 0.186699 -0.0503275 0.981127   N2 0.143025 -0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 0.713778 -0.419222 2.55   V1 0.58575 -0.58575 2.55   V2 0.752074 -0.752074 2.51111 
+  N0 0.127899 -0.0741814 0.989009   N1 0.104474 -0.104474 0.989025   N2 0.136382 -0.136382 0.981224 
+   txt003 
+STRI 
+  V0 0.752074 -0.752074 2.51111   V1 0.916455 -0.538261 2.51111   V2 0.713778 -0.419222 2.55 
+  N0 0.136382 -0.136382 0.981224   N1 0.166959 -0.0968361 0.981197   N2 0.127899 -0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 0.58575 -0.58575 2.55   V1 0.419222 -0.713778 2.55   V2 0.538261 -0.916455 2.51111 
+  N0 0.104474 -0.104474 0.989025   N1 0.0741814 -0.127899 0.989009   N2 0.0968361 -0.166959 0.981197 
+   txt003 
+STRI 
+  V0 0.538261 -0.916455 2.51111   V1 0.752074 -0.752074 2.51111   V2 0.58575 -0.58575 2.55 
+  N0 0.0968361 -0.166959 0.981197   N1 0.136382 -0.136382 0.981224   N2 0.104474 -0.104474 0.989025 
+   txt003 
+STRI 
+  V0 0.419222 -0.713778 2.55   V1 0.221528 -0.795972 2.55   V2 0.284431 -1.02199 2.51111 
+  N0 0.0741814 -0.127899 0.989009   N1 0.0385545 -0.143025 0.988968   N2 0.0503275 -0.186699 0.981127 
+   txt003 
+STRI 
+  V0 0.284431 -1.02199 2.51111   V1 0.538261 -0.916455 2.51111   V2 0.419222 -0.713778 2.55 
+  N0 0.0503275 -0.186699 0.981127   N1 0.0968361 -0.166959 0.981197   N2 0.0741814 -0.127899 0.989009 
+   txt003 
+STRI 
+  V0 0.221528 -0.795972 2.55   V1 1.11022e-16 -0.825 2.55   V2 4.44089e-16 -1.05926 2.51111 
+  N0 0.0385545 -0.143025 0.988968   N1 -2.37649e-17 -0.14834 0.988936   N2 -7.24819e-17 -0.193633 0.981074 
+   txt003 
+STRI 
+  V0 4.44089e-16 -1.05926 2.51111   V1 0.284431 -1.02199 2.51111   V2 0.221528 -0.795972 2.55 
+  N0 -7.24819e-17 -0.193633 0.981074   N1 0.0503275 -0.186699 0.981127   N2 0.0385545 -0.143025 0.988968 
+   txt003 
+STRI 
+  V0 1.05926 0 2.51111   V1 1.02199 -0.284431 2.51111   V2 1.18904 -0.330924 2.46389 
+  N0 0.193633 0 0.981074   N1 0.186699 -0.0503275 0.981127   N2 0.376378 -0.101459 0.920894 
+   txt003 
+STRI 
+  V0 1.18904 -0.330924 2.46389   V1 1.23241 0 2.46389   V2 1.05926 0 2.51111 
+  N0 0.376378 -0.101459 0.920894   N1 0.390293 0 0.920691   N2 0.193633 0 0.981074 
+   txt003 
+STRI 
+  V0 1.02199 -0.284431 2.51111   V1 0.916455 -0.538261 2.51111   V2 1.06626 -0.626246 2.46389 
+  N0 0.186699 -0.0503275 0.981127   N1 0.166959 -0.0968361 0.981197   N2 0.336657 -0.195261 0.92116 
+   txt003 
+STRI 
+  V0 1.06626 -0.626246 2.46389   V1 1.18904 -0.330924 2.46389   V2 1.02199 -0.284431 2.51111 
+  N0 0.336657 -0.195261 0.92116   N1 0.376378 -0.101459 0.920894   N2 0.186699 -0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 0.916455 -0.538261 2.51111   V1 0.752074 -0.752074 2.51111   V2 0.875009 -0.875009 2.46389 
+  N0 0.166959 -0.0968361 0.981197   N1 0.136382 -0.136382 0.981224   N2 0.275025 -0.275025 0.921262 
+   txt003 
+STRI 
+  V0 0.875009 -0.875009 2.46389   V1 1.06626 -0.626246 2.46389   V2 0.916455 -0.538261 2.51111 
+  N0 0.275025 -0.275025 0.921262   N1 0.336657 -0.195261 0.92116   N2 0.166959 -0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 0.752074 -0.752074 2.51111   V1 0.538261 -0.916455 2.51111   V2 0.626246 -1.06626 2.46389 
+  N0 0.136382 -0.136382 0.981224   N1 0.0968361 -0.166959 0.981197   N2 0.195261 -0.336657 0.92116 
+   txt003 
+STRI 
+  V0 0.626246 -1.06626 2.46389   V1 0.875009 -0.875009 2.46389   V2 0.752074 -0.752074 2.51111 
+  N0 0.195261 -0.336657 0.92116   N1 0.275025 -0.275025 0.921262   N2 0.136382 -0.136382 0.981224 
+   txt003 
+STRI 
+  V0 0.538261 -0.916455 2.51111   V1 0.284431 -1.02199 2.51111   V2 0.330924 -1.18904 2.46389 
+  N0 0.0968361 -0.166959 0.981197   N1 0.0503275 -0.186699 0.981127   N2 0.101459 -0.376378 0.920894 
+   txt003 
+STRI 
+  V0 0.330924 -1.18904 2.46389   V1 0.626246 -1.06626 2.46389   V2 0.538261 -0.916455 2.51111 
+  N0 0.101459 -0.376378 0.920894   N1 0.195261 -0.336657 0.92116   N2 0.0968361 -0.166959 0.981197 
+   txt003 
+STRI 
+  V0 0.284431 -1.02199 2.51111   V1 4.44089e-16 -1.05926 2.51111   V2 4.44089e-16 -1.23241 2.46389 
+  N0 0.0503275 -0.186699 0.981127   N1 -7.24819e-17 -0.193633 0.981074   N2 -8.37138e-17 -0.390293 0.920691 
+   txt003 
+STRI 
+  V0 4.44089e-16 -1.23241 2.46389   V1 0.330924 -1.18904 2.46389   V2 0.284431 -1.02199 2.51111 
+  N0 -8.37138e-17 -0.390293 0.920691   N1 0.101459 -0.376378 0.920894   N2 0.0503275 -0.186699 0.981127 
+   txt003 
+STRI 
+  V0 1.23241 0 2.46389   V1 1.18904 -0.330924 2.46389   V2 1.25426 -0.349074 2.4 
+  N0 0.390293 0 0.920691   N1 0.376378 -0.101459 0.920894   N2 0.965535 -0.260275 -1.02004e-15 
+   txt003 
+STRI 
+  V0 1.25426 -0.349074 2.4   V1 1.3 0 2.4   V2 1.23241 0 2.46389 
+  N0 0.965535 -0.260275 -1.02004e-15   N1 1 0 -9.86865e-16   N2 0.390293 0 0.920691 
+   txt003 
+STRI 
+  V0 1.18904 -0.330924 2.46389   V1 1.06626 -0.626246 2.46389   V2 1.12474 -0.660593 2.4 
+  N0 0.376378 -0.101459 0.920894   N1 0.336657 -0.195261 0.92116   N2 0.865031 -0.501718 -9.69705e-16 
+   txt003 
+STRI 
+  V0 1.12474 -0.660593 2.4   V1 1.25426 -0.349074 2.4   V2 1.18904 -0.330924 2.46389 
+  N0 0.865031 -0.501718 -9.69705e-16   N1 0.965535 -0.260275 -1.02004e-15   N2 0.376378 -0.101459 0.920894 
+   txt003 
+STRI 
+  V0 1.06626 -0.626246 2.46389   V1 0.875009 -0.875009 2.46389   V2 0.923 -0.923 2.4 
+  N0 0.336657 -0.195261 0.92116   N1 0.275025 -0.275025 0.921262   N2 0.707107 -0.707107 -7.41433e-16 
+   txt003 
+STRI 
+  V0 0.923 -0.923 2.4   V1 1.12474 -0.660593 2.4   V2 1.06626 -0.626246 2.46389 
+  N0 0.707107 -0.707107 -7.41433e-16   N1 0.865031 -0.501718 -9.69705e-16   N2 0.336657 -0.195261 0.92116 
+   txt003 
+STRI 
+  V0 0.875009 -0.875009 2.46389   V1 0.626246 -1.06626 2.46389   V2 0.660593 -1.12474 2.4 
+  N0 0.275025 -0.275025 0.921262   N1 0.195261 -0.336657 0.92116   N2 0.501718 -0.865031 -4.67305e-16 
+   txt003 
+STRI 
+  V0 0.660593 -1.12474 2.4   V1 0.923 -0.923 2.4   V2 0.875009 -0.875009 2.46389 
+  N0 0.501718 -0.865031 -4.67305e-16   N1 0.707107 -0.707107 -7.41433e-16   N2 0.275025 -0.275025 0.921262 
+   txt003 
+STRI 
+  V0 0.626246 -1.06626 2.46389   V1 0.330924 -1.18904 2.46389   V2 0.349074 -1.25426 2.4 
+  N0 0.195261 -0.336657 0.92116   N1 0.101459 -0.376378 0.920894   N2 0.260275 -0.965535 -5.24893e-16 
+   txt003 
+STRI 
+  V0 0.349074 -1.25426 2.4   V1 0.660593 -1.12474 2.4   V2 0.626246 -1.06626 2.46389 
+  N0 0.260275 -0.965535 -5.24893e-16   N1 0.501718 -0.865031 -4.67305e-16   N2 0.195261 -0.336657 0.92116 
+   txt003 
+STRI 
+  V0 0.330924 -1.18904 2.46389   V1 4.44089e-16 -1.23241 2.46389   V2 6.66134e-16 -1.3 2.4 
+  N0 0.101459 -0.376378 0.920894   N1 -8.37138e-17 -0.390293 0.920691   N2 -4.06675e-16 -1 -1.4803e-15 
+   txt003 
+STRI 
+  V0 6.66134e-16 -1.3 2.4   V1 0.349074 -1.25426 2.4   V2 0.330924 -1.18904 2.46389 
+  N0 -4.06675e-16 -1 -1.4803e-15   N1 0.260275 -0.965535 -5.24893e-16   N2 0.101459 -0.376378 0.920894 
+   txt003 
+STRI 
+  V0 0 -0.2 2.7   V1 -0.0537037 -0.192963 2.7   V2 -0.0942301 -0.338579 2.63611 
+  N0 0 -0.6 0.8   N1 -0.15602 -0.578783 0.800417   N2 -0.0697517 -0.258756 0.963421 
+   txt003 
+STRI 
+  V0 -0.0942301 -0.338579 2.63611   V1 0 -0.350926 2.63611   V2 0 -0.2 2.7 
+  N0 -0.0697517 -0.258756 0.963421   N1 0 -0.268354 0.96332   N2 0 -0.6 0.8 
+   txt003 
+STRI 
+  V0 -0.0537037 -0.192963 2.7   V1 -0.10163 -0.173037 2.7   V2 -0.178322 -0.303616 2.63611 
+  N0 -0.15602 -0.578783 0.800417   N1 -0.300385 -0.517905 0.800964   N2 -0.134219 -0.231413 0.963552 
+   txt003 
+STRI 
+  V0 -0.178322 -0.303616 2.63611   V1 -0.0942301 -0.338579 2.63611   V2 -0.0537037 -0.192963 2.7 
+  N0 -0.134219 -0.231413 0.963552   N1 -0.0697517 -0.258756 0.963421   N2 -0.15602 -0.578783 0.800417 
+   txt003 
+STRI 
+  V0 -0.10163 -0.173037 2.7   V1 -0.142 -0.142 2.7   V2 -0.249157 -0.249157 2.63611 
+  N0 -0.300385 -0.517905 0.800964   N1 -0.423155 -0.423155 0.801174   N2 -0.189037 -0.189037 0.963603 
+   txt003 
+STRI 
+  V0 -0.249157 -0.249157 2.63611   V1 -0.178322 -0.303616 2.63611   V2 -0.10163 -0.173037 2.7 
+  N0 -0.189037 -0.189037 0.963603   N1 -0.134219 -0.231413 0.963552   N2 -0.300385 -0.517905 0.800964 
+   txt003 
+STRI 
+  V0 -0.142 -0.142 2.7   V1 -0.173037 -0.10163 2.7   V2 -0.303616 -0.178322 2.63611 
+  N0 -0.423155 -0.423155 0.801174   N1 -0.517905 -0.300385 0.800964   N2 -0.231413 -0.134219 0.963552 
+   txt003 
+STRI 
+  V0 -0.303616 -0.178322 2.63611   V1 -0.249157 -0.249157 2.63611   V2 -0.142 -0.142 2.7 
+  N0 -0.231413 -0.134219 0.963552   N1 -0.189037 -0.189037 0.963603   N2 -0.423155 -0.423155 0.801174 
+   txt003 
+STRI 
+  V0 -0.173037 -0.10163 2.7   V1 -0.192963 -0.0537037 2.7   V2 -0.338579 -0.0942301 2.63611 
+  N0 -0.517905 -0.300385 0.800964   N1 -0.578783 -0.15602 0.800417   N2 -0.258756 -0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 -0.338579 -0.0942301 2.63611   V1 -0.303616 -0.178322 2.63611   V2 -0.173037 -0.10163 2.7 
+  N0 -0.258756 -0.0697517 0.963421   N1 -0.231413 -0.134219 0.963552   N2 -0.517905 -0.300385 0.800964 
+   txt003 
+STRI 
+  V0 -0.192963 -0.0537037 2.7   V1 -0.2 0 2.7   V2 -0.350926 -5.55112e-17 2.63611 
+  N0 -0.578783 -0.15602 0.800417   N1 -0.6 9.91271e-17 0.8   N2 -0.268354 0 0.96332 
+   txt003 
+STRI 
+  V0 -0.350926 -5.55112e-17 2.63611   V1 -0.338579 -0.0942301 2.63611   V2 -0.192963 -0.0537037 2.7 
+  N0 -0.268354 0 0.96332   N1 -0.258756 -0.0697517 0.963421   N2 -0.578783 -0.15602 0.800417 
+   txt003 
+STRI 
+  V0 0 -0.350926 2.63611   V1 -0.0942301 -0.338579 2.63611   V2 -0.15415 -0.553875 2.58889 
+  N0 0 -0.268354 0.96332   N1 -0.0697517 -0.258756 0.963421   N2 -0.0436726 -0.162011 0.985822 
+   txt003 
+STRI 
+  V0 -0.15415 -0.553875 2.58889   V1 0 -0.574074 2.58889   V2 0 -0.350926 2.63611 
+  N0 -0.0436726 -0.162011 0.985822   N1 0 -0.168031 0.985782   N2 0 -0.268354 0.96332 
+   txt003 
+STRI 
+  V0 -0.0942301 -0.338579 2.63611   V1 -0.178322 -0.303616 2.63611   V2 -0.291715 -0.49668 2.58889 
+  N0 -0.0697517 -0.258756 0.963421   N1 -0.134219 -0.231413 0.963552   N2 -0.0840299 -0.144879 0.985875 
+   txt003 
+STRI 
+  V0 -0.291715 -0.49668 2.58889   V1 -0.15415 -0.553875 2.58889   V2 -0.0942301 -0.338579 2.63611 
+  N0 -0.0840299 -0.144879 0.985875   N1 -0.0436726 -0.162011 0.985822   N2 -0.0697517 -0.258756 0.963421 
+   txt003 
+STRI 
+  V0 -0.178322 -0.303616 2.63611   V1 -0.249157 -0.249157 2.63611   V2 -0.407593 -0.407593 2.58889 
+  N0 -0.134219 -0.231413 0.963552   N1 -0.189037 -0.189037 0.963603   N2 -0.118345 -0.118345 0.985895 
+   txt003 
+STRI 
+  V0 -0.407593 -0.407593 2.58889   V1 -0.291715 -0.49668 2.58889   V2 -0.178322 -0.303616 2.63611 
+  N0 -0.118345 -0.118345 0.985895   N1 -0.0840299 -0.144879 0.985875   N2 -0.134219 -0.231413 0.963552 
+   txt003 
+STRI 
+  V0 -0.249157 -0.249157 2.63611   V1 -0.303616 -0.178322 2.63611   V2 -0.49668 -0.291715 2.58889 
+  N0 -0.189037 -0.189037 0.963603   N1 -0.231413 -0.134219 0.963552   N2 -0.144879 -0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 -0.49668 -0.291715 2.58889   V1 -0.407593 -0.407593 2.58889   V2 -0.249157 -0.249157 2.63611 
+  N0 -0.144879 -0.0840299 0.985875   N1 -0.118345 -0.118345 0.985895   N2 -0.189037 -0.189037 0.963603 
+   txt003 
+STRI 
+  V0 -0.303616 -0.178322 2.63611   V1 -0.338579 -0.0942301 2.63611   V2 -0.553875 -0.15415 2.58889 
+  N0 -0.231413 -0.134219 0.963552   N1 -0.258756 -0.0697517 0.963421   N2 -0.162011 -0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 -0.553875 -0.15415 2.58889   V1 -0.49668 -0.291715 2.58889   V2 -0.303616 -0.178322 2.63611 
+  N0 -0.162011 -0.0436726 0.985822   N1 -0.144879 -0.0840299 0.985875   N2 -0.231413 -0.134219 0.963552 
+   txt003 
+STRI 
+  V0 -0.338579 -0.0942301 2.63611   V1 -0.350926 -5.55112e-17 2.63611   V2 -0.574074 -2.22045e-16 2.58889 
+  N0 -0.258756 -0.0697517 0.963421   N1 -0.268354 0 0.96332   N2 -0.168031 1.93429e-17 0.985782 
+   txt003 
+STRI 
+  V0 -0.574074 -2.22045e-16 2.58889   V1 -0.553875 -0.15415 2.58889   V2 -0.338579 -0.0942301 2.63611 
+  N0 -0.168031 1.93429e-17 0.985782   N1 -0.162011 -0.0436726 0.985822   N2 -0.258756 -0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 0 -0.574074 2.58889   V1 -0.15415 -0.553875 2.58889   V2 -0.221528 -0.795972 2.55 
+  N0 0 -0.168031 0.985782   N1 -0.0436726 -0.162011 0.985822   N2 -0.0385545 -0.143025 0.988968 
+   txt003 
+STRI 
+  V0 -0.221528 -0.795972 2.55   V1 0 -0.825 2.55   V2 0 -0.574074 2.58889 
+  N0 -0.0385545 -0.143025 0.988968   N1 0 -0.14834 0.988936   N2 0 -0.168031 0.985782 
+   txt003 
+STRI 
+  V0 -0.15415 -0.553875 2.58889   V1 -0.291715 -0.49668 2.58889   V2 -0.419222 -0.713778 2.55 
+  N0 -0.0436726 -0.162011 0.985822   N1 -0.0840299 -0.144879 0.985875   N2 -0.0741814 -0.127899 0.989009 
+   txt003 
+STRI 
+  V0 -0.419222 -0.713778 2.55   V1 -0.221528 -0.795972 2.55   V2 -0.15415 -0.553875 2.58889 
+  N0 -0.0741814 -0.127899 0.989009   N1 -0.0385545 -0.143025 0.988968   N2 -0.0436726 -0.162011 0.985822 
+   txt003 
+STRI 
+  V0 -0.291715 -0.49668 2.58889   V1 -0.407593 -0.407593 2.58889   V2 -0.58575 -0.58575 2.55 
+  N0 -0.0840299 -0.144879 0.985875   N1 -0.118345 -0.118345 0.985895   N2 -0.104474 -0.104474 0.989025 
+   txt003 
+STRI 
+  V0 -0.58575 -0.58575 2.55   V1 -0.419222 -0.713778 2.55   V2 -0.291715 -0.49668 2.58889 
+  N0 -0.104474 -0.104474 0.989025   N1 -0.0741814 -0.127899 0.989009   N2 -0.0840299 -0.144879 0.985875 
+   txt003 
+STRI 
+  V0 -0.407593 -0.407593 2.58889   V1 -0.49668 -0.291715 2.58889   V2 -0.713778 -0.419222 2.55 
+  N0 -0.118345 -0.118345 0.985895   N1 -0.144879 -0.0840299 0.985875   N2 -0.127899 -0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 -0.713778 -0.419222 2.55   V1 -0.58575 -0.58575 2.55   V2 -0.407593 -0.407593 2.58889 
+  N0 -0.127899 -0.0741814 0.989009   N1 -0.104474 -0.104474 0.989025   N2 -0.118345 -0.118345 0.985895 
+   txt003 
+STRI 
+  V0 -0.49668 -0.291715 2.58889   V1 -0.553875 -0.15415 2.58889   V2 -0.795972 -0.221528 2.55 
+  N0 -0.144879 -0.0840299 0.985875   N1 -0.162011 -0.0436726 0.985822   N2 -0.143025 -0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 -0.795972 -0.221528 2.55   V1 -0.713778 -0.419222 2.55   V2 -0.49668 -0.291715 2.58889 
+  N0 -0.143025 -0.0385545 0.988968   N1 -0.127899 -0.0741814 0.989009   N2 -0.144879 -0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 -0.553875 -0.15415 2.58889   V1 -0.574074 -2.22045e-16 2.58889   V2 -0.825 -1.11022e-16 2.55 
+  N0 -0.162011 -0.0436726 0.985822   N1 -0.168031 1.93429e-17 0.985782   N2 -0.14834 2.37649e-17 0.988936 
+   txt003 
+STRI 
+  V0 -0.825 -1.11022e-16 2.55   V1 -0.795972 -0.221528 2.55   V2 -0.553875 -0.15415 2.58889 
+  N0 -0.14834 2.37649e-17 0.988936   N1 -0.143025 -0.0385545 0.988968   N2 -0.162011 -0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 0 -0.825 2.55   V1 -0.221528 -0.795972 2.55   V2 -0.284431 -1.02199 2.51111 
+  N0 0 -0.14834 0.988936   N1 -0.0385545 -0.143025 0.988968   N2 -0.0503275 -0.186699 0.981127 
+   txt003 
+STRI 
+  V0 -0.284431 -1.02199 2.51111   V1 0 -1.05926 2.51111   V2 0 -0.825 2.55 
+  N0 -0.0503275 -0.186699 0.981127   N1 0 -0.193633 0.981074   N2 0 -0.14834 0.988936 
+   txt003 
+STRI 
+  V0 -0.221528 -0.795972 2.55   V1 -0.419222 -0.713778 2.55   V2 -0.538261 -0.916455 2.51111 
+  N0 -0.0385545 -0.143025 0.988968   N1 -0.0741814 -0.127899 0.989009   N2 -0.0968361 -0.166959 0.981197 
+   txt003 
+STRI 
+  V0 -0.538261 -0.916455 2.51111   V1 -0.284431 -1.02199 2.51111   V2 -0.221528 -0.795972 2.55 
+  N0 -0.0968361 -0.166959 0.981197   N1 -0.0503275 -0.186699 0.981127   N2 -0.0385545 -0.143025 0.988968 
+   txt003 
+STRI 
+  V0 -0.419222 -0.713778 2.55   V1 -0.58575 -0.58575 2.55   V2 -0.752074 -0.752074 2.51111 
+  N0 -0.0741814 -0.127899 0.989009   N1 -0.104474 -0.104474 0.989025   N2 -0.136382 -0.136382 0.981224 
+   txt003 
+STRI 
+  V0 -0.752074 -0.752074 2.51111   V1 -0.538261 -0.916455 2.51111   V2 -0.419222 -0.713778 2.55 
+  N0 -0.136382 -0.136382 0.981224   N1 -0.0968361 -0.166959 0.981197   N2 -0.0741814 -0.127899 0.989009 
+   txt003 
+STRI 
+  V0 -0.58575 -0.58575 2.55   V1 -0.713778 -0.419222 2.55   V2 -0.916455 -0.538261 2.51111 
+  N0 -0.104474 -0.104474 0.989025   N1 -0.127899 -0.0741814 0.989009   N2 -0.166959 -0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 -0.916455 -0.538261 2.51111   V1 -0.752074 -0.752074 2.51111   V2 -0.58575 -0.58575 2.55 
+  N0 -0.166959 -0.0968361 0.981197   N1 -0.136382 -0.136382 0.981224   N2 -0.104474 -0.104474 0.989025 
+   txt003 
+STRI 
+  V0 -0.713778 -0.419222 2.55   V1 -0.795972 -0.221528 2.55   V2 -1.02199 -0.284431 2.51111 
+  N0 -0.127899 -0.0741814 0.989009   N1 -0.143025 -0.0385545 0.988968   N2 -0.186699 -0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 -1.02199 -0.284431 2.51111   V1 -0.916455 -0.538261 2.51111   V2 -0.713778 -0.419222 2.55 
+  N0 -0.186699 -0.0503275 0.981127   N1 -0.166959 -0.0968361 0.981197   N2 -0.127899 -0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 -0.795972 -0.221528 2.55   V1 -0.825 -1.11022e-16 2.55   V2 -1.05926 -4.44089e-16 2.51111 
+  N0 -0.143025 -0.0385545 0.988968   N1 -0.14834 2.37649e-17 0.988936   N2 -0.193633 7.24819e-17 0.981074 
+   txt003 
+STRI 
+  V0 -1.05926 -4.44089e-16 2.51111   V1 -1.02199 -0.284431 2.51111   V2 -0.795972 -0.221528 2.55 
+  N0 -0.193633 7.24819e-17 0.981074   N1 -0.186699 -0.0503275 0.981127   N2 -0.143025 -0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 0 -1.05926 2.51111   V1 -0.284431 -1.02199 2.51111   V2 -0.330924 -1.18904 2.46389 
+  N0 0 -0.193633 0.981074   N1 -0.0503275 -0.186699 0.981127   N2 -0.101459 -0.376378 0.920894 
+   txt003 
+STRI 
+  V0 -0.330924 -1.18904 2.46389   V1 0 -1.23241 2.46389   V2 0 -1.05926 2.51111 
+  N0 -0.101459 -0.376378 0.920894   N1 0 -0.390293 0.920691   N2 0 -0.193633 0.981074 
+   txt003 
+STRI 
+  V0 -0.284431 -1.02199 2.51111   V1 -0.538261 -0.916455 2.51111   V2 -0.626246 -1.06626 2.46389 
+  N0 -0.0503275 -0.186699 0.981127   N1 -0.0968361 -0.166959 0.981197   N2 -0.195261 -0.336657 0.92116 
+   txt003 
+STRI 
+  V0 -0.626246 -1.06626 2.46389   V1 -0.330924 -1.18904 2.46389   V2 -0.284431 -1.02199 2.51111 
+  N0 -0.195261 -0.336657 0.92116   N1 -0.101459 -0.376378 0.920894   N2 -0.0503275 -0.186699 0.981127 
+   txt003 
+STRI 
+  V0 -0.538261 -0.916455 2.51111   V1 -0.752074 -0.752074 2.51111   V2 -0.875009 -0.875009 2.46389 
+  N0 -0.0968361 -0.166959 0.981197   N1 -0.136382 -0.136382 0.981224   N2 -0.275025 -0.275025 0.921262 
+   txt003 
+STRI 
+  V0 -0.875009 -0.875009 2.46389   V1 -0.626246 -1.06626 2.46389   V2 -0.538261 -0.916455 2.51111 
+  N0 -0.275025 -0.275025 0.921262   N1 -0.195261 -0.336657 0.92116   N2 -0.0968361 -0.166959 0.981197 
+   txt003 
+STRI 
+  V0 -0.752074 -0.752074 2.51111   V1 -0.916455 -0.538261 2.51111   V2 -1.06626 -0.626246 2.46389 
+  N0 -0.136382 -0.136382 0.981224   N1 -0.166959 -0.0968361 0.981197   N2 -0.336657 -0.195261 0.92116 
+   txt003 
+STRI 
+  V0 -1.06626 -0.626246 2.46389   V1 -0.875009 -0.875009 2.46389   V2 -0.752074 -0.752074 2.51111 
+  N0 -0.336657 -0.195261 0.92116   N1 -0.275025 -0.275025 0.921262   N2 -0.136382 -0.136382 0.981224 
+   txt003 
+STRI 
+  V0 -0.916455 -0.538261 2.51111   V1 -1.02199 -0.284431 2.51111   V2 -1.18904 -0.330924 2.46389 
+  N0 -0.166959 -0.0968361 0.981197   N1 -0.186699 -0.0503275 0.981127   N2 -0.376378 -0.101459 0.920894 
+   txt003 
+STRI 
+  V0 -1.18904 -0.330924 2.46389   V1 -1.06626 -0.626246 2.46389   V2 -0.916455 -0.538261 2.51111 
+  N0 -0.376378 -0.101459 0.920894   N1 -0.336657 -0.195261 0.92116   N2 -0.166959 -0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 -1.02199 -0.284431 2.51111   V1 -1.05926 -4.44089e-16 2.51111   V2 -1.23241 -4.44089e-16 2.46389 
+  N0 -0.186699 -0.0503275 0.981127   N1 -0.193633 7.24819e-17 0.981074   N2 -0.390293 8.37138e-17 0.920691 
+   txt003 
+STRI 
+  V0 -1.23241 -4.44089e-16 2.46389   V1 -1.18904 -0.330924 2.46389   V2 -1.02199 -0.284431 2.51111 
+  N0 -0.390293 8.37138e-17 0.920691   N1 -0.376378 -0.101459 0.920894   N2 -0.186699 -0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 0 -1.23241 2.46389   V1 -0.330924 -1.18904 2.46389   V2 -0.349074 -1.25426 2.4 
+  N0 0 -0.390293 0.920691   N1 -0.101459 -0.376378 0.920894   N2 -0.260275 -0.965535 -1.02004e-15 
+   txt003 
+STRI 
+  V0 -0.349074 -1.25426 2.4   V1 0 -1.3 2.4   V2 0 -1.23241 2.46389 
+  N0 -0.260275 -0.965535 -1.02004e-15   N1 -0 -1 -9.86865e-16   N2 0 -0.390293 0.920691 
+   txt003 
+STRI 
+  V0 -0.330924 -1.18904 2.46389   V1 -0.626246 -1.06626 2.46389   V2 -0.660593 -1.12474 2.4 
+  N0 -0.101459 -0.376378 0.920894   N1 -0.195261 -0.336657 0.92116   N2 -0.501718 -0.865031 -9.69705e-16 
+   txt003 
+STRI 
+  V0 -0.660593 -1.12474 2.4   V1 -0.349074 -1.25426 2.4   V2 -0.330924 -1.18904 2.46389 
+  N0 -0.501718 -0.865031 -9.69705e-16   N1 -0.260275 -0.965535 -1.02004e-15   N2 -0.101459 -0.376378 0.920894 
+   txt003 
+STRI 
+  V0 -0.626246 -1.06626 2.46389   V1 -0.875009 -0.875009 2.46389   V2 -0.923 -0.923 2.4 
+  N0 -0.195261 -0.336657 0.92116   N1 -0.275025 -0.275025 0.921262   N2 -0.707107 -0.707107 -7.41433e-16 
+   txt003 
+STRI 
+  V0 -0.923 -0.923 2.4   V1 -0.660593 -1.12474 2.4   V2 -0.626246 -1.06626 2.46389 
+  N0 -0.707107 -0.707107 -7.41433e-16   N1 -0.501718 -0.865031 -9.69705e-16   N2 -0.195261 -0.336657 0.92116 
+   txt003 
+STRI 
+  V0 -0.875009 -0.875009 2.46389   V1 -1.06626 -0.626246 2.46389   V2 -1.12474 -0.660593 2.4 
+  N0 -0.275025 -0.275025 0.921262   N1 -0.336657 -0.195261 0.92116   N2 -0.865031 -0.501718 -4.67305e-16 
+   txt003 
+STRI 
+  V0 -1.12474 -0.660593 2.4   V1 -0.923 -0.923 2.4   V2 -0.875009 -0.875009 2.46389 
+  N0 -0.865031 -0.501718 -4.67305e-16   N1 -0.707107 -0.707107 -7.41433e-16   N2 -0.275025 -0.275025 0.921262 
+   txt003 
+STRI 
+  V0 -1.06626 -0.626246 2.46389   V1 -1.18904 -0.330924 2.46389   V2 -1.25426 -0.349074 2.4 
+  N0 -0.336657 -0.195261 0.92116   N1 -0.376378 -0.101459 0.920894   N2 -0.965535 -0.260275 -5.24893e-16 
+   txt003 
+STRI 
+  V0 -1.25426 -0.349074 2.4   V1 -1.12474 -0.660593 2.4   V2 -1.06626 -0.626246 2.46389 
+  N0 -0.965535 -0.260275 -5.24893e-16   N1 -0.865031 -0.501718 -4.67305e-16   N2 -0.336657 -0.195261 0.92116 
+   txt003 
+STRI 
+  V0 -1.18904 -0.330924 2.46389   V1 -1.23241 -4.44089e-16 2.46389   V2 -1.3 -6.66134e-16 2.4 
+  N0 -0.376378 -0.101459 0.920894   N1 -0.390293 8.37138e-17 0.920691   N2 -1 4.06675e-16 -1.4803e-15 
+   txt003 
+STRI 
+  V0 -1.3 -6.66134e-16 2.4   V1 -1.25426 -0.349074 2.4   V2 -1.18904 -0.330924 2.46389 
+  N0 -1 4.06675e-16 -1.4803e-15   N1 -0.965535 -0.260275 -5.24893e-16   N2 -0.376378 -0.101459 0.920894 
+   txt003 
+STRI 
+  V0 -0.2 0 2.7   V1 -0.192963 0.0537037 2.7   V2 -0.338579 0.0942301 2.63611 
+  N0 -0.6 0 0.8   N1 -0.578783 0.15602 0.800417   N2 -0.258756 0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 -0.338579 0.0942301 2.63611   V1 -0.350926 0 2.63611   V2 -0.2 0 2.7 
+  N0 -0.258756 0.0697517 0.963421   N1 -0.268354 0 0.96332   N2 -0.6 0 0.8 
+   txt003 
+STRI 
+  V0 -0.192963 0.0537037 2.7   V1 -0.173037 0.10163 2.7   V2 -0.303616 0.178322 2.63611 
+  N0 -0.578783 0.15602 0.800417   N1 -0.517905 0.300385 0.800964   N2 -0.231413 0.134219 0.963552 
+   txt003 
+STRI 
+  V0 -0.303616 0.178322 2.63611   V1 -0.338579 0.0942301 2.63611   V2 -0.192963 0.0537037 2.7 
+  N0 -0.231413 0.134219 0.963552   N1 -0.258756 0.0697517 0.963421   N2 -0.578783 0.15602 0.800417 
+   txt003 
+STRI 
+  V0 -0.173037 0.10163 2.7   V1 -0.142 0.142 2.7   V2 -0.249157 0.249157 2.63611 
+  N0 -0.517905 0.300385 0.800964   N1 -0.423155 0.423155 0.801174   N2 -0.189037 0.189037 0.963603 
+   txt003 
+STRI 
+  V0 -0.249157 0.249157 2.63611   V1 -0.303616 0.178322 2.63611   V2 -0.173037 0.10163 2.7 
+  N0 -0.189037 0.189037 0.963603   N1 -0.231413 0.134219 0.963552   N2 -0.517905 0.300385 0.800964 
+   txt003 
+STRI 
+  V0 -0.142 0.142 2.7   V1 -0.10163 0.173037 2.7   V2 -0.178322 0.303616 2.63611 
+  N0 -0.423155 0.423155 0.801174   N1 -0.300385 0.517905 0.800964   N2 -0.134219 0.231413 0.963552 
+   txt003 
+STRI 
+  V0 -0.178322 0.303616 2.63611   V1 -0.249157 0.249157 2.63611   V2 -0.142 0.142 2.7 
+  N0 -0.134219 0.231413 0.963552   N1 -0.189037 0.189037 0.963603   N2 -0.423155 0.423155 0.801174 
+   txt003 
+STRI 
+  V0 -0.10163 0.173037 2.7   V1 -0.0537037 0.192963 2.7   V2 -0.0942301 0.338579 2.63611 
+  N0 -0.300385 0.517905 0.800964   N1 -0.15602 0.578783 0.800417   N2 -0.0697517 0.258756 0.963421 
+   txt003 
+STRI 
+  V0 -0.0942301 0.338579 2.63611   V1 -0.178322 0.303616 2.63611   V2 -0.10163 0.173037 2.7 
+  N0 -0.0697517 0.258756 0.963421   N1 -0.134219 0.231413 0.963552   N2 -0.300385 0.517905 0.800964 
+   txt003 
+STRI 
+  V0 -0.0537037 0.192963 2.7   V1 0 0.2 2.7   V2 -5.55112e-17 0.350926 2.63611 
+  N0 -0.15602 0.578783 0.800417   N1 9.91271e-17 0.6 0.8   N2 -0 0.268354 0.96332 
+   txt003 
+STRI 
+  V0 -5.55112e-17 0.350926 2.63611   V1 -0.0942301 0.338579 2.63611   V2 -0.0537037 0.192963 2.7 
+  N0 -0 0.268354 0.96332   N1 -0.0697517 0.258756 0.963421   N2 -0.15602 0.578783 0.800417 
+   txt003 
+STRI 
+  V0 -0.350926 0 2.63611   V1 -0.338579 0.0942301 2.63611   V2 -0.553875 0.15415 2.58889 
+  N0 -0.268354 0 0.96332   N1 -0.258756 0.0697517 0.963421   N2 -0.162011 0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 -0.553875 0.15415 2.58889   V1 -0.574074 0 2.58889   V2 -0.350926 0 2.63611 
+  N0 -0.162011 0.0436726 0.985822   N1 -0.168031 0 0.985782   N2 -0.268354 0 0.96332 
+   txt003 
+STRI 
+  V0 -0.338579 0.0942301 2.63611   V1 -0.303616 0.178322 2.63611   V2 -0.49668 0.291715 2.58889 
+  N0 -0.258756 0.0697517 0.963421   N1 -0.231413 0.134219 0.963552   N2 -0.144879 0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 -0.49668 0.291715 2.58889   V1 -0.553875 0.15415 2.58889   V2 -0.338579 0.0942301 2.63611 
+  N0 -0.144879 0.0840299 0.985875   N1 -0.162011 0.0436726 0.985822   N2 -0.258756 0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 -0.303616 0.178322 2.63611   V1 -0.249157 0.249157 2.63611   V2 -0.407593 0.407593 2.58889 
+  N0 -0.231413 0.134219 0.963552   N1 -0.189037 0.189037 0.963603   N2 -0.118345 0.118345 0.985895 
+   txt003 
+STRI 
+  V0 -0.407593 0.407593 2.58889   V1 -0.49668 0.291715 2.58889   V2 -0.303616 0.178322 2.63611 
+  N0 -0.118345 0.118345 0.985895   N1 -0.144879 0.0840299 0.985875   N2 -0.231413 0.134219 0.963552 
+   txt003 
+STRI 
+  V0 -0.249157 0.249157 2.63611   V1 -0.178322 0.303616 2.63611   V2 -0.291715 0.49668 2.58889 
+  N0 -0.189037 0.189037 0.963603   N1 -0.134219 0.231413 0.963552   N2 -0.0840299 0.144879 0.985875 
+   txt003 
+STRI 
+  V0 -0.291715 0.49668 2.58889   V1 -0.407593 0.407593 2.58889   V2 -0.249157 0.249157 2.63611 
+  N0 -0.0840299 0.144879 0.985875   N1 -0.118345 0.118345 0.985895   N2 -0.189037 0.189037 0.963603 
+   txt003 
+STRI 
+  V0 -0.178322 0.303616 2.63611   V1 -0.0942301 0.338579 2.63611   V2 -0.15415 0.553875 2.58889 
+  N0 -0.134219 0.231413 0.963552   N1 -0.0697517 0.258756 0.963421   N2 -0.0436726 0.162011 0.985822 
+   txt003 
+STRI 
+  V0 -0.15415 0.553875 2.58889   V1 -0.291715 0.49668 2.58889   V2 -0.178322 0.303616 2.63611 
+  N0 -0.0436726 0.162011 0.985822   N1 -0.0840299 0.144879 0.985875   N2 -0.134219 0.231413 0.963552 
+   txt003 
+STRI 
+  V0 -0.0942301 0.338579 2.63611   V1 -5.55112e-17 0.350926 2.63611   V2 -2.22045e-16 0.574074 2.58889 
+  N0 -0.0697517 0.258756 0.963421   N1 -0 0.268354 0.96332   N2 1.93429e-17 0.168031 0.985782 
+   txt003 
+STRI 
+  V0 -2.22045e-16 0.574074 2.58889   V1 -0.15415 0.553875 2.58889   V2 -0.0942301 0.338579 2.63611 
+  N0 1.93429e-17 0.168031 0.985782   N1 -0.0436726 0.162011 0.985822   N2 -0.0697517 0.258756 0.963421 
+   txt003 
+STRI 
+  V0 -0.574074 0 2.58889   V1 -0.553875 0.15415 2.58889   V2 -0.795972 0.221528 2.55 
+  N0 -0.168031 0 0.985782   N1 -0.162011 0.0436726 0.985822   N2 -0.143025 0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 -0.795972 0.221528 2.55   V1 -0.825 0 2.55   V2 -0.574074 0 2.58889 
+  N0 -0.143025 0.0385545 0.988968   N1 -0.14834 0 0.988936   N2 -0.168031 0 0.985782 
+   txt003 
+STRI 
+  V0 -0.553875 0.15415 2.58889   V1 -0.49668 0.291715 2.58889   V2 -0.713778 0.419222 2.55 
+  N0 -0.162011 0.0436726 0.985822   N1 -0.144879 0.0840299 0.985875   N2 -0.127899 0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 -0.713778 0.419222 2.55   V1 -0.795972 0.221528 2.55   V2 -0.553875 0.15415 2.58889 
+  N0 -0.127899 0.0741814 0.989009   N1 -0.143025 0.0385545 0.988968   N2 -0.162011 0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 -0.49668 0.291715 2.58889   V1 -0.407593 0.407593 2.58889   V2 -0.58575 0.58575 2.55 
+  N0 -0.144879 0.0840299 0.985875   N1 -0.118345 0.118345 0.985895   N2 -0.104474 0.104474 0.989025 
+   txt003 
+STRI 
+  V0 -0.58575 0.58575 2.55   V1 -0.713778 0.419222 2.55   V2 -0.49668 0.291715 2.58889 
+  N0 -0.104474 0.104474 0.989025   N1 -0.127899 0.0741814 0.989009   N2 -0.144879 0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 -0.407593 0.407593 2.58889   V1 -0.291715 0.49668 2.58889   V2 -0.419222 0.713778 2.55 
+  N0 -0.118345 0.118345 0.985895   N1 -0.0840299 0.144879 0.985875   N2 -0.0741814 0.127899 0.989009 
+   txt003 
+STRI 
+  V0 -0.419222 0.713778 2.55   V1 -0.58575 0.58575 2.55   V2 -0.407593 0.407593 2.58889 
+  N0 -0.0741814 0.127899 0.989009   N1 -0.104474 0.104474 0.989025   N2 -0.118345 0.118345 0.985895 
+   txt003 
+STRI 
+  V0 -0.291715 0.49668 2.58889   V1 -0.15415 0.553875 2.58889   V2 -0.221528 0.795972 2.55 
+  N0 -0.0840299 0.144879 0.985875   N1 -0.0436726 0.162011 0.985822   N2 -0.0385545 0.143025 0.988968 
+   txt003 
+STRI 
+  V0 -0.221528 0.795972 2.55   V1 -0.419222 0.713778 2.55   V2 -0.291715 0.49668 2.58889 
+  N0 -0.0385545 0.143025 0.988968   N1 -0.0741814 0.127899 0.989009   N2 -0.0840299 0.144879 0.985875 
+   txt003 
+STRI 
+  V0 -0.15415 0.553875 2.58889   V1 -2.22045e-16 0.574074 2.58889   V2 -1.11022e-16 0.825 2.55 
+  N0 -0.0436726 0.162011 0.985822   N1 1.93429e-17 0.168031 0.985782   N2 2.37649e-17 0.14834 0.988936 
+   txt003 
+STRI 
+  V0 -1.11022e-16 0.825 2.55   V1 -0.221528 0.795972 2.55   V2 -0.15415 0.553875 2.58889 
+  N0 2.37649e-17 0.14834 0.988936   N1 -0.0385545 0.143025 0.988968   N2 -0.0436726 0.162011 0.985822 
+   txt003 
+STRI 
+  V0 -0.825 0 2.55   V1 -0.795972 0.221528 2.55   V2 -1.02199 0.284431 2.51111 
+  N0 -0.14834 0 0.988936   N1 -0.143025 0.0385545 0.988968   N2 -0.186699 0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 -1.02199 0.284431 2.51111   V1 -1.05926 0 2.51111   V2 -0.825 0 2.55 
+  N0 -0.186699 0.0503275 0.981127   N1 -0.193633 0 0.981074   N2 -0.14834 0 0.988936 
+   txt003 
+STRI 
+  V0 -0.795972 0.221528 2.55   V1 -0.713778 0.419222 2.55   V2 -0.916455 0.538261 2.51111 
+  N0 -0.143025 0.0385545 0.988968   N1 -0.127899 0.0741814 0.989009   N2 -0.166959 0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 -0.916455 0.538261 2.51111   V1 -1.02199 0.284431 2.51111   V2 -0.795972 0.221528 2.55 
+  N0 -0.166959 0.0968361 0.981197   N1 -0.186699 0.0503275 0.981127   N2 -0.143025 0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 -0.713778 0.419222 2.55   V1 -0.58575 0.58575 2.55   V2 -0.752074 0.752074 2.51111 
+  N0 -0.127899 0.0741814 0.989009   N1 -0.104474 0.104474 0.989025   N2 -0.136382 0.136382 0.981224 
+   txt003 
+STRI 
+  V0 -0.752074 0.752074 2.51111   V1 -0.916455 0.538261 2.51111   V2 -0.713778 0.419222 2.55 
+  N0 -0.136382 0.136382 0.981224   N1 -0.166959 0.0968361 0.981197   N2 -0.127899 0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 -0.58575 0.58575 2.55   V1 -0.419222 0.713778 2.55   V2 -0.538261 0.916455 2.51111 
+  N0 -0.104474 0.104474 0.989025   N1 -0.0741814 0.127899 0.989009   N2 -0.0968361 0.166959 0.981197 
+   txt003 
+STRI 
+  V0 -0.538261 0.916455 2.51111   V1 -0.752074 0.752074 2.51111   V2 -0.58575 0.58575 2.55 
+  N0 -0.0968361 0.166959 0.981197   N1 -0.136382 0.136382 0.981224   N2 -0.104474 0.104474 0.989025 
+   txt003 
+STRI 
+  V0 -0.419222 0.713778 2.55   V1 -0.221528 0.795972 2.55   V2 -0.284431 1.02199 2.51111 
+  N0 -0.0741814 0.127899 0.989009   N1 -0.0385545 0.143025 0.988968   N2 -0.0503275 0.186699 0.981127 
+   txt003 
+STRI 
+  V0 -0.284431 1.02199 2.51111   V1 -0.538261 0.916455 2.51111   V2 -0.419222 0.713778 2.55 
+  N0 -0.0503275 0.186699 0.981127   N1 -0.0968361 0.166959 0.981197   N2 -0.0741814 0.127899 0.989009 
+   txt003 
+STRI 
+  V0 -0.221528 0.795972 2.55   V1 -1.11022e-16 0.825 2.55   V2 -4.44089e-16 1.05926 2.51111 
+  N0 -0.0385545 0.143025 0.988968   N1 2.37649e-17 0.14834 0.988936   N2 7.24819e-17 0.193633 0.981074 
+   txt003 
+STRI 
+  V0 -4.44089e-16 1.05926 2.51111   V1 -0.284431 1.02199 2.51111   V2 -0.221528 0.795972 2.55 
+  N0 7.24819e-17 0.193633 0.981074   N1 -0.0503275 0.186699 0.981127   N2 -0.0385545 0.143025 0.988968 
+   txt003 
+STRI 
+  V0 -1.05926 0 2.51111   V1 -1.02199 0.284431 2.51111   V2 -1.18904 0.330924 2.46389 
+  N0 -0.193633 0 0.981074   N1 -0.186699 0.0503275 0.981127   N2 -0.376378 0.101459 0.920894 
+   txt003 
+STRI 
+  V0 -1.18904 0.330924 2.46389   V1 -1.23241 0 2.46389   V2 -1.05926 0 2.51111 
+  N0 -0.376378 0.101459 0.920894   N1 -0.390293 0 0.920691   N2 -0.193633 0 0.981074 
+   txt003 
+STRI 
+  V0 -1.02199 0.284431 2.51111   V1 -0.916455 0.538261 2.51111   V2 -1.06626 0.626246 2.46389 
+  N0 -0.186699 0.0503275 0.981127   N1 -0.166959 0.0968361 0.981197   N2 -0.336657 0.195261 0.92116 
+   txt003 
+STRI 
+  V0 -1.06626 0.626246 2.46389   V1 -1.18904 0.330924 2.46389   V2 -1.02199 0.284431 2.51111 
+  N0 -0.336657 0.195261 0.92116   N1 -0.376378 0.101459 0.920894   N2 -0.186699 0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 -0.916455 0.538261 2.51111   V1 -0.752074 0.752074 2.51111   V2 -0.875009 0.875009 2.46389 
+  N0 -0.166959 0.0968361 0.981197   N1 -0.136382 0.136382 0.981224   N2 -0.275025 0.275025 0.921262 
+   txt003 
+STRI 
+  V0 -0.875009 0.875009 2.46389   V1 -1.06626 0.626246 2.46389   V2 -0.916455 0.538261 2.51111 
+  N0 -0.275025 0.275025 0.921262   N1 -0.336657 0.195261 0.92116   N2 -0.166959 0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 -0.752074 0.752074 2.51111   V1 -0.538261 0.916455 2.51111   V2 -0.626246 1.06626 2.46389 
+  N0 -0.136382 0.136382 0.981224   N1 -0.0968361 0.166959 0.981197   N2 -0.195261 0.336657 0.92116 
+   txt003 
+STRI 
+  V0 -0.626246 1.06626 2.46389   V1 -0.875009 0.875009 2.46389   V2 -0.752074 0.752074 2.51111 
+  N0 -0.195261 0.336657 0.92116   N1 -0.275025 0.275025 0.921262   N2 -0.136382 0.136382 0.981224 
+   txt003 
+STRI 
+  V0 -0.538261 0.916455 2.51111   V1 -0.284431 1.02199 2.51111   V2 -0.330924 1.18904 2.46389 
+  N0 -0.0968361 0.166959 0.981197   N1 -0.0503275 0.186699 0.981127   N2 -0.101459 0.376378 0.920894 
+   txt003 
+STRI 
+  V0 -0.330924 1.18904 2.46389   V1 -0.626246 1.06626 2.46389   V2 -0.538261 0.916455 2.51111 
+  N0 -0.101459 0.376378 0.920894   N1 -0.195261 0.336657 0.92116   N2 -0.0968361 0.166959 0.981197 
+   txt003 
+STRI 
+  V0 -0.284431 1.02199 2.51111   V1 -4.44089e-16 1.05926 2.51111   V2 -4.44089e-16 1.23241 2.46389 
+  N0 -0.0503275 0.186699 0.981127   N1 7.24819e-17 0.193633 0.981074   N2 8.37138e-17 0.390293 0.920691 
+   txt003 
+STRI 
+  V0 -4.44089e-16 1.23241 2.46389   V1 -0.330924 1.18904 2.46389   V2 -0.284431 1.02199 2.51111 
+  N0 8.37138e-17 0.390293 0.920691   N1 -0.101459 0.376378 0.920894   N2 -0.0503275 0.186699 0.981127 
+   txt003 
+STRI 
+  V0 -1.23241 0 2.46389   V1 -1.18904 0.330924 2.46389   V2 -1.25426 0.349074 2.4 
+  N0 -0.390293 0 0.920691   N1 -0.376378 0.101459 0.920894   N2 -0.965535 0.260275 -1.02004e-15 
+   txt003 
+STRI 
+  V0 -1.25426 0.349074 2.4   V1 -1.3 0 2.4   V2 -1.23241 0 2.46389 
+  N0 -0.965535 0.260275 -1.02004e-15   N1 -1 0 -9.86865e-16   N2 -0.390293 0 0.920691 
+   txt003 
+STRI 
+  V0 -1.18904 0.330924 2.46389   V1 -1.06626 0.626246 2.46389   V2 -1.12474 0.660593 2.4 
+  N0 -0.376378 0.101459 0.920894   N1 -0.336657 0.195261 0.92116   N2 -0.865031 0.501718 -9.69705e-16 
+   txt003 
+STRI 
+  V0 -1.12474 0.660593 2.4   V1 -1.25426 0.349074 2.4   V2 -1.18904 0.330924 2.46389 
+  N0 -0.865031 0.501718 -9.69705e-16   N1 -0.965535 0.260275 -1.02004e-15   N2 -0.376378 0.101459 0.920894 
+   txt003 
+STRI 
+  V0 -1.06626 0.626246 2.46389   V1 -0.875009 0.875009 2.46389   V2 -0.923 0.923 2.4 
+  N0 -0.336657 0.195261 0.92116   N1 -0.275025 0.275025 0.921262   N2 -0.707107 0.707107 -7.41433e-16 
+   txt003 
+STRI 
+  V0 -0.923 0.923 2.4   V1 -1.12474 0.660593 2.4   V2 -1.06626 0.626246 2.46389 
+  N0 -0.707107 0.707107 -7.41433e-16   N1 -0.865031 0.501718 -9.69705e-16   N2 -0.336657 0.195261 0.92116 
+   txt003 
+STRI 
+  V0 -0.875009 0.875009 2.46389   V1 -0.626246 1.06626 2.46389   V2 -0.660593 1.12474 2.4 
+  N0 -0.275025 0.275025 0.921262   N1 -0.195261 0.336657 0.92116   N2 -0.501718 0.865031 -4.67305e-16 
+   txt003 
+STRI 
+  V0 -0.660593 1.12474 2.4   V1 -0.923 0.923 2.4   V2 -0.875009 0.875009 2.46389 
+  N0 -0.501718 0.865031 -4.67305e-16   N1 -0.707107 0.707107 -7.41433e-16   N2 -0.275025 0.275025 0.921262 
+   txt003 
+STRI 
+  V0 -0.626246 1.06626 2.46389   V1 -0.330924 1.18904 2.46389   V2 -0.349074 1.25426 2.4 
+  N0 -0.195261 0.336657 0.92116   N1 -0.101459 0.376378 0.920894   N2 -0.260275 0.965535 -5.24893e-16 
+   txt003 
+STRI 
+  V0 -0.349074 1.25426 2.4   V1 -0.660593 1.12474 2.4   V2 -0.626246 1.06626 2.46389 
+  N0 -0.260275 0.965535 -5.24893e-16   N1 -0.501718 0.865031 -4.67305e-16   N2 -0.195261 0.336657 0.92116 
+   txt003 
+STRI 
+  V0 -0.330924 1.18904 2.46389   V1 -4.44089e-16 1.23241 2.46389   V2 -6.66134e-16 1.3 2.4 
+  N0 -0.101459 0.376378 0.920894   N1 8.37138e-17 0.390293 0.920691   N2 4.06675e-16 1 -1.4803e-15 
+   txt003 
+STRI 
+  V0 -6.66134e-16 1.3 2.4   V1 -0.349074 1.25426 2.4   V2 -0.330924 1.18904 2.46389 
+  N0 4.06675e-16 1 -1.4803e-15   N1 -0.260275 0.965535 -5.24893e-16   N2 -0.101459 0.376378 0.920894 
+   txt003 
+STRI 
+  V0 0 0.2 2.7   V1 0.0537037 0.192963 2.7   V2 0.0942301 0.338579 2.63611 
+  N0 -0 0.6 0.8   N1 0.15602 0.578783 0.800417   N2 0.0697517 0.258756 0.963421 
+   txt003 
+STRI 
+  V0 0.0942301 0.338579 2.63611   V1 0 0.350926 2.63611   V2 0 0.2 2.7 
+  N0 0.0697517 0.258756 0.963421   N1 -0 0.268354 0.96332   N2 -0 0.6 0.8 
+   txt003 
+STRI 
+  V0 0.0537037 0.192963 2.7   V1 0.10163 0.173037 2.7   V2 0.178322 0.303616 2.63611 
+  N0 0.15602 0.578783 0.800417   N1 0.300385 0.517905 0.800964   N2 0.134219 0.231413 0.963552 
+   txt003 
+STRI 
+  V0 0.178322 0.303616 2.63611   V1 0.0942301 0.338579 2.63611   V2 0.0537037 0.192963 2.7 
+  N0 0.134219 0.231413 0.963552   N1 0.0697517 0.258756 0.963421   N2 0.15602 0.578783 0.800417 
+   txt003 
+STRI 
+  V0 0.10163 0.173037 2.7   V1 0.142 0.142 2.7   V2 0.249157 0.249157 2.63611 
+  N0 0.300385 0.517905 0.800964   N1 0.423155 0.423155 0.801174   N2 0.189037 0.189037 0.963603 
+   txt003 
+STRI 
+  V0 0.249157 0.249157 2.63611   V1 0.178322 0.303616 2.63611   V2 0.10163 0.173037 2.7 
+  N0 0.189037 0.189037 0.963603   N1 0.134219 0.231413 0.963552   N2 0.300385 0.517905 0.800964 
+   txt003 
+STRI 
+  V0 0.142 0.142 2.7   V1 0.173037 0.10163 2.7   V2 0.303616 0.178322 2.63611 
+  N0 0.423155 0.423155 0.801174   N1 0.517905 0.300385 0.800964   N2 0.231413 0.134219 0.963552 
+   txt003 
+STRI 
+  V0 0.303616 0.178322 2.63611   V1 0.249157 0.249157 2.63611   V2 0.142 0.142 2.7 
+  N0 0.231413 0.134219 0.963552   N1 0.189037 0.189037 0.963603   N2 0.423155 0.423155 0.801174 
+   txt003 
+STRI 
+  V0 0.173037 0.10163 2.7   V1 0.192963 0.0537037 2.7   V2 0.338579 0.0942301 2.63611 
+  N0 0.517905 0.300385 0.800964   N1 0.578783 0.15602 0.800417   N2 0.258756 0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 0.338579 0.0942301 2.63611   V1 0.303616 0.178322 2.63611   V2 0.173037 0.10163 2.7 
+  N0 0.258756 0.0697517 0.963421   N1 0.231413 0.134219 0.963552   N2 0.517905 0.300385 0.800964 
+   txt003 
+STRI 
+  V0 0.192963 0.0537037 2.7   V1 0.2 0 2.7   V2 0.350926 5.55112e-17 2.63611 
+  N0 0.578783 0.15602 0.800417   N1 0.6 -9.91271e-17 0.8   N2 0.268354 0 0.96332 
+   txt003 
+STRI 
+  V0 0.350926 5.55112e-17 2.63611   V1 0.338579 0.0942301 2.63611   V2 0.192963 0.0537037 2.7 
+  N0 0.268354 0 0.96332   N1 0.258756 0.0697517 0.963421   N2 0.578783 0.15602 0.800417 
+   txt003 
+STRI 
+  V0 0 0.350926 2.63611   V1 0.0942301 0.338579 2.63611   V2 0.15415 0.553875 2.58889 
+  N0 -0 0.268354 0.96332   N1 0.0697517 0.258756 0.963421   N2 0.0436726 0.162011 0.985822 
+   txt003 
+STRI 
+  V0 0.15415 0.553875 2.58889   V1 0 0.574074 2.58889   V2 0 0.350926 2.63611 
+  N0 0.0436726 0.162011 0.985822   N1 -0 0.168031 0.985782   N2 -0 0.268354 0.96332 
+   txt003 
+STRI 
+  V0 0.0942301 0.338579 2.63611   V1 0.178322 0.303616 2.63611   V2 0.291715 0.49668 2.58889 
+  N0 0.0697517 0.258756 0.963421   N1 0.134219 0.231413 0.963552   N2 0.0840299 0.144879 0.985875 
+   txt003 
+STRI 
+  V0 0.291715 0.49668 2.58889   V1 0.15415 0.553875 2.58889   V2 0.0942301 0.338579 2.63611 
+  N0 0.0840299 0.144879 0.985875   N1 0.0436726 0.162011 0.985822   N2 0.0697517 0.258756 0.963421 
+   txt003 
+STRI 
+  V0 0.178322 0.303616 2.63611   V1 0.249157 0.249157 2.63611   V2 0.407593 0.407593 2.58889 
+  N0 0.134219 0.231413 0.963552   N1 0.189037 0.189037 0.963603   N2 0.118345 0.118345 0.985895 
+   txt003 
+STRI 
+  V0 0.407593 0.407593 2.58889   V1 0.291715 0.49668 2.58889   V2 0.178322 0.303616 2.63611 
+  N0 0.118345 0.118345 0.985895   N1 0.0840299 0.144879 0.985875   N2 0.134219 0.231413 0.963552 
+   txt003 
+STRI 
+  V0 0.249157 0.249157 2.63611   V1 0.303616 0.178322 2.63611   V2 0.49668 0.291715 2.58889 
+  N0 0.189037 0.189037 0.963603   N1 0.231413 0.134219 0.963552   N2 0.144879 0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 0.49668 0.291715 2.58889   V1 0.407593 0.407593 2.58889   V2 0.249157 0.249157 2.63611 
+  N0 0.144879 0.0840299 0.985875   N1 0.118345 0.118345 0.985895   N2 0.189037 0.189037 0.963603 
+   txt003 
+STRI 
+  V0 0.303616 0.178322 2.63611   V1 0.338579 0.0942301 2.63611   V2 0.553875 0.15415 2.58889 
+  N0 0.231413 0.134219 0.963552   N1 0.258756 0.0697517 0.963421   N2 0.162011 0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 0.553875 0.15415 2.58889   V1 0.49668 0.291715 2.58889   V2 0.303616 0.178322 2.63611 
+  N0 0.162011 0.0436726 0.985822   N1 0.144879 0.0840299 0.985875   N2 0.231413 0.134219 0.963552 
+   txt003 
+STRI 
+  V0 0.338579 0.0942301 2.63611   V1 0.350926 5.55112e-17 2.63611   V2 0.574074 2.22045e-16 2.58889 
+  N0 0.258756 0.0697517 0.963421   N1 0.268354 0 0.96332   N2 0.168031 -1.93429e-17 0.985782 
+   txt003 
+STRI 
+  V0 0.574074 2.22045e-16 2.58889   V1 0.553875 0.15415 2.58889   V2 0.338579 0.0942301 2.63611 
+  N0 0.168031 -1.93429e-17 0.985782   N1 0.162011 0.0436726 0.985822   N2 0.258756 0.0697517 0.963421 
+   txt003 
+STRI 
+  V0 0 0.574074 2.58889   V1 0.15415 0.553875 2.58889   V2 0.221528 0.795972 2.55 
+  N0 -0 0.168031 0.985782   N1 0.0436726 0.162011 0.985822   N2 0.0385545 0.143025 0.988968 
+   txt003 
+STRI 
+  V0 0.221528 0.795972 2.55   V1 0 0.825 2.55   V2 0 0.574074 2.58889 
+  N0 0.0385545 0.143025 0.988968   N1 -0 0.14834 0.988936   N2 -0 0.168031 0.985782 
+   txt003 
+STRI 
+  V0 0.15415 0.553875 2.58889   V1 0.291715 0.49668 2.58889   V2 0.419222 0.713778 2.55 
+  N0 0.0436726 0.162011 0.985822   N1 0.0840299 0.144879 0.985875   N2 0.0741814 0.127899 0.989009 
+   txt003 
+STRI 
+  V0 0.419222 0.713778 2.55   V1 0.221528 0.795972 2.55   V2 0.15415 0.553875 2.58889 
+  N0 0.0741814 0.127899 0.989009   N1 0.0385545 0.143025 0.988968   N2 0.0436726 0.162011 0.985822 
+   txt003 
+STRI 
+  V0 0.291715 0.49668 2.58889   V1 0.407593 0.407593 2.58889   V2 0.58575 0.58575 2.55 
+  N0 0.0840299 0.144879 0.985875   N1 0.118345 0.118345 0.985895   N2 0.104474 0.104474 0.989025 
+   txt003 
+STRI 
+  V0 0.58575 0.58575 2.55   V1 0.419222 0.713778 2.55   V2 0.291715 0.49668 2.58889 
+  N0 0.104474 0.104474 0.989025   N1 0.0741814 0.127899 0.989009   N2 0.0840299 0.144879 0.985875 
+   txt003 
+STRI 
+  V0 0.407593 0.407593 2.58889   V1 0.49668 0.291715 2.58889   V2 0.713778 0.419222 2.55 
+  N0 0.118345 0.118345 0.985895   N1 0.144879 0.0840299 0.985875   N2 0.127899 0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 0.713778 0.419222 2.55   V1 0.58575 0.58575 2.55   V2 0.407593 0.407593 2.58889 
+  N0 0.127899 0.0741814 0.989009   N1 0.104474 0.104474 0.989025   N2 0.118345 0.118345 0.985895 
+   txt003 
+STRI 
+  V0 0.49668 0.291715 2.58889   V1 0.553875 0.15415 2.58889   V2 0.795972 0.221528 2.55 
+  N0 0.144879 0.0840299 0.985875   N1 0.162011 0.0436726 0.985822   N2 0.143025 0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 0.795972 0.221528 2.55   V1 0.713778 0.419222 2.55   V2 0.49668 0.291715 2.58889 
+  N0 0.143025 0.0385545 0.988968   N1 0.127899 0.0741814 0.989009   N2 0.144879 0.0840299 0.985875 
+   txt003 
+STRI 
+  V0 0.553875 0.15415 2.58889   V1 0.574074 2.22045e-16 2.58889   V2 0.825 1.11022e-16 2.55 
+  N0 0.162011 0.0436726 0.985822   N1 0.168031 -1.93429e-17 0.985782   N2 0.14834 -2.37649e-17 0.988936 
+   txt003 
+STRI 
+  V0 0.825 1.11022e-16 2.55   V1 0.795972 0.221528 2.55   V2 0.553875 0.15415 2.58889 
+  N0 0.14834 -2.37649e-17 0.988936   N1 0.143025 0.0385545 0.988968   N2 0.162011 0.0436726 0.985822 
+   txt003 
+STRI 
+  V0 0 0.825 2.55   V1 0.221528 0.795972 2.55   V2 0.284431 1.02199 2.51111 
+  N0 -0 0.14834 0.988936   N1 0.0385545 0.143025 0.988968   N2 0.0503275 0.186699 0.981127 
+   txt003 
+STRI 
+  V0 0.284431 1.02199 2.51111   V1 0 1.05926 2.51111   V2 0 0.825 2.55 
+  N0 0.0503275 0.186699 0.981127   N1 -0 0.193633 0.981074   N2 -0 0.14834 0.988936 
+   txt003 
+STRI 
+  V0 0.221528 0.795972 2.55   V1 0.419222 0.713778 2.55   V2 0.538261 0.916455 2.51111 
+  N0 0.0385545 0.143025 0.988968   N1 0.0741814 0.127899 0.989009   N2 0.0968361 0.166959 0.981197 
+   txt003 
+STRI 
+  V0 0.538261 0.916455 2.51111   V1 0.284431 1.02199 2.51111   V2 0.221528 0.795972 2.55 
+  N0 0.0968361 0.166959 0.981197   N1 0.0503275 0.186699 0.981127   N2 0.0385545 0.143025 0.988968 
+   txt003 
+STRI 
+  V0 0.419222 0.713778 2.55   V1 0.58575 0.58575 2.55   V2 0.752074 0.752074 2.51111 
+  N0 0.0741814 0.127899 0.989009   N1 0.104474 0.104474 0.989025   N2 0.136382 0.136382 0.981224 
+   txt003 
+STRI 
+  V0 0.752074 0.752074 2.51111   V1 0.538261 0.916455 2.51111   V2 0.419222 0.713778 2.55 
+  N0 0.136382 0.136382 0.981224   N1 0.0968361 0.166959 0.981197   N2 0.0741814 0.127899 0.989009 
+   txt003 
+STRI 
+  V0 0.58575 0.58575 2.55   V1 0.713778 0.419222 2.55   V2 0.916455 0.538261 2.51111 
+  N0 0.104474 0.104474 0.989025   N1 0.127899 0.0741814 0.989009   N2 0.166959 0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 0.916455 0.538261 2.51111   V1 0.752074 0.752074 2.51111   V2 0.58575 0.58575 2.55 
+  N0 0.166959 0.0968361 0.981197   N1 0.136382 0.136382 0.981224   N2 0.104474 0.104474 0.989025 
+   txt003 
+STRI 
+  V0 0.713778 0.419222 2.55   V1 0.795972 0.221528 2.55   V2 1.02199 0.284431 2.51111 
+  N0 0.127899 0.0741814 0.989009   N1 0.143025 0.0385545 0.988968   N2 0.186699 0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 1.02199 0.284431 2.51111   V1 0.916455 0.538261 2.51111   V2 0.713778 0.419222 2.55 
+  N0 0.186699 0.0503275 0.981127   N1 0.166959 0.0968361 0.981197   N2 0.127899 0.0741814 0.989009 
+   txt003 
+STRI 
+  V0 0.795972 0.221528 2.55   V1 0.825 1.11022e-16 2.55   V2 1.05926 4.44089e-16 2.51111 
+  N0 0.143025 0.0385545 0.988968   N1 0.14834 -2.37649e-17 0.988936   N2 0.193633 -7.24819e-17 0.981074 
+   txt003 
+STRI 
+  V0 1.05926 4.44089e-16 2.51111   V1 1.02199 0.284431 2.51111   V2 0.795972 0.221528 2.55 
+  N0 0.193633 -7.24819e-17 0.981074   N1 0.186699 0.0503275 0.981127   N2 0.143025 0.0385545 0.988968 
+   txt003 
+STRI 
+  V0 0 1.05926 2.51111   V1 0.284431 1.02199 2.51111   V2 0.330924 1.18904 2.46389 
+  N0 -0 0.193633 0.981074   N1 0.0503275 0.186699 0.981127   N2 0.101459 0.376378 0.920894 
+   txt003 
+STRI 
+  V0 0.330924 1.18904 2.46389   V1 0 1.23241 2.46389   V2 0 1.05926 2.51111 
+  N0 0.101459 0.376378 0.920894   N1 -0 0.390293 0.920691   N2 -0 0.193633 0.981074 
+   txt003 
+STRI 
+  V0 0.284431 1.02199 2.51111   V1 0.538261 0.916455 2.51111   V2 0.626246 1.06626 2.46389 
+  N0 0.0503275 0.186699 0.981127   N1 0.0968361 0.166959 0.981197   N2 0.195261 0.336657 0.92116 
+   txt003 
+STRI 
+  V0 0.626246 1.06626 2.46389   V1 0.330924 1.18904 2.46389   V2 0.284431 1.02199 2.51111 
+  N0 0.195261 0.336657 0.92116   N1 0.101459 0.376378 0.920894   N2 0.0503275 0.186699 0.981127 
+   txt003 
+STRI 
+  V0 0.538261 0.916455 2.51111   V1 0.752074 0.752074 2.51111   V2 0.875009 0.875009 2.46389 
+  N0 0.0968361 0.166959 0.981197   N1 0.136382 0.136382 0.981224   N2 0.275025 0.275025 0.921262 
+   txt003 
+STRI 
+  V0 0.875009 0.875009 2.46389   V1 0.626246 1.06626 2.46389   V2 0.538261 0.916455 2.51111 
+  N0 0.275025 0.275025 0.921262   N1 0.195261 0.336657 0.92116   N2 0.0968361 0.166959 0.981197 
+   txt003 
+STRI 
+  V0 0.752074 0.752074 2.51111   V1 0.916455 0.538261 2.51111   V2 1.06626 0.626246 2.46389 
+  N0 0.136382 0.136382 0.981224   N1 0.166959 0.0968361 0.981197   N2 0.336657 0.195261 0.92116 
+   txt003 
+STRI 
+  V0 1.06626 0.626246 2.46389   V1 0.875009 0.875009 2.46389   V2 0.752074 0.752074 2.51111 
+  N0 0.336657 0.195261 0.92116   N1 0.275025 0.275025 0.921262   N2 0.136382 0.136382 0.981224 
+   txt003 
+STRI 
+  V0 0.916455 0.538261 2.51111   V1 1.02199 0.284431 2.51111   V2 1.18904 0.330924 2.46389 
+  N0 0.166959 0.0968361 0.981197   N1 0.186699 0.0503275 0.981127   N2 0.376378 0.101459 0.920894 
+   txt003 
+STRI 
+  V0 1.18904 0.330924 2.46389   V1 1.06626 0.626246 2.46389   V2 0.916455 0.538261 2.51111 
+  N0 0.376378 0.101459 0.920894   N1 0.336657 0.195261 0.92116   N2 0.166959 0.0968361 0.981197 
+   txt003 
+STRI 
+  V0 1.02199 0.284431 2.51111   V1 1.05926 4.44089e-16 2.51111   V2 1.23241 4.44089e-16 2.46389 
+  N0 0.186699 0.0503275 0.981127   N1 0.193633 -7.24819e-17 0.981074   N2 0.390293 -8.37138e-17 0.920691 
+   txt003 
+STRI 
+  V0 1.23241 4.44089e-16 2.46389   V1 1.18904 0.330924 2.46389   V2 1.02199 0.284431 2.51111 
+  N0 0.390293 -8.37138e-17 0.920691   N1 0.376378 0.101459 0.920894   N2 0.186699 0.0503275 0.981127 
+   txt003 
+STRI 
+  V0 0 1.23241 2.46389   V1 0.330924 1.18904 2.46389   V2 0.349074 1.25426 2.4 
+  N0 -0 0.390293 0.920691   N1 0.101459 0.376378 0.920894   N2 0.260275 0.965535 -1.02004e-15 
+   txt003 
+STRI 
+  V0 0.349074 1.25426 2.4   V1 0 1.3 2.4   V2 0 1.23241 2.46389 
+  N0 0.260275 0.965535 -1.02004e-15   N1 0 1 -9.86865e-16   N2 -0 0.390293 0.920691 
+   txt003 
+STRI 
+  V0 0.330924 1.18904 2.46389   V1 0.626246 1.06626 2.46389   V2 0.660593 1.12474 2.4 
+  N0 0.101459 0.376378 0.920894   N1 0.195261 0.336657 0.92116   N2 0.501718 0.865031 -9.69705e-16 
+   txt003 
+STRI 
+  V0 0.660593 1.12474 2.4   V1 0.349074 1.25426 2.4   V2 0.330924 1.18904 2.46389 
+  N0 0.501718 0.865031 -9.69705e-16   N1 0.260275 0.965535 -1.02004e-15   N2 0.101459 0.376378 0.920894 
+   txt003 
+STRI 
+  V0 0.626246 1.06626 2.46389   V1 0.875009 0.875009 2.46389   V2 0.923 0.923 2.4 
+  N0 0.195261 0.336657 0.92116   N1 0.275025 0.275025 0.921262   N2 0.707107 0.707107 -7.41433e-16 
+   txt003 
+STRI 
+  V0 0.923 0.923 2.4   V1 0.660593 1.12474 2.4   V2 0.626246 1.06626 2.46389 
+  N0 0.707107 0.707107 -7.41433e-16   N1 0.501718 0.865031 -9.69705e-16   N2 0.195261 0.336657 0.92116 
+   txt003 
+STRI 
+  V0 0.875009 0.875009 2.46389   V1 1.06626 0.626246 2.46389   V2 1.12474 0.660593 2.4 
+  N0 0.275025 0.275025 0.921262   N1 0.336657 0.195261 0.92116   N2 0.865031 0.501718 -4.67305e-16 
+   txt003 
+STRI 
+  V0 1.12474 0.660593 2.4   V1 0.923 0.923 2.4   V2 0.875009 0.875009 2.46389 
+  N0 0.865031 0.501718 -4.67305e-16   N1 0.707107 0.707107 -7.41433e-16   N2 0.275025 0.275025 0.921262 
+   txt003 
+STRI 
+  V0 1.06626 0.626246 2.46389   V1 1.18904 0.330924 2.46389   V2 1.25426 0.349074 2.4 
+  N0 0.336657 0.195261 0.92116   N1 0.376378 0.101459 0.920894   N2 0.965535 0.260275 -5.24893e-16 
+   txt003 
+STRI 
+  V0 1.25426 0.349074 2.4   V1 1.12474 0.660593 2.4   V2 1.06626 0.626246 2.46389 
+  N0 0.965535 0.260275 -5.24893e-16   N1 0.865031 0.501718 -4.67305e-16   N2 0.336657 0.195261 0.92116 
+   txt003 
+STRI 
+  V0 1.18904 0.330924 2.46389   V1 1.23241 4.44089e-16 2.46389   V2 1.3 6.66134e-16 2.4 
+  N0 0.376378 0.101459 0.920894   N1 0.390293 -8.37138e-17 0.920691   N2 1 -4.06675e-16 -1.4803e-15 
+   txt003 
+STRI 
+  V0 1.3 6.66134e-16 2.4   V1 1.25426 0.349074 2.4   V2 1.18904 0.330924 2.46389 
+  N0 1 -4.06675e-16 -1.4803e-15   N1 0.965535 0.260275 -5.24893e-16   N2 0.376378 0.101459 0.920894 
+   txt003 
+STRI 
+  V0 0.584584 0.162696 0.00590278   V1 0.605903 0 0.00590278   V2 0 0 0 
+  N0 0.0218614 0.00589307 -0.999744   N1 0.0226746 0 -0.999743   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.524218 0.307888 0.00590278   V1 0.584584 0.162696 0.00590278   V2 0 0 0 
+  N0 0.0195486 0.0113382 -0.999745   N1 0.0218614 0.00589307 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.430191 0.430191 0.00590278   V1 0.524218 0.307888 0.00590278   V2 0 0 0 
+  N0 0.015968 0.015968 -0.999745   N1 0.0195486 0.0113382 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.307888 0.524218 0.00590278   V1 0.430191 0.430191 0.00590278   V2 0 0 0 
+  N0 0.0113382 0.0195486 -0.999745   N1 0.015968 0.015968 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.162696 0.584584 0.00590278   V1 0.307888 0.524218 0.00590278   V2 0 0 0 
+  N0 0.00589307 0.0218614 -0.999744   N1 0.0113382 0.0195486 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0 0.605903 0.00590278   V1 0.162696 0.584584 0.00590278   V2 0 0 0 
+  N0 4.94615e-18 0.0226746 -0.999743   N1 0.00589307 0.0218614 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.605903 0 0.00590278   V1 0.584584 0.162696 0.00590278   V2 0.986255 0.274486 0.0222222 
+  N0 0.0226746 0 -0.999743   N1 0.0218614 0.00589307 -0.999744   N2 0.0601415 0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 0.986255 0.274486 0.0222222   V1 1.02222 0 0.0222222   V2 0.605903 0 0.00590278 
+  N0 0.0601415 0.0162121 -0.998058   N1 0.0623783 0 -0.998053   N2 0.0226746 0 -0.999743 
+   txt003 
+STRI 
+  V0 0.584584 0.162696 0.00590278   V1 0.524218 0.307888 0.00590278   V2 0.884412 0.51944 0.0222222 
+  N0 0.0218614 0.00589307 -0.999744   N1 0.0195486 0.0113382 -0.999745   N2 0.0537792 0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 0.884412 0.51944 0.0222222   V1 0.986255 0.274486 0.0222222   V2 0.584584 0.162696 0.00590278 
+  N0 0.0537792 0.0311919 -0.998066   N1 0.0601415 0.0162121 -0.998058   N2 0.0218614 0.00589307 -0.999744 
+   txt003 
+STRI 
+  V0 0.524218 0.307888 0.00590278   V1 0.430191 0.430191 0.00590278   V2 0.725778 0.725778 0.0222222 
+  N0 0.0195486 0.0113382 -0.999745   N1 0.015968 0.015968 -0.999745   N2 0.0439291 0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 0.725778 0.725778 0.0222222   V1 0.884412 0.51944 0.0222222   V2 0.524218 0.307888 0.00590278 
+  N0 0.0439291 0.0439291 -0.998068   N1 0.0537792 0.0311919 -0.998066   N2 0.0195486 0.0113382 -0.999745 
+   txt003 
+STRI 
+  V0 0.430191 0.430191 0.00590278   V1 0.307888 0.524218 0.00590278   V2 0.51944 0.884412 0.0222222 
+  N0 0.015968 0.015968 -0.999745   N1 0.0113382 0.0195486 -0.999745   N2 0.0311919 0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 0.51944 0.884412 0.0222222   V1 0.725778 0.725778 0.0222222   V2 0.430191 0.430191 0.00590278 
+  N0 0.0311919 0.0537792 -0.998066   N1 0.0439291 0.0439291 -0.998068   N2 0.015968 0.015968 -0.999745 
+   txt003 
+STRI 
+  V0 0.307888 0.524218 0.00590278   V1 0.162696 0.584584 0.00590278   V2 0.274486 0.986255 0.0222222 
+  N0 0.0113382 0.0195486 -0.999745   N1 0.00589307 0.0218614 -0.999744   N2 0.0162121 0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 0.274486 0.986255 0.0222222   V1 0.51944 0.884412 0.0222222   V2 0.307888 0.524218 0.00590278 
+  N0 0.0162121 0.0601415 -0.998058   N1 0.0311919 0.0537792 -0.998066   N2 0.0113382 0.0195486 -0.999745 
+   txt003 
+STRI 
+  V0 0.162696 0.584584 0.00590278   V1 0 0.605903 0.00590278   V2 -2.22045e-16 1.02222 0.0222222 
+  N0 0.00589307 0.0218614 -0.999744   N1 4.94615e-18 0.0226746 -0.999743   N2 0 0.0623783 -0.998053 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.02222 0.0222222   V1 0.274486 0.986255 0.0222222   V2 0.162696 0.584584 0.00590278 
+  N0 0 0.0623783 -0.998053   N1 0.0162121 0.0601415 -0.998058   N2 0.00589307 0.0218614 -0.999744 
+   txt003 
+STRI 
+  V0 1.02222 0 0.0222222   V1 0.986255 0.274486 0.0222222   V2 1.23918 0.344878 0.046875 
+  N0 0.0623783 0 -0.998053   N1 0.0601415 0.0162121 -0.998058   N2 0.136353 0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 1.23918 0.344878 0.046875   V1 1.28438 0 0.046875   V2 1.02222 0 0.0222222 
+  N0 0.136353 0.0367561 -0.989978   N1 0.141421 0 -0.989949   N2 0.0623783 0 -0.998053 
+   txt003 
+STRI 
+  V0 0.986255 0.274486 0.0222222   V1 0.884412 0.51944 0.0222222   V2 1.11122 0.652653 0.046875 
+  N0 0.0601415 0.0162121 -0.998058   N1 0.0537792 0.0311919 -0.998066   N2 0.121932 0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 1.11122 0.652653 0.046875   V1 1.23918 0.344878 0.046875   V2 0.986255 0.274486 0.0222222 
+  N0 0.121932 0.0707208 -0.990016   N1 0.136353 0.0367561 -0.989978   N2 0.0601415 0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 0.884412 0.51944 0.0222222   V1 0.725778 0.725778 0.0222222   V2 0.911906 0.911906 0.046875 
+  N0 0.0537792 0.0311919 -0.998066   N1 0.0439291 0.0439291 -0.998068   N2 0.0996006 0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 0.911906 0.911906 0.046875   V1 1.11122 0.652653 0.046875   V2 0.884412 0.51944 0.0222222 
+  N0 0.0996006 0.0996006 -0.99003   N1 0.121932 0.0707208 -0.990016   N2 0.0537792 0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 0.725778 0.725778 0.0222222   V1 0.51944 0.884412 0.0222222   V2 0.652653 1.11122 0.046875 
+  N0 0.0439291 0.0439291 -0.998068   N1 0.0311919 0.0537792 -0.998066   N2 0.0707208 0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 0.652653 1.11122 0.046875   V1 0.911906 0.911906 0.046875   V2 0.725778 0.725778 0.0222222 
+  N0 0.0707208 0.121932 -0.990016   N1 0.0996006 0.0996006 -0.99003   N2 0.0439291 0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 0.51944 0.884412 0.0222222   V1 0.274486 0.986255 0.0222222   V2 0.344878 1.23918 0.046875 
+  N0 0.0311919 0.0537792 -0.998066   N1 0.0162121 0.0601415 -0.998058   N2 0.0367561 0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 0.344878 1.23918 0.046875   V1 0.652653 1.11122 0.046875   V2 0.51944 0.884412 0.0222222 
+  N0 0.0367561 0.136353 -0.989978   N1 0.0707208 0.121932 -0.990016   N2 0.0311919 0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 0.274486 0.986255 0.0222222   V1 -2.22045e-16 1.02222 0.0222222   V2 2.22045e-16 1.28437 0.046875 
+  N0 0.0162121 0.0601415 -0.998058   N1 0 0.0623783 -0.998053   N2 0 0.141421 -0.989949 
+   txt003 
+STRI 
+  V0 2.22045e-16 1.28437 0.046875   V1 0.344878 1.23918 0.046875   V2 0.274486 0.986255 0.0222222 
+  N0 0 0.141421 -0.989949   N1 0.0367561 0.136353 -0.989978   N2 0.0162121 0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 1.28438 0 0.046875   V1 1.23918 0.344878 0.046875   V2 1.37754 0.383385 0.0777778 
+  N0 0.141421 0 -0.989949   N1 0.136353 0.0367561 -0.989978   N2 0.316788 0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 1.37754 0.383385 0.0777778   V1 1.42778 0 0.0777778   V2 1.28438 0 0.046875 
+  N0 0.316788 0.085395 -0.944644   N1 0.328521 0 -0.944497   N2 0.141421 0 -0.989949 
+   txt003 
+STRI 
+  V0 1.23918 0.344878 0.046875   V1 1.11122 0.652653 0.046875   V2 1.23529 0.725523 0.0777778 
+  N0 0.136353 0.0367561 -0.989978   N1 0.121932 0.0707208 -0.990016   N2 0.283331 0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 1.23529 0.725523 0.0777778   V1 1.37754 0.383385 0.0777778   V2 1.23918 0.344878 0.046875 
+  N0 0.283331 0.164332 -0.944838   N1 0.316788 0.085395 -0.944644   N2 0.136353 0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 1.11122 0.652653 0.046875   V1 0.911906 0.911906 0.046875   V2 1.01372 1.01372 0.0777778 
+  N0 0.121932 0.0707208 -0.990016   N1 0.0996006 0.0996006 -0.99003   N2 0.231454 0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 1.01372 1.01372 0.0777778   V1 1.23529 0.725523 0.0777778   V2 1.11122 0.652653 0.046875 
+  N0 0.231454 0.231454 -0.944912   N1 0.283331 0.164332 -0.944838   N2 0.121932 0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 0.911906 0.911906 0.046875   V1 0.652653 1.11122 0.046875   V2 0.725523 1.23529 0.0777778 
+  N0 0.0996006 0.0996006 -0.99003   N1 0.0707208 0.121932 -0.990016   N2 0.164332 0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 0.725523 1.23529 0.0777778   V1 1.01372 1.01372 0.0777778   V2 0.911906 0.911906 0.046875 
+  N0 0.164332 0.283331 -0.944838   N1 0.231454 0.231454 -0.944912   N2 0.0996006 0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 0.652653 1.11122 0.046875   V1 0.344878 1.23918 0.046875   V2 0.383385 1.37754 0.0777778 
+  N0 0.0707208 0.121932 -0.990016   N1 0.0367561 0.136353 -0.989978   N2 0.085395 0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 0.383385 1.37754 0.0777778   V1 0.725523 1.23529 0.0777778   V2 0.652653 1.11122 0.046875 
+  N0 0.085395 0.316788 -0.944644   N1 0.164332 0.283331 -0.944838   N2 0.0707208 0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 0.344878 1.23918 0.046875   V1 2.22045e-16 1.28437 0.046875   V2 -2.22045e-16 1.42778 0.0777778 
+  N0 0.0367561 0.136353 -0.989978   N1 0 0.141421 -0.989949   N2 6.08223e-17 0.328521 -0.944497 
+   txt003 
+STRI 
+  V0 -2.22045e-16 1.42778 0.0777778   V1 0.383385 1.37754 0.0777778   V2 0.344878 1.23918 0.046875 
+  N0 6.08223e-17 0.328521 -0.944497   N1 0.085395 0.316788 -0.944644   N2 0.0367561 0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 1.42778 0 0.0777778   V1 1.37754 0.383385 0.0777778   V2 1.4355 0.399515 0.112847 
+  N0 0.328521 0 -0.944497   N1 0.316788 0.085395 -0.944644   N2 0.743044 0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 1.4355 0.399515 0.112847   V1 1.48785 0 0.112847   V2 1.42778 0 0.0777778 
+  N0 0.743044 0.200299 -0.638566   N1 0.770022 0 -0.638018   N2 0.328521 0 -0.944497 
+   txt003 
+STRI 
+  V0 1.37754 0.383385 0.0777778   V1 1.23529 0.725523 0.0777778   V2 1.28726 0.756047 0.112847 
+  N0 0.316788 0.085395 -0.944644   N1 0.283331 0.164332 -0.944838   N2 0.665182 0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 1.28726 0.756047 0.112847   V1 1.4355 0.399515 0.112847   V2 1.37754 0.383385 0.0777778 
+  N0 0.665182 0.385806 -0.639286   N1 0.743044 0.200299 -0.638566   N2 0.316788 0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 1.23529 0.725523 0.0777778   V1 1.01372 1.01372 0.0777778   V2 1.05637 1.05637 0.112847 
+  N0 0.283331 0.164332 -0.944838   N1 0.231454 0.231454 -0.944912   N2 0.543581 0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 1.05637 1.05637 0.112847   V1 1.28726 0.756047 0.112847   V2 1.23529 0.725523 0.0777778 
+  N0 0.543581 0.543581 -0.639562   N1 0.665182 0.385806 -0.639286   N2 0.283331 0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 1.01372 1.01372 0.0777778   V1 0.725523 1.23529 0.0777778   V2 0.756047 1.28726 0.112847 
+  N0 0.231454 0.231454 -0.944912   N1 0.164332 0.283331 -0.944838   N2 0.385806 0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 0.756047 1.28726 0.112847   V1 1.05637 1.05637 0.112847   V2 1.01372 1.01372 0.0777778 
+  N0 0.385806 0.665182 -0.639286   N1 0.543581 0.543581 -0.639562   N2 0.231454 0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 0.725523 1.23529 0.0777778   V1 0.383385 1.37754 0.0777778   V2 0.399515 1.4355 0.112847 
+  N0 0.164332 0.283331 -0.944838   N1 0.085395 0.316788 -0.944644   N2 0.200299 0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 0.399515 1.4355 0.112847   V1 0.756047 1.28726 0.112847   V2 0.725523 1.23529 0.0777778 
+  N0 0.200299 0.743044 -0.638566   N1 0.385806 0.665182 -0.639286   N2 0.164332 0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 0.383385 1.37754 0.0777778   V1 -2.22045e-16 1.42778 0.0777778   V2 0 1.48785 0.112847 
+  N0 0.085395 0.316788 -0.944644   N1 6.08223e-17 0.328521 -0.944497   N2 1.36806e-16 0.770022 -0.638018 
+   txt003 
+STRI 
+  V0 0 1.48785 0.112847   V1 0.399515 1.4355 0.112847   V2 0.383385 1.37754 0.0777778 
+  N0 1.36806e-16 0.770022 -0.638018   N1 0.200299 0.743044 -0.638566   N2 0.085395 0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 1.48785 0 0.112847   V1 1.4355 0.399515 0.112847   V2 1.44722 0.402778 0.15 
+  N0 0.770022 0 -0.638018   N1 0.743044 0.200299 -0.638566   N2 0.965535 0.260275 -2.07142e-16 
+   txt003 
+STRI 
+  V0 1.44722 0.402778 0.15   V1 1.5 0 0.15   V2 1.48785 0 0.112847 
+  N0 0.965535 0.260275 -2.07142e-16   N1 1 0 0   N2 0.770022 0 -0.638018 
+   txt003 
+STRI 
+  V0 1.4355 0.399515 0.112847   V1 1.28726 0.756047 0.112847   V2 1.29778 0.762222 0.15 
+  N0 0.743044 0.200299 -0.638566   N1 0.665182 0.385806 -0.639286   N2 0.865031 0.501718 -5.46348e-16 
+   txt003 
+STRI 
+  V0 1.29778 0.762222 0.15   V1 1.44722 0.402778 0.15   V2 1.4355 0.399515 0.112847 
+  N0 0.865031 0.501718 -5.46348e-16   N1 0.965535 0.260275 -2.07142e-16   N2 0.743044 0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 1.28726 0.756047 0.112847   V1 1.05637 1.05637 0.112847   V2 1.065 1.065 0.15 
+  N0 0.665182 0.385806 -0.639286   N1 0.543581 0.543581 -0.639562   N2 0.707107 0.707107 -6.97819e-16 
+   txt003 
+STRI 
+  V0 1.065 1.065 0.15   V1 1.29778 0.762222 0.15   V2 1.28726 0.756047 0.112847 
+  N0 0.707107 0.707107 -6.97819e-16   N1 0.865031 0.501718 -5.46348e-16   N2 0.665182 0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 1.05637 1.05637 0.112847   V1 0.756047 1.28726 0.112847   V2 0.762222 1.29778 0.15 
+  N0 0.543581 0.543581 -0.639562   N1 0.385806 0.665182 -0.639286   N2 0.501718 0.865031 -5.46348e-16 
+   txt003 
+STRI 
+  V0 0.762222 1.29778 0.15   V1 1.065 1.065 0.15   V2 1.05637 1.05637 0.112847 
+  N0 0.501718 0.865031 -5.46348e-16   N1 0.707107 0.707107 -6.97819e-16   N2 0.543581 0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 0.756047 1.28726 0.112847   V1 0.399515 1.4355 0.112847   V2 0.402778 1.44722 0.15 
+  N0 0.385806 0.665182 -0.639286   N1 0.200299 0.743044 -0.638566   N2 0.260275 0.965535 -2.07142e-16 
+   txt003 
+STRI 
+  V0 0.402778 1.44722 0.15   V1 0.762222 1.29778 0.15   V2 0.756047 1.28726 0.112847 
+  N0 0.260275 0.965535 -2.07142e-16   N1 0.501718 0.865031 -5.46348e-16   N2 0.385806 0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 0.399515 1.4355 0.112847   V1 0 1.48785 0.112847   V2 0 1.5 0.15 
+  N0 0.200299 0.743044 -0.638566   N1 1.36806e-16 0.770022 -0.638018   N2 0 1 -0 
+   txt003 
+STRI 
+  V0 0 1.5 0.15   V1 0.402778 1.44722 0.15   V2 0.399515 1.4355 0.112847 
+  N0 0 1 -0   N1 0.260275 0.965535 -2.07142e-16   N2 0.200299 0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 -0.162696 0.584584 0.00590278   V1 0 0.605903 0.00590278   V2 0 0 0 
+  N0 -0.00589307 0.0218614 -0.999744   N1 0 0.0226746 -0.999743   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.307888 0.524218 0.00590278   V1 -0.162696 0.584584 0.00590278   V2 0 0 0 
+  N0 -0.0113382 0.0195486 -0.999745   N1 -0.00589307 0.0218614 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.430191 0.430191 0.00590278   V1 -0.307888 0.524218 0.00590278   V2 0 0 0 
+  N0 -0.015968 0.015968 -0.999745   N1 -0.0113382 0.0195486 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.524218 0.307888 0.00590278   V1 -0.430191 0.430191 0.00590278   V2 0 0 0 
+  N0 -0.0195486 0.0113382 -0.999745   N1 -0.015968 0.015968 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.584584 0.162696 0.00590278   V1 -0.524218 0.307888 0.00590278   V2 0 0 0 
+  N0 -0.0218614 0.00589307 -0.999744   N1 -0.0195486 0.0113382 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.605903 0 0.00590278   V1 -0.584584 0.162696 0.00590278   V2 0 0 0 
+  N0 -0.0226746 4.94615e-18 -0.999743   N1 -0.0218614 0.00589307 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0 0.605903 0.00590278   V1 -0.162696 0.584584 0.00590278   V2 -0.274486 0.986255 0.0222222 
+  N0 0 0.0226746 -0.999743   N1 -0.00589307 0.0218614 -0.999744   N2 -0.0162121 0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 -0.274486 0.986255 0.0222222   V1 0 1.02222 0.0222222   V2 0 0.605903 0.00590278 
+  N0 -0.0162121 0.0601415 -0.998058   N1 0 0.0623783 -0.998053   N2 0 0.0226746 -0.999743 
+   txt003 
+STRI 
+  V0 -0.162696 0.584584 0.00590278   V1 -0.307888 0.524218 0.00590278   V2 -0.51944 0.884412 0.0222222 
+  N0 -0.00589307 0.0218614 -0.999744   N1 -0.0113382 0.0195486 -0.999745   N2 -0.0311919 0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 -0.51944 0.884412 0.0222222   V1 -0.274486 0.986255 0.0222222   V2 -0.162696 0.584584 0.00590278 
+  N0 -0.0311919 0.0537792 -0.998066   N1 -0.0162121 0.0601415 -0.998058   N2 -0.00589307 0.0218614 -0.999744 
+   txt003 
+STRI 
+  V0 -0.307888 0.524218 0.00590278   V1 -0.430191 0.430191 0.00590278   V2 -0.725778 0.725778 0.0222222 
+  N0 -0.0113382 0.0195486 -0.999745   N1 -0.015968 0.015968 -0.999745   N2 -0.0439291 0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 -0.725778 0.725778 0.0222222   V1 -0.51944 0.884412 0.0222222   V2 -0.307888 0.524218 0.00590278 
+  N0 -0.0439291 0.0439291 -0.998068   N1 -0.0311919 0.0537792 -0.998066   N2 -0.0113382 0.0195486 -0.999745 
+   txt003 
+STRI 
+  V0 -0.430191 0.430191 0.00590278   V1 -0.524218 0.307888 0.00590278   V2 -0.884412 0.51944 0.0222222 
+  N0 -0.015968 0.015968 -0.999745   N1 -0.0195486 0.0113382 -0.999745   N2 -0.0537792 0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 -0.884412 0.51944 0.0222222   V1 -0.725778 0.725778 0.0222222   V2 -0.430191 0.430191 0.00590278 
+  N0 -0.0537792 0.0311919 -0.998066   N1 -0.0439291 0.0439291 -0.998068   N2 -0.015968 0.015968 -0.999745 
+   txt003 
+STRI 
+  V0 -0.524218 0.307888 0.00590278   V1 -0.584584 0.162696 0.00590278   V2 -0.986255 0.274486 0.0222222 
+  N0 -0.0195486 0.0113382 -0.999745   N1 -0.0218614 0.00589307 -0.999744   N2 -0.0601415 0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 -0.986255 0.274486 0.0222222   V1 -0.884412 0.51944 0.0222222   V2 -0.524218 0.307888 0.00590278 
+  N0 -0.0601415 0.0162121 -0.998058   N1 -0.0537792 0.0311919 -0.998066   N2 -0.0195486 0.0113382 -0.999745 
+   txt003 
+STRI 
+  V0 -0.584584 0.162696 0.00590278   V1 -0.605903 0 0.00590278   V2 -1.02222 -2.22045e-16 0.0222222 
+  N0 -0.0218614 0.00589307 -0.999744   N1 -0.0226746 4.94615e-18 -0.999743   N2 -0.0623783 -0 -0.998053 
+   txt003 
+STRI 
+  V0 -1.02222 -2.22045e-16 0.0222222   V1 -0.986255 0.274486 0.0222222   V2 -0.584584 0.162696 0.00590278 
+  N0 -0.0623783 -0 -0.998053   N1 -0.0601415 0.0162121 -0.998058   N2 -0.0218614 0.00589307 -0.999744 
+   txt003 
+STRI 
+  V0 0 1.02222 0.0222222   V1 -0.274486 0.986255 0.0222222   V2 -0.344878 1.23918 0.046875 
+  N0 0 0.0623783 -0.998053   N1 -0.0162121 0.0601415 -0.998058   N2 -0.0367561 0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 -0.344878 1.23918 0.046875   V1 0 1.28438 0.046875   V2 0 1.02222 0.0222222 
+  N0 -0.0367561 0.136353 -0.989978   N1 0 0.141421 -0.989949   N2 0 0.0623783 -0.998053 
+   txt003 
+STRI 
+  V0 -0.274486 0.986255 0.0222222   V1 -0.51944 0.884412 0.0222222   V2 -0.652653 1.11122 0.046875 
+  N0 -0.0162121 0.0601415 -0.998058   N1 -0.0311919 0.0537792 -0.998066   N2 -0.0707208 0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 -0.652653 1.11122 0.046875   V1 -0.344878 1.23918 0.046875   V2 -0.274486 0.986255 0.0222222 
+  N0 -0.0707208 0.121932 -0.990016   N1 -0.0367561 0.136353 -0.989978   N2 -0.0162121 0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 -0.51944 0.884412 0.0222222   V1 -0.725778 0.725778 0.0222222   V2 -0.911906 0.911906 0.046875 
+  N0 -0.0311919 0.0537792 -0.998066   N1 -0.0439291 0.0439291 -0.998068   N2 -0.0996006 0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 -0.911906 0.911906 0.046875   V1 -0.652653 1.11122 0.046875   V2 -0.51944 0.884412 0.0222222 
+  N0 -0.0996006 0.0996006 -0.99003   N1 -0.0707208 0.121932 -0.990016   N2 -0.0311919 0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 -0.725778 0.725778 0.0222222   V1 -0.884412 0.51944 0.0222222   V2 -1.11122 0.652653 0.046875 
+  N0 -0.0439291 0.0439291 -0.998068   N1 -0.0537792 0.0311919 -0.998066   N2 -0.121932 0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 -1.11122 0.652653 0.046875   V1 -0.911906 0.911906 0.046875   V2 -0.725778 0.725778 0.0222222 
+  N0 -0.121932 0.0707208 -0.990016   N1 -0.0996006 0.0996006 -0.99003   N2 -0.0439291 0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 -0.884412 0.51944 0.0222222   V1 -0.986255 0.274486 0.0222222   V2 -1.23918 0.344878 0.046875 
+  N0 -0.0537792 0.0311919 -0.998066   N1 -0.0601415 0.0162121 -0.998058   N2 -0.136353 0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 -1.23918 0.344878 0.046875   V1 -1.11122 0.652653 0.046875   V2 -0.884412 0.51944 0.0222222 
+  N0 -0.136353 0.0367561 -0.989978   N1 -0.121932 0.0707208 -0.990016   N2 -0.0537792 0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 -0.986255 0.274486 0.0222222   V1 -1.02222 -2.22045e-16 0.0222222   V2 -1.28437 2.22045e-16 0.046875 
+  N0 -0.0601415 0.0162121 -0.998058   N1 -0.0623783 -0 -0.998053   N2 -0.141421 -0 -0.989949 
+   txt003 
+STRI 
+  V0 -1.28437 2.22045e-16 0.046875   V1 -1.23918 0.344878 0.046875   V2 -0.986255 0.274486 0.0222222 
+  N0 -0.141421 -0 -0.989949   N1 -0.136353 0.0367561 -0.989978   N2 -0.0601415 0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 0 1.28438 0.046875   V1 -0.344878 1.23918 0.046875   V2 -0.383385 1.37754 0.0777778 
+  N0 0 0.141421 -0.989949   N1 -0.0367561 0.136353 -0.989978   N2 -0.085395 0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 -0.383385 1.37754 0.0777778   V1 0 1.42778 0.0777778   V2 0 1.28438 0.046875 
+  N0 -0.085395 0.316788 -0.944644   N1 0 0.328521 -0.944497   N2 0 0.141421 -0.989949 
+   txt003 
+STRI 
+  V0 -0.344878 1.23918 0.046875   V1 -0.652653 1.11122 0.046875   V2 -0.725523 1.23529 0.0777778 
+  N0 -0.0367561 0.136353 -0.989978   N1 -0.0707208 0.121932 -0.990016   N2 -0.164332 0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 -0.725523 1.23529 0.0777778   V1 -0.383385 1.37754 0.0777778   V2 -0.344878 1.23918 0.046875 
+  N0 -0.164332 0.283331 -0.944838   N1 -0.085395 0.316788 -0.944644   N2 -0.0367561 0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 -0.652653 1.11122 0.046875   V1 -0.911906 0.911906 0.046875   V2 -1.01372 1.01372 0.0777778 
+  N0 -0.0707208 0.121932 -0.990016   N1 -0.0996006 0.0996006 -0.99003   N2 -0.231454 0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 -1.01372 1.01372 0.0777778   V1 -0.725523 1.23529 0.0777778   V2 -0.652653 1.11122 0.046875 
+  N0 -0.231454 0.231454 -0.944912   N1 -0.164332 0.283331 -0.944838   N2 -0.0707208 0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 -0.911906 0.911906 0.046875   V1 -1.11122 0.652653 0.046875   V2 -1.23529 0.725523 0.0777778 
+  N0 -0.0996006 0.0996006 -0.99003   N1 -0.121932 0.0707208 -0.990016   N2 -0.283331 0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 -1.23529 0.725523 0.0777778   V1 -1.01372 1.01372 0.0777778   V2 -0.911906 0.911906 0.046875 
+  N0 -0.283331 0.164332 -0.944838   N1 -0.231454 0.231454 -0.944912   N2 -0.0996006 0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 -1.11122 0.652653 0.046875   V1 -1.23918 0.344878 0.046875   V2 -1.37754 0.383385 0.0777778 
+  N0 -0.121932 0.0707208 -0.990016   N1 -0.136353 0.0367561 -0.989978   N2 -0.316788 0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 -1.37754 0.383385 0.0777778   V1 -1.23529 0.725523 0.0777778   V2 -1.11122 0.652653 0.046875 
+  N0 -0.316788 0.085395 -0.944644   N1 -0.283331 0.164332 -0.944838   N2 -0.121932 0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 -1.23918 0.344878 0.046875   V1 -1.28437 2.22045e-16 0.046875   V2 -1.42778 -2.22045e-16 0.0777778 
+  N0 -0.136353 0.0367561 -0.989978   N1 -0.141421 -0 -0.989949   N2 -0.328521 6.08223e-17 -0.944497 
+   txt003 
+STRI 
+  V0 -1.42778 -2.22045e-16 0.0777778   V1 -1.37754 0.383385 0.0777778   V2 -1.23918 0.344878 0.046875 
+  N0 -0.328521 6.08223e-17 -0.944497   N1 -0.316788 0.085395 -0.944644   N2 -0.136353 0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 0 1.42778 0.0777778   V1 -0.383385 1.37754 0.0777778   V2 -0.399515 1.4355 0.112847 
+  N0 0 0.328521 -0.944497   N1 -0.085395 0.316788 -0.944644   N2 -0.200299 0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 -0.399515 1.4355 0.112847   V1 0 1.48785 0.112847   V2 0 1.42778 0.0777778 
+  N0 -0.200299 0.743044 -0.638566   N1 0 0.770022 -0.638018   N2 0 0.328521 -0.944497 
+   txt003 
+STRI 
+  V0 -0.383385 1.37754 0.0777778   V1 -0.725523 1.23529 0.0777778   V2 -0.756047 1.28726 0.112847 
+  N0 -0.085395 0.316788 -0.944644   N1 -0.164332 0.283331 -0.944838   N2 -0.385806 0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 -0.756047 1.28726 0.112847   V1 -0.399515 1.4355 0.112847   V2 -0.383385 1.37754 0.0777778 
+  N0 -0.385806 0.665182 -0.639286   N1 -0.200299 0.743044 -0.638566   N2 -0.085395 0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 -0.725523 1.23529 0.0777778   V1 -1.01372 1.01372 0.0777778   V2 -1.05637 1.05637 0.112847 
+  N0 -0.164332 0.283331 -0.944838   N1 -0.231454 0.231454 -0.944912   N2 -0.543581 0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 -1.05637 1.05637 0.112847   V1 -0.756047 1.28726 0.112847   V2 -0.725523 1.23529 0.0777778 
+  N0 -0.543581 0.543581 -0.639562   N1 -0.385806 0.665182 -0.639286   N2 -0.164332 0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 -1.01372 1.01372 0.0777778   V1 -1.23529 0.725523 0.0777778   V2 -1.28726 0.756047 0.112847 
+  N0 -0.231454 0.231454 -0.944912   N1 -0.283331 0.164332 -0.944838   N2 -0.665182 0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 -1.28726 0.756047 0.112847   V1 -1.05637 1.05637 0.112847   V2 -1.01372 1.01372 0.0777778 
+  N0 -0.665182 0.385806 -0.639286   N1 -0.543581 0.543581 -0.639562   N2 -0.231454 0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 -1.23529 0.725523 0.0777778   V1 -1.37754 0.383385 0.0777778   V2 -1.4355 0.399515 0.112847 
+  N0 -0.283331 0.164332 -0.944838   N1 -0.316788 0.085395 -0.944644   N2 -0.743044 0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 -1.4355 0.399515 0.112847   V1 -1.28726 0.756047 0.112847   V2 -1.23529 0.725523 0.0777778 
+  N0 -0.743044 0.200299 -0.638566   N1 -0.665182 0.385806 -0.639286   N2 -0.283331 0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 -1.37754 0.383385 0.0777778   V1 -1.42778 -2.22045e-16 0.0777778   V2 -1.48785 0 0.112847 
+  N0 -0.316788 0.085395 -0.944644   N1 -0.328521 6.08223e-17 -0.944497   N2 -0.770022 1.36806e-16 -0.638018 
+   txt003 
+STRI 
+  V0 -1.48785 0 0.112847   V1 -1.4355 0.399515 0.112847   V2 -1.37754 0.383385 0.0777778 
+  N0 -0.770022 1.36806e-16 -0.638018   N1 -0.743044 0.200299 -0.638566   N2 -0.316788 0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 0 1.48785 0.112847   V1 -0.399515 1.4355 0.112847   V2 -0.402778 1.44722 0.15 
+  N0 0 0.770022 -0.638018   N1 -0.200299 0.743044 -0.638566   N2 -0.260275 0.965535 -2.07142e-16 
+   txt003 
+STRI 
+  V0 -0.402778 1.44722 0.15   V1 0 1.5 0.15   V2 0 1.48785 0.112847 
+  N0 -0.260275 0.965535 -2.07142e-16   N1 0 1 -0   N2 0 0.770022 -0.638018 
+   txt003 
+STRI 
+  V0 -0.399515 1.4355 0.112847   V1 -0.756047 1.28726 0.112847   V2 -0.762222 1.29778 0.15 
+  N0 -0.200299 0.743044 -0.638566   N1 -0.385806 0.665182 -0.639286   N2 -0.501718 0.865031 -5.46348e-16 
+   txt003 
+STRI 
+  V0 -0.762222 1.29778 0.15   V1 -0.402778 1.44722 0.15   V2 -0.399515 1.4355 0.112847 
+  N0 -0.501718 0.865031 -5.46348e-16   N1 -0.260275 0.965535 -2.07142e-16   N2 -0.200299 0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 -0.756047 1.28726 0.112847   V1 -1.05637 1.05637 0.112847   V2 -1.065 1.065 0.15 
+  N0 -0.385806 0.665182 -0.639286   N1 -0.543581 0.543581 -0.639562   N2 -0.707107 0.707107 -6.97819e-16 
+   txt003 
+STRI 
+  V0 -1.065 1.065 0.15   V1 -0.762222 1.29778 0.15   V2 -0.756047 1.28726 0.112847 
+  N0 -0.707107 0.707107 -6.97819e-16   N1 -0.501718 0.865031 -5.46348e-16   N2 -0.385806 0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 -1.05637 1.05637 0.112847   V1 -1.28726 0.756047 0.112847   V2 -1.29778 0.762222 0.15 
+  N0 -0.543581 0.543581 -0.639562   N1 -0.665182 0.385806 -0.639286   N2 -0.865031 0.501718 -5.46348e-16 
+   txt003 
+STRI 
+  V0 -1.29778 0.762222 0.15   V1 -1.065 1.065 0.15   V2 -1.05637 1.05637 0.112847 
+  N0 -0.865031 0.501718 -5.46348e-16   N1 -0.707107 0.707107 -6.97819e-16   N2 -0.543581 0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 -1.28726 0.756047 0.112847   V1 -1.4355 0.399515 0.112847   V2 -1.44722 0.402778 0.15 
+  N0 -0.665182 0.385806 -0.639286   N1 -0.743044 0.200299 -0.638566   N2 -0.965535 0.260275 -2.07142e-16 
+   txt003 
+STRI 
+  V0 -1.44722 0.402778 0.15   V1 -1.29778 0.762222 0.15   V2 -1.28726 0.756047 0.112847 
+  N0 -0.965535 0.260275 -2.07142e-16   N1 -0.865031 0.501718 -5.46348e-16   N2 -0.665182 0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 -1.4355 0.399515 0.112847   V1 -1.48785 0 0.112847   V2 -1.5 0 0.15 
+  N0 -0.743044 0.200299 -0.638566   N1 -0.770022 1.36806e-16 -0.638018   N2 -1 0 0 
+   txt003 
+STRI 
+  V0 -1.5 0 0.15   V1 -1.44722 0.402778 0.15   V2 -1.4355 0.399515 0.112847 
+  N0 -1 0 0   N1 -0.965535 0.260275 -2.07142e-16   N2 -0.743044 0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 -0.584584 -0.162696 0.00590278   V1 -0.605903 0 0.00590278   V2 0 0 0 
+  N0 -0.0218614 -0.00589307 -0.999744   N1 -0.0226746 -0 -0.999743   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.524218 -0.307888 0.00590278   V1 -0.584584 -0.162696 0.00590278   V2 0 0 0 
+  N0 -0.0195486 -0.0113382 -0.999745   N1 -0.0218614 -0.00589307 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.430191 -0.430191 0.00590278   V1 -0.524218 -0.307888 0.00590278   V2 0 0 0 
+  N0 -0.015968 -0.015968 -0.999745   N1 -0.0195486 -0.0113382 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.307888 -0.524218 0.00590278   V1 -0.430191 -0.430191 0.00590278   V2 0 0 0 
+  N0 -0.0113382 -0.0195486 -0.999745   N1 -0.015968 -0.015968 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.162696 -0.584584 0.00590278   V1 -0.307888 -0.524218 0.00590278   V2 0 0 0 
+  N0 -0.00589307 -0.0218614 -0.999744   N1 -0.0113382 -0.0195486 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0 -0.605903 0.00590278   V1 -0.162696 -0.584584 0.00590278   V2 0 0 0 
+  N0 -4.94615e-18 -0.0226746 -0.999743   N1 -0.00589307 -0.0218614 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 -0.605903 0 0.00590278   V1 -0.584584 -0.162696 0.00590278   V2 -0.986255 -0.274486 0.0222222 
+  N0 -0.0226746 -0 -0.999743   N1 -0.0218614 -0.00589307 -0.999744   N2 -0.0601415 -0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 -0.986255 -0.274486 0.0222222   V1 -1.02222 0 0.0222222   V2 -0.605903 0 0.00590278 
+  N0 -0.0601415 -0.0162121 -0.998058   N1 -0.0623783 -0 -0.998053   N2 -0.0226746 -0 -0.999743 
+   txt003 
+STRI 
+  V0 -0.584584 -0.162696 0.00590278   V1 -0.524218 -0.307888 0.00590278   V2 -0.884412 -0.51944 0.0222222 
+  N0 -0.0218614 -0.00589307 -0.999744   N1 -0.0195486 -0.0113382 -0.999745   N2 -0.0537792 -0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 -0.884412 -0.51944 0.0222222   V1 -0.986255 -0.274486 0.0222222   V2 -0.584584 -0.162696 0.00590278 
+  N0 -0.0537792 -0.0311919 -0.998066   N1 -0.0601415 -0.0162121 -0.998058   N2 -0.0218614 -0.00589307 -0.999744 
+   txt003 
+STRI 
+  V0 -0.524218 -0.307888 0.00590278   V1 -0.430191 -0.430191 0.00590278   V2 -0.725778 -0.725778 0.0222222 
+  N0 -0.0195486 -0.0113382 -0.999745   N1 -0.015968 -0.015968 -0.999745   N2 -0.0439291 -0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 -0.725778 -0.725778 0.0222222   V1 -0.884412 -0.51944 0.0222222   V2 -0.524218 -0.307888 0.00590278 
+  N0 -0.0439291 -0.0439291 -0.998068   N1 -0.0537792 -0.0311919 -0.998066   N2 -0.0195486 -0.0113382 -0.999745 
+   txt003 
+STRI 
+  V0 -0.430191 -0.430191 0.00590278   V1 -0.307888 -0.524218 0.00590278   V2 -0.51944 -0.884412 0.0222222 
+  N0 -0.015968 -0.015968 -0.999745   N1 -0.0113382 -0.0195486 -0.999745   N2 -0.0311919 -0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 -0.51944 -0.884412 0.0222222   V1 -0.725778 -0.725778 0.0222222   V2 -0.430191 -0.430191 0.00590278 
+  N0 -0.0311919 -0.0537792 -0.998066   N1 -0.0439291 -0.0439291 -0.998068   N2 -0.015968 -0.015968 -0.999745 
+   txt003 
+STRI 
+  V0 -0.307888 -0.524218 0.00590278   V1 -0.162696 -0.584584 0.00590278   V2 -0.274486 -0.986255 0.0222222 
+  N0 -0.0113382 -0.0195486 -0.999745   N1 -0.00589307 -0.0218614 -0.999744   N2 -0.0162121 -0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 -0.274486 -0.986255 0.0222222   V1 -0.51944 -0.884412 0.0222222   V2 -0.307888 -0.524218 0.00590278 
+  N0 -0.0162121 -0.0601415 -0.998058   N1 -0.0311919 -0.0537792 -0.998066   N2 -0.0113382 -0.0195486 -0.999745 
+   txt003 
+STRI 
+  V0 -0.162696 -0.584584 0.00590278   V1 0 -0.605903 0.00590278   V2 2.22045e-16 -1.02222 0.0222222 
+  N0 -0.00589307 -0.0218614 -0.999744   N1 -4.94615e-18 -0.0226746 -0.999743   N2 0 -0.0623783 -0.998053 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.02222 0.0222222   V1 -0.274486 -0.986255 0.0222222   V2 -0.162696 -0.584584 0.00590278 
+  N0 0 -0.0623783 -0.998053   N1 -0.0162121 -0.0601415 -0.998058   N2 -0.00589307 -0.0218614 -0.999744 
+   txt003 
+STRI 
+  V0 -1.02222 0 0.0222222   V1 -0.986255 -0.274486 0.0222222   V2 -1.23918 -0.344878 0.046875 
+  N0 -0.0623783 -0 -0.998053   N1 -0.0601415 -0.0162121 -0.998058   N2 -0.136353 -0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 -1.23918 -0.344878 0.046875   V1 -1.28438 0 0.046875   V2 -1.02222 0 0.0222222 
+  N0 -0.136353 -0.0367561 -0.989978   N1 -0.141421 -0 -0.989949   N2 -0.0623783 -0 -0.998053 
+   txt003 
+STRI 
+  V0 -0.986255 -0.274486 0.0222222   V1 -0.884412 -0.51944 0.0222222   V2 -1.11122 -0.652653 0.046875 
+  N0 -0.0601415 -0.0162121 -0.998058   N1 -0.0537792 -0.0311919 -0.998066   N2 -0.121932 -0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 -1.11122 -0.652653 0.046875   V1 -1.23918 -0.344878 0.046875   V2 -0.986255 -0.274486 0.0222222 
+  N0 -0.121932 -0.0707208 -0.990016   N1 -0.136353 -0.0367561 -0.989978   N2 -0.0601415 -0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 -0.884412 -0.51944 0.0222222   V1 -0.725778 -0.725778 0.0222222   V2 -0.911906 -0.911906 0.046875 
+  N0 -0.0537792 -0.0311919 -0.998066   N1 -0.0439291 -0.0439291 -0.998068   N2 -0.0996006 -0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 -0.911906 -0.911906 0.046875   V1 -1.11122 -0.652653 0.046875   V2 -0.884412 -0.51944 0.0222222 
+  N0 -0.0996006 -0.0996006 -0.99003   N1 -0.121932 -0.0707208 -0.990016   N2 -0.0537792 -0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 -0.725778 -0.725778 0.0222222   V1 -0.51944 -0.884412 0.0222222   V2 -0.652653 -1.11122 0.046875 
+  N0 -0.0439291 -0.0439291 -0.998068   N1 -0.0311919 -0.0537792 -0.998066   N2 -0.0707208 -0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 -0.652653 -1.11122 0.046875   V1 -0.911906 -0.911906 0.046875   V2 -0.725778 -0.725778 0.0222222 
+  N0 -0.0707208 -0.121932 -0.990016   N1 -0.0996006 -0.0996006 -0.99003   N2 -0.0439291 -0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 -0.51944 -0.884412 0.0222222   V1 -0.274486 -0.986255 0.0222222   V2 -0.344878 -1.23918 0.046875 
+  N0 -0.0311919 -0.0537792 -0.998066   N1 -0.0162121 -0.0601415 -0.998058   N2 -0.0367561 -0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 -0.344878 -1.23918 0.046875   V1 -0.652653 -1.11122 0.046875   V2 -0.51944 -0.884412 0.0222222 
+  N0 -0.0367561 -0.136353 -0.989978   N1 -0.0707208 -0.121932 -0.990016   N2 -0.0311919 -0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 -0.274486 -0.986255 0.0222222   V1 2.22045e-16 -1.02222 0.0222222   V2 -2.22045e-16 -1.28437 0.046875 
+  N0 -0.0162121 -0.0601415 -0.998058   N1 0 -0.0623783 -0.998053   N2 0 -0.141421 -0.989949 
+   txt003 
+STRI 
+  V0 -2.22045e-16 -1.28437 0.046875   V1 -0.344878 -1.23918 0.046875   V2 -0.274486 -0.986255 0.0222222 
+  N0 0 -0.141421 -0.989949   N1 -0.0367561 -0.136353 -0.989978   N2 -0.0162121 -0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 -1.28438 0 0.046875   V1 -1.23918 -0.344878 0.046875   V2 -1.37754 -0.383385 0.0777778 
+  N0 -0.141421 -0 -0.989949   N1 -0.136353 -0.0367561 -0.989978   N2 -0.316788 -0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 -1.37754 -0.383385 0.0777778   V1 -1.42778 0 0.0777778   V2 -1.28438 0 0.046875 
+  N0 -0.316788 -0.085395 -0.944644   N1 -0.328521 -0 -0.944497   N2 -0.141421 -0 -0.989949 
+   txt003 
+STRI 
+  V0 -1.23918 -0.344878 0.046875   V1 -1.11122 -0.652653 0.046875   V2 -1.23529 -0.725523 0.0777778 
+  N0 -0.136353 -0.0367561 -0.989978   N1 -0.121932 -0.0707208 -0.990016   N2 -0.283331 -0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 -1.23529 -0.725523 0.0777778   V1 -1.37754 -0.383385 0.0777778   V2 -1.23918 -0.344878 0.046875 
+  N0 -0.283331 -0.164332 -0.944838   N1 -0.316788 -0.085395 -0.944644   N2 -0.136353 -0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 -1.11122 -0.652653 0.046875   V1 -0.911906 -0.911906 0.046875   V2 -1.01372 -1.01372 0.0777778 
+  N0 -0.121932 -0.0707208 -0.990016   N1 -0.0996006 -0.0996006 -0.99003   N2 -0.231454 -0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 -1.01372 -1.01372 0.0777778   V1 -1.23529 -0.725523 0.0777778   V2 -1.11122 -0.652653 0.046875 
+  N0 -0.231454 -0.231454 -0.944912   N1 -0.283331 -0.164332 -0.944838   N2 -0.121932 -0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 -0.911906 -0.911906 0.046875   V1 -0.652653 -1.11122 0.046875   V2 -0.725523 -1.23529 0.0777778 
+  N0 -0.0996006 -0.0996006 -0.99003   N1 -0.0707208 -0.121932 -0.990016   N2 -0.164332 -0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 -0.725523 -1.23529 0.0777778   V1 -1.01372 -1.01372 0.0777778   V2 -0.911906 -0.911906 0.046875 
+  N0 -0.164332 -0.283331 -0.944838   N1 -0.231454 -0.231454 -0.944912   N2 -0.0996006 -0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 -0.652653 -1.11122 0.046875   V1 -0.344878 -1.23918 0.046875   V2 -0.383385 -1.37754 0.0777778 
+  N0 -0.0707208 -0.121932 -0.990016   N1 -0.0367561 -0.136353 -0.989978   N2 -0.085395 -0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 -0.383385 -1.37754 0.0777778   V1 -0.725523 -1.23529 0.0777778   V2 -0.652653 -1.11122 0.046875 
+  N0 -0.085395 -0.316788 -0.944644   N1 -0.164332 -0.283331 -0.944838   N2 -0.0707208 -0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 -0.344878 -1.23918 0.046875   V1 -2.22045e-16 -1.28437 0.046875   V2 2.22045e-16 -1.42778 0.0777778 
+  N0 -0.0367561 -0.136353 -0.989978   N1 0 -0.141421 -0.989949   N2 -6.08223e-17 -0.328521 -0.944497 
+   txt003 
+STRI 
+  V0 2.22045e-16 -1.42778 0.0777778   V1 -0.383385 -1.37754 0.0777778   V2 -0.344878 -1.23918 0.046875 
+  N0 -6.08223e-17 -0.328521 -0.944497   N1 -0.085395 -0.316788 -0.944644   N2 -0.0367561 -0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 -1.42778 0 0.0777778   V1 -1.37754 -0.383385 0.0777778   V2 -1.4355 -0.399515 0.112847 
+  N0 -0.328521 -0 -0.944497   N1 -0.316788 -0.085395 -0.944644   N2 -0.743044 -0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 -1.4355 -0.399515 0.112847   V1 -1.48785 0 0.112847   V2 -1.42778 0 0.0777778 
+  N0 -0.743044 -0.200299 -0.638566   N1 -0.770022 -0 -0.638018   N2 -0.328521 -0 -0.944497 
+   txt003 
+STRI 
+  V0 -1.37754 -0.383385 0.0777778   V1 -1.23529 -0.725523 0.0777778   V2 -1.28726 -0.756047 0.112847 
+  N0 -0.316788 -0.085395 -0.944644   N1 -0.283331 -0.164332 -0.944838   N2 -0.665182 -0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 -1.28726 -0.756047 0.112847   V1 -1.4355 -0.399515 0.112847   V2 -1.37754 -0.383385 0.0777778 
+  N0 -0.665182 -0.385806 -0.639286   N1 -0.743044 -0.200299 -0.638566   N2 -0.316788 -0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 -1.23529 -0.725523 0.0777778   V1 -1.01372 -1.01372 0.0777778   V2 -1.05637 -1.05637 0.112847 
+  N0 -0.283331 -0.164332 -0.944838   N1 -0.231454 -0.231454 -0.944912   N2 -0.543581 -0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 -1.05637 -1.05637 0.112847   V1 -1.28726 -0.756047 0.112847   V2 -1.23529 -0.725523 0.0777778 
+  N0 -0.543581 -0.543581 -0.639562   N1 -0.665182 -0.385806 -0.639286   N2 -0.283331 -0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 -1.01372 -1.01372 0.0777778   V1 -0.725523 -1.23529 0.0777778   V2 -0.756047 -1.28726 0.112847 
+  N0 -0.231454 -0.231454 -0.944912   N1 -0.164332 -0.283331 -0.944838   N2 -0.385806 -0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 -0.756047 -1.28726 0.112847   V1 -1.05637 -1.05637 0.112847   V2 -1.01372 -1.01372 0.0777778 
+  N0 -0.385806 -0.665182 -0.639286   N1 -0.543581 -0.543581 -0.639562   N2 -0.231454 -0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 -0.725523 -1.23529 0.0777778   V1 -0.383385 -1.37754 0.0777778   V2 -0.399515 -1.4355 0.112847 
+  N0 -0.164332 -0.283331 -0.944838   N1 -0.085395 -0.316788 -0.944644   N2 -0.200299 -0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 -0.399515 -1.4355 0.112847   V1 -0.756047 -1.28726 0.112847   V2 -0.725523 -1.23529 0.0777778 
+  N0 -0.200299 -0.743044 -0.638566   N1 -0.385806 -0.665182 -0.639286   N2 -0.164332 -0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 -0.383385 -1.37754 0.0777778   V1 2.22045e-16 -1.42778 0.0777778   V2 0 -1.48785 0.112847 
+  N0 -0.085395 -0.316788 -0.944644   N1 -6.08223e-17 -0.328521 -0.944497   N2 -1.36806e-16 -0.770022 -0.638018 
+   txt003 
+STRI 
+  V0 0 -1.48785 0.112847   V1 -0.399515 -1.4355 0.112847   V2 -0.383385 -1.37754 0.0777778 
+  N0 -1.36806e-16 -0.770022 -0.638018   N1 -0.200299 -0.743044 -0.638566   N2 -0.085395 -0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 -1.48785 0 0.112847   V1 -1.4355 -0.399515 0.112847   V2 -1.44722 -0.402778 0.15 
+  N0 -0.770022 -0 -0.638018   N1 -0.743044 -0.200299 -0.638566   N2 -0.965535 -0.260275 -2.07142e-16 
+   txt003 
+STRI 
+  V0 -1.44722 -0.402778 0.15   V1 -1.5 0 0.15   V2 -1.48785 0 0.112847 
+  N0 -0.965535 -0.260275 -2.07142e-16   N1 -1 0 0   N2 -0.770022 -0 -0.638018 
+   txt003 
+STRI 
+  V0 -1.4355 -0.399515 0.112847   V1 -1.28726 -0.756047 0.112847   V2 -1.29778 -0.762222 0.15 
+  N0 -0.743044 -0.200299 -0.638566   N1 -0.665182 -0.385806 -0.639286   N2 -0.865031 -0.501718 -5.46348e-16 
+   txt003 
+STRI 
+  V0 -1.29778 -0.762222 0.15   V1 -1.44722 -0.402778 0.15   V2 -1.4355 -0.399515 0.112847 
+  N0 -0.865031 -0.501718 -5.46348e-16   N1 -0.965535 -0.260275 -2.07142e-16   N2 -0.743044 -0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 -1.28726 -0.756047 0.112847   V1 -1.05637 -1.05637 0.112847   V2 -1.065 -1.065 0.15 
+  N0 -0.665182 -0.385806 -0.639286   N1 -0.543581 -0.543581 -0.639562   N2 -0.707107 -0.707107 -6.97819e-16 
+   txt003 
+STRI 
+  V0 -1.065 -1.065 0.15   V1 -1.29778 -0.762222 0.15   V2 -1.28726 -0.756047 0.112847 
+  N0 -0.707107 -0.707107 -6.97819e-16   N1 -0.865031 -0.501718 -5.46348e-16   N2 -0.665182 -0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 -1.05637 -1.05637 0.112847   V1 -0.756047 -1.28726 0.112847   V2 -0.762222 -1.29778 0.15 
+  N0 -0.543581 -0.543581 -0.639562   N1 -0.385806 -0.665182 -0.639286   N2 -0.501718 -0.865031 -5.46348e-16 
+   txt003 
+STRI 
+  V0 -0.762222 -1.29778 0.15   V1 -1.065 -1.065 0.15   V2 -1.05637 -1.05637 0.112847 
+  N0 -0.501718 -0.865031 -5.46348e-16   N1 -0.707107 -0.707107 -6.97819e-16   N2 -0.543581 -0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 -0.756047 -1.28726 0.112847   V1 -0.399515 -1.4355 0.112847   V2 -0.402778 -1.44722 0.15 
+  N0 -0.385806 -0.665182 -0.639286   N1 -0.200299 -0.743044 -0.638566   N2 -0.260275 -0.965535 -2.07142e-16 
+   txt003 
+STRI 
+  V0 -0.402778 -1.44722 0.15   V1 -0.762222 -1.29778 0.15   V2 -0.756047 -1.28726 0.112847 
+  N0 -0.260275 -0.965535 -2.07142e-16   N1 -0.501718 -0.865031 -5.46348e-16   N2 -0.385806 -0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 -0.399515 -1.4355 0.112847   V1 0 -1.48785 0.112847   V2 0 -1.5 0.15 
+  N0 -0.200299 -0.743044 -0.638566   N1 -1.36806e-16 -0.770022 -0.638018   N2 0 -1 0 
+   txt003 
+STRI 
+  V0 0 -1.5 0.15   V1 -0.402778 -1.44722 0.15   V2 -0.399515 -1.4355 0.112847 
+  N0 0 -1 0   N1 -0.260275 -0.965535 -2.07142e-16   N2 -0.200299 -0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 0.162696 -0.584584 0.00590278   V1 0 -0.605903 0.00590278   V2 0 0 0 
+  N0 0.00589307 -0.0218614 -0.999744   N1 0 -0.0226746 -0.999743   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.307888 -0.524218 0.00590278   V1 0.162696 -0.584584 0.00590278   V2 0 0 0 
+  N0 0.0113382 -0.0195486 -0.999745   N1 0.00589307 -0.0218614 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.430191 -0.430191 0.00590278   V1 0.307888 -0.524218 0.00590278   V2 0 0 0 
+  N0 0.015968 -0.015968 -0.999745   N1 0.0113382 -0.0195486 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.524218 -0.307888 0.00590278   V1 0.430191 -0.430191 0.00590278   V2 0 0 0 
+  N0 0.0195486 -0.0113382 -0.999745   N1 0.015968 -0.015968 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.584584 -0.162696 0.00590278   V1 0.524218 -0.307888 0.00590278   V2 0 0 0 
+  N0 0.0218614 -0.00589307 -0.999744   N1 0.0195486 -0.0113382 -0.999745   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0.605903 0 0.00590278   V1 0.584584 -0.162696 0.00590278   V2 0 0 0 
+  N0 0.0226746 -4.94615e-18 -0.999743   N1 0.0218614 -0.00589307 -0.999744   N2 0 0 -1 
+   txt003 
+STRI 
+  V0 0 -0.605903 0.00590278   V1 0.162696 -0.584584 0.00590278   V2 0.274486 -0.986255 0.0222222 
+  N0 0 -0.0226746 -0.999743   N1 0.00589307 -0.0218614 -0.999744   N2 0.0162121 -0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 0.274486 -0.986255 0.0222222   V1 0 -1.02222 0.0222222   V2 0 -0.605903 0.00590278 
+  N0 0.0162121 -0.0601415 -0.998058   N1 0 -0.0623783 -0.998053   N2 0 -0.0226746 -0.999743 
+   txt003 
+STRI 
+  V0 0.162696 -0.584584 0.00590278   V1 0.307888 -0.524218 0.00590278   V2 0.51944 -0.884412 0.0222222 
+  N0 0.00589307 -0.0218614 -0.999744   N1 0.0113382 -0.0195486 -0.999745   N2 0.0311919 -0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 0.51944 -0.884412 0.0222222   V1 0.274486 -0.986255 0.0222222   V2 0.162696 -0.584584 0.00590278 
+  N0 0.0311919 -0.0537792 -0.998066   N1 0.0162121 -0.0601415 -0.998058   N2 0.00589307 -0.0218614 -0.999744 
+   txt003 
+STRI 
+  V0 0.307888 -0.524218 0.00590278   V1 0.430191 -0.430191 0.00590278   V2 0.725778 -0.725778 0.0222222 
+  N0 0.0113382 -0.0195486 -0.999745   N1 0.015968 -0.015968 -0.999745   N2 0.0439291 -0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 0.725778 -0.725778 0.0222222   V1 0.51944 -0.884412 0.0222222   V2 0.307888 -0.524218 0.00590278 
+  N0 0.0439291 -0.0439291 -0.998068   N1 0.0311919 -0.0537792 -0.998066   N2 0.0113382 -0.0195486 -0.999745 
+   txt003 
+STRI 
+  V0 0.430191 -0.430191 0.00590278   V1 0.524218 -0.307888 0.00590278   V2 0.884412 -0.51944 0.0222222 
+  N0 0.015968 -0.015968 -0.999745   N1 0.0195486 -0.0113382 -0.999745   N2 0.0537792 -0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 0.884412 -0.51944 0.0222222   V1 0.725778 -0.725778 0.0222222   V2 0.430191 -0.430191 0.00590278 
+  N0 0.0537792 -0.0311919 -0.998066   N1 0.0439291 -0.0439291 -0.998068   N2 0.015968 -0.015968 -0.999745 
+   txt003 
+STRI 
+  V0 0.524218 -0.307888 0.00590278   V1 0.584584 -0.162696 0.00590278   V2 0.986255 -0.274486 0.0222222 
+  N0 0.0195486 -0.0113382 -0.999745   N1 0.0218614 -0.00589307 -0.999744   N2 0.0601415 -0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 0.986255 -0.274486 0.0222222   V1 0.884412 -0.51944 0.0222222   V2 0.524218 -0.307888 0.00590278 
+  N0 0.0601415 -0.0162121 -0.998058   N1 0.0537792 -0.0311919 -0.998066   N2 0.0195486 -0.0113382 -0.999745 
+   txt003 
+STRI 
+  V0 0.584584 -0.162696 0.00590278   V1 0.605903 0 0.00590278   V2 1.02222 2.22045e-16 0.0222222 
+  N0 0.0218614 -0.00589307 -0.999744   N1 0.0226746 -4.94615e-18 -0.999743   N2 0.0623783 0 -0.998053 
+   txt003 
+STRI 
+  V0 1.02222 2.22045e-16 0.0222222   V1 0.986255 -0.274486 0.0222222   V2 0.584584 -0.162696 0.00590278 
+  N0 0.0623783 0 -0.998053   N1 0.0601415 -0.0162121 -0.998058   N2 0.0218614 -0.00589307 -0.999744 
+   txt003 
+STRI 
+  V0 0 -1.02222 0.0222222   V1 0.274486 -0.986255 0.0222222   V2 0.344878 -1.23918 0.046875 
+  N0 0 -0.0623783 -0.998053   N1 0.0162121 -0.0601415 -0.998058   N2 0.0367561 -0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 0.344878 -1.23918 0.046875   V1 0 -1.28438 0.046875   V2 0 -1.02222 0.0222222 
+  N0 0.0367561 -0.136353 -0.989978   N1 0 -0.141421 -0.989949   N2 0 -0.0623783 -0.998053 
+   txt003 
+STRI 
+  V0 0.274486 -0.986255 0.0222222   V1 0.51944 -0.884412 0.0222222   V2 0.652653 -1.11122 0.046875 
+  N0 0.0162121 -0.0601415 -0.998058   N1 0.0311919 -0.0537792 -0.998066   N2 0.0707208 -0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 0.652653 -1.11122 0.046875   V1 0.344878 -1.23918 0.046875   V2 0.274486 -0.986255 0.0222222 
+  N0 0.0707208 -0.121932 -0.990016   N1 0.0367561 -0.136353 -0.989978   N2 0.0162121 -0.0601415 -0.998058 
+   txt003 
+STRI 
+  V0 0.51944 -0.884412 0.0222222   V1 0.725778 -0.725778 0.0222222   V2 0.911906 -0.911906 0.046875 
+  N0 0.0311919 -0.0537792 -0.998066   N1 0.0439291 -0.0439291 -0.998068   N2 0.0996006 -0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 0.911906 -0.911906 0.046875   V1 0.652653 -1.11122 0.046875   V2 0.51944 -0.884412 0.0222222 
+  N0 0.0996006 -0.0996006 -0.99003   N1 0.0707208 -0.121932 -0.990016   N2 0.0311919 -0.0537792 -0.998066 
+   txt003 
+STRI 
+  V0 0.725778 -0.725778 0.0222222   V1 0.884412 -0.51944 0.0222222   V2 1.11122 -0.652653 0.046875 
+  N0 0.0439291 -0.0439291 -0.998068   N1 0.0537792 -0.0311919 -0.998066   N2 0.121932 -0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 1.11122 -0.652653 0.046875   V1 0.911906 -0.911906 0.046875   V2 0.725778 -0.725778 0.0222222 
+  N0 0.121932 -0.0707208 -0.990016   N1 0.0996006 -0.0996006 -0.99003   N2 0.0439291 -0.0439291 -0.998068 
+   txt003 
+STRI 
+  V0 0.884412 -0.51944 0.0222222   V1 0.986255 -0.274486 0.0222222   V2 1.23918 -0.344878 0.046875 
+  N0 0.0537792 -0.0311919 -0.998066   N1 0.0601415 -0.0162121 -0.998058   N2 0.136353 -0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 1.23918 -0.344878 0.046875   V1 1.11122 -0.652653 0.046875   V2 0.884412 -0.51944 0.0222222 
+  N0 0.136353 -0.0367561 -0.989978   N1 0.121932 -0.0707208 -0.990016   N2 0.0537792 -0.0311919 -0.998066 
+   txt003 
+STRI 
+  V0 0.986255 -0.274486 0.0222222   V1 1.02222 2.22045e-16 0.0222222   V2 1.28437 -2.22045e-16 0.046875 
+  N0 0.0601415 -0.0162121 -0.998058   N1 0.0623783 0 -0.998053   N2 0.141421 0 -0.989949 
+   txt003 
+STRI 
+  V0 1.28437 -2.22045e-16 0.046875   V1 1.23918 -0.344878 0.046875   V2 0.986255 -0.274486 0.0222222 
+  N0 0.141421 0 -0.989949   N1 0.136353 -0.0367561 -0.989978   N2 0.0601415 -0.0162121 -0.998058 
+   txt003 
+STRI 
+  V0 0 -1.28438 0.046875   V1 0.344878 -1.23918 0.046875   V2 0.383385 -1.37754 0.0777778 
+  N0 0 -0.141421 -0.989949   N1 0.0367561 -0.136353 -0.989978   N2 0.085395 -0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 0.383385 -1.37754 0.0777778   V1 0 -1.42778 0.0777778   V2 0 -1.28438 0.046875 
+  N0 0.085395 -0.316788 -0.944644   N1 0 -0.328521 -0.944497   N2 0 -0.141421 -0.989949 
+   txt003 
+STRI 
+  V0 0.344878 -1.23918 0.046875   V1 0.652653 -1.11122 0.046875   V2 0.725523 -1.23529 0.0777778 
+  N0 0.0367561 -0.136353 -0.989978   N1 0.0707208 -0.121932 -0.990016   N2 0.164332 -0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 0.725523 -1.23529 0.0777778   V1 0.383385 -1.37754 0.0777778   V2 0.344878 -1.23918 0.046875 
+  N0 0.164332 -0.283331 -0.944838   N1 0.085395 -0.316788 -0.944644   N2 0.0367561 -0.136353 -0.989978 
+   txt003 
+STRI 
+  V0 0.652653 -1.11122 0.046875   V1 0.911906 -0.911906 0.046875   V2 1.01372 -1.01372 0.0777778 
+  N0 0.0707208 -0.121932 -0.990016   N1 0.0996006 -0.0996006 -0.99003   N2 0.231454 -0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 1.01372 -1.01372 0.0777778   V1 0.725523 -1.23529 0.0777778   V2 0.652653 -1.11122 0.046875 
+  N0 0.231454 -0.231454 -0.944912   N1 0.164332 -0.283331 -0.944838   N2 0.0707208 -0.121932 -0.990016 
+   txt003 
+STRI 
+  V0 0.911906 -0.911906 0.046875   V1 1.11122 -0.652653 0.046875   V2 1.23529 -0.725523 0.0777778 
+  N0 0.0996006 -0.0996006 -0.99003   N1 0.121932 -0.0707208 -0.990016   N2 0.283331 -0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 1.23529 -0.725523 0.0777778   V1 1.01372 -1.01372 0.0777778   V2 0.911906 -0.911906 0.046875 
+  N0 0.283331 -0.164332 -0.944838   N1 0.231454 -0.231454 -0.944912   N2 0.0996006 -0.0996006 -0.99003 
+   txt003 
+STRI 
+  V0 1.11122 -0.652653 0.046875   V1 1.23918 -0.344878 0.046875   V2 1.37754 -0.383385 0.0777778 
+  N0 0.121932 -0.0707208 -0.990016   N1 0.136353 -0.0367561 -0.989978   N2 0.316788 -0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 1.37754 -0.383385 0.0777778   V1 1.23529 -0.725523 0.0777778   V2 1.11122 -0.652653 0.046875 
+  N0 0.316788 -0.085395 -0.944644   N1 0.283331 -0.164332 -0.944838   N2 0.121932 -0.0707208 -0.990016 
+   txt003 
+STRI 
+  V0 1.23918 -0.344878 0.046875   V1 1.28437 -2.22045e-16 0.046875   V2 1.42778 2.22045e-16 0.0777778 
+  N0 0.136353 -0.0367561 -0.989978   N1 0.141421 0 -0.989949   N2 0.328521 -6.08223e-17 -0.944497 
+   txt003 
+STRI 
+  V0 1.42778 2.22045e-16 0.0777778   V1 1.37754 -0.383385 0.0777778   V2 1.23918 -0.344878 0.046875 
+  N0 0.328521 -6.08223e-17 -0.944497   N1 0.316788 -0.085395 -0.944644   N2 0.136353 -0.0367561 -0.989978 
+   txt003 
+STRI 
+  V0 0 -1.42778 0.0777778   V1 0.383385 -1.37754 0.0777778   V2 0.399515 -1.4355 0.112847 
+  N0 0 -0.328521 -0.944497   N1 0.085395 -0.316788 -0.944644   N2 0.200299 -0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 0.399515 -1.4355 0.112847   V1 0 -1.48785 0.112847   V2 0 -1.42778 0.0777778 
+  N0 0.200299 -0.743044 -0.638566   N1 0 -0.770022 -0.638018   N2 0 -0.328521 -0.944497 
+   txt003 
+STRI 
+  V0 0.383385 -1.37754 0.0777778   V1 0.725523 -1.23529 0.0777778   V2 0.756047 -1.28726 0.112847 
+  N0 0.085395 -0.316788 -0.944644   N1 0.164332 -0.283331 -0.944838   N2 0.385806 -0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 0.756047 -1.28726 0.112847   V1 0.399515 -1.4355 0.112847   V2 0.383385 -1.37754 0.0777778 
+  N0 0.385806 -0.665182 -0.639286   N1 0.200299 -0.743044 -0.638566   N2 0.085395 -0.316788 -0.944644 
+   txt003 
+STRI 
+  V0 0.725523 -1.23529 0.0777778   V1 1.01372 -1.01372 0.0777778   V2 1.05637 -1.05637 0.112847 
+  N0 0.164332 -0.283331 -0.944838   N1 0.231454 -0.231454 -0.944912   N2 0.543581 -0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 1.05637 -1.05637 0.112847   V1 0.756047 -1.28726 0.112847   V2 0.725523 -1.23529 0.0777778 
+  N0 0.543581 -0.543581 -0.639562   N1 0.385806 -0.665182 -0.639286   N2 0.164332 -0.283331 -0.944838 
+   txt003 
+STRI 
+  V0 1.01372 -1.01372 0.0777778   V1 1.23529 -0.725523 0.0777778   V2 1.28726 -0.756047 0.112847 
+  N0 0.231454 -0.231454 -0.944912   N1 0.283331 -0.164332 -0.944838   N2 0.665182 -0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 1.28726 -0.756047 0.112847   V1 1.05637 -1.05637 0.112847   V2 1.01372 -1.01372 0.0777778 
+  N0 0.665182 -0.385806 -0.639286   N1 0.543581 -0.543581 -0.639562   N2 0.231454 -0.231454 -0.944912 
+   txt003 
+STRI 
+  V0 1.23529 -0.725523 0.0777778   V1 1.37754 -0.383385 0.0777778   V2 1.4355 -0.399515 0.112847 
+  N0 0.283331 -0.164332 -0.944838   N1 0.316788 -0.085395 -0.944644   N2 0.743044 -0.200299 -0.638566 
+   txt003 
+STRI 
+  V0 1.4355 -0.399515 0.112847   V1 1.28726 -0.756047 0.112847   V2 1.23529 -0.725523 0.0777778 
+  N0 0.743044 -0.200299 -0.638566   N1 0.665182 -0.385806 -0.639286   N2 0.283331 -0.164332 -0.944838 
+   txt003 
+STRI 
+  V0 1.37754 -0.383385 0.0777778   V1 1.42778 2.22045e-16 0.0777778   V2 1.48785 0 0.112847 
+  N0 0.316788 -0.085395 -0.944644   N1 0.328521 -6.08223e-17 -0.944497   N2 0.770022 -1.36806e-16 -0.638018 
+   txt003 
+STRI 
+  V0 1.48785 0 0.112847   V1 1.4355 -0.399515 0.112847   V2 1.37754 -0.383385 0.0777778 
+  N0 0.770022 -1.36806e-16 -0.638018   N1 0.743044 -0.200299 -0.638566   N2 0.316788 -0.085395 -0.944644 
+   txt003 
+STRI 
+  V0 0 -1.48785 0.112847   V1 0.399515 -1.4355 0.112847   V2 0.402778 -1.44722 0.15 
+  N0 0 -0.770022 -0.638018   N1 0.200299 -0.743044 -0.638566   N2 0.260275 -0.965535 -2.07142e-16 
+   txt003 
+STRI 
+  V0 0.402778 -1.44722 0.15   V1 0 -1.5 0.15   V2 0 -1.48785 0.112847 
+  N0 0.260275 -0.965535 -2.07142e-16   N1 0 -1 0   N2 0 -0.770022 -0.638018 
+   txt003 
+STRI 
+  V0 0.399515 -1.4355 0.112847   V1 0.756047 -1.28726 0.112847   V2 0.762222 -1.29778 0.15 
+  N0 0.200299 -0.743044 -0.638566   N1 0.385806 -0.665182 -0.639286   N2 0.501718 -0.865031 -5.46348e-16 
+   txt003 
+STRI 
+  V0 0.762222 -1.29778 0.15   V1 0.402778 -1.44722 0.15   V2 0.399515 -1.4355 0.112847 
+  N0 0.501718 -0.865031 -5.46348e-16   N1 0.260275 -0.965535 -2.07142e-16   N2 0.200299 -0.743044 -0.638566 
+   txt003 
+STRI 
+  V0 0.756047 -1.28726 0.112847   V1 1.05637 -1.05637 0.112847   V2 1.065 -1.065 0.15 
+  N0 0.385806 -0.665182 -0.639286   N1 0.543581 -0.543581 -0.639562   N2 0.707107 -0.707107 -6.97819e-16 
+   txt003 
+STRI 
+  V0 1.065 -1.065 0.15   V1 0.762222 -1.29778 0.15   V2 0.756047 -1.28726 0.112847 
+  N0 0.707107 -0.707107 -6.97819e-16   N1 0.501718 -0.865031 -5.46348e-16   N2 0.385806 -0.665182 -0.639286 
+   txt003 
+STRI 
+  V0 1.05637 -1.05637 0.112847   V1 1.28726 -0.756047 0.112847   V2 1.29778 -0.762222 0.15 
+  N0 0.543581 -0.543581 -0.639562   N1 0.665182 -0.385806 -0.639286   N2 0.865031 -0.501718 -5.46348e-16 
+   txt003 
+STRI 
+  V0 1.29778 -0.762222 0.15   V1 1.065 -1.065 0.15   V2 1.05637 -1.05637 0.112847 
+  N0 0.865031 -0.501718 -5.46348e-16   N1 0.707107 -0.707107 -6.97819e-16   N2 0.543581 -0.543581 -0.639562 
+   txt003 
+STRI 
+  V0 1.28726 -0.756047 0.112847   V1 1.4355 -0.399515 0.112847   V2 1.44722 -0.402778 0.15 
+  N0 0.665182 -0.385806 -0.639286   N1 0.743044 -0.200299 -0.638566   N2 0.965535 -0.260275 -2.07142e-16 
+   txt003 
+STRI 
+  V0 1.44722 -0.402778 0.15   V1 1.29778 -0.762222 0.15   V2 1.28726 -0.756047 0.112847 
+  N0 0.965535 -0.260275 -2.07142e-16   N1 0.865031 -0.501718 -5.46348e-16   N2 0.665182 -0.385806 -0.639286 
+   txt003 
+STRI 
+  V0 1.4355 -0.399515 0.112847   V1 1.48785 0 0.112847   V2 1.5 0 0.15 
+  N0 0.743044 -0.200299 -0.638566   N1 0.770022 -1.36806e-16 -0.638018   N2 1 0 0 
+   txt003 
+STRI 
+  V0 1.5 0 0.15   V1 1.44722 -0.402778 0.15   V2 1.4355 -0.399515 0.112847 
+  N0 1 0 0   N1 0.965535 -0.260275 -2.07142e-16   N2 0.743044 -0.200299 -0.638566 
+   txt003 
+
+END_SCENE
diff --git a/examples/parallel_for/tacheon/dat/trypsin4pti.dat b/examples/parallel_for/tacheon/dat/trypsin4pti.dat
new file mode 100644
index 0000000..7d547f2
--- /dev/null
+++ b/examples/parallel_for/tacheon/dat/trypsin4pti.dat
@@ -0,0 +1,538 @@
+BEGIN_SCENE
+  OUTFILE /dev/null
+  RESOLUTION 768 768
+  VERBOSE 0
+
+CAMERA
+  ZOOM  1.0
+  ASPECTRATIO 1.0
+  ANTIALIASING 0
+  RAYDEPTH  4 
+  CENTER    15.0 20.0 -50.0
+  VIEWDIR   0.0 0.0 1.0
+  UPDIR     0.0 1.0 0.0
+END_CAMERA
+
+
+LIGHT
+  CENTER  40.0 50.0 -40.0  
+  RAD     0.2
+  COLOR   0.5 0.5  0.5
+
+LIGHT 
+  CENTER  -40.0 20.0  -40.0 
+  RAD     0.2
+  COLOR   0.5 0.5  0.5
+
+
+TEXDEF O AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 
+         PHONG PLASTIC 0.5 PHONG_SIZE 24.8
+         COLOR 1.0 0.0 0.0  TEXFUNC 0
+TEXALIAS OH O
+TEXALIAS OD1 O
+TEXALIAS OD2 O
+TEXALIAS OE1 O
+TEXALIAS OE2 O
+TEXALIAS OG O
+TEXALIAS OG1 O
+TEXALIAS OG2 O
+TEXALIAS OXT O
+
+TEXDEF C AMBIENT 0.1 DIFFUSE 0.5 SPECULAR 0.0 OPACITY 1.0 
+         PHONG PLASTIC 0.5 PHONG_SIZE 24.8
+         COLOR 0.5 0.5 0.5  TEXFUNC 0
+TEXALIAS CA C
+TEXALIAS CB C
+TEXALIAS CD C
+TEXALIAS CD1 C
+TEXALIAS CD2 C
+TEXALIAS CE C
+TEXALIAS CE1 C
+TEXALIAS CE2 C
+TEXALIAS CG C
+TEXALIAS CG1 C
+TEXALIAS CG2 C
+TEXALIAS CZ C
+
+TEXDEF N AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 
+         PHONG PLASTIC 0.5 PHONG_SIZE 24.8
+         COLOR 0.5 0.5 1.0  TEXFUNC 0
+TEXALIAS ND2 N
+TEXALIAS NH1 N
+TEXALIAS NH2 N
+TEXALIAS NE N
+TEXALIAS NE2 N
+TEXALIAS NZ N
+
+TEXDEF SD AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 
+         PHONG METAL 0.5 PHONG_SIZE 24.8
+         COLOR 1.0 1.0 1.0  TEXFUNC 0
+
+TEXDEF SG AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 
+         PHONG PLASTIC 0.5 PHONG_SIZE 24.8
+         COLOR 1.0 1.0 1.0  TEXFUNC 0
+
+SPHERE  CENTER 26.465000 27.452000 -2.490000  RAD 1.0  N 
+SPHERE  CENTER 25.497000 26.862000 -1.573000  RAD 1.0  CA 
+SPHERE  CENTER 26.193001 26.179001 -0.437000  RAD 1.0  C 
+SPHERE  CENTER 27.270000 25.549000 -0.624000  RAD 1.0  O 
+SPHERE  CENTER 24.583000 25.804001 -2.239000  RAD 1.0  CB 
+SPHERE  CENTER 25.091000 24.375000 -2.409000  RAD 1.0  CG 
+SPHERE  CENTER 24.018999 23.427999 -2.996000  RAD 1.0  CD 
+SPHERE  CENTER 23.591000 24.028000 -4.287000  RAD 1.0  NE 
+SPHERE  CENTER 24.299000 23.972000 -5.389000  RAD 1.0  CZ 
+SPHERE  CENTER 25.431999 23.261000 -5.440000  RAD 1.0  NH1 
+SPHERE  CENTER 23.721001 24.372999 -6.467000  RAD 1.0  NH2 
+SPHERE  CENTER 25.667000 26.396000 0.708000  RAD 1.0  N 
+SPHERE  CENTER 26.222000 25.760000 1.891000  RAD 1.0  CA 
+SPHERE  CENTER 26.207001 24.242001 1.830000  RAD 1.0  C 
+SPHERE  CENTER 25.400000 23.576000 1.139000  RAD 1.0  O 
+SPHERE  CENTER 25.260000 26.207001 3.033000  RAD 1.0  CB 
+SPHERE  CENTER 24.511999 27.427999 2.493000  RAD 1.0  CG 
+SPHERE  CENTER 24.606001 27.382000 0.978000  RAD 1.0  CD 
+SPHERE  CENTER 27.170000 23.634001 2.462000  RAD 1.0  N 
+SPHERE  CENTER 27.284000 22.163000 2.498000  RAD 1.0  CA 
+SPHERE  CENTER 26.042999 21.506001 3.085000  RAD 1.0  C 
+SPHERE  CENTER 25.752001 20.350000 2.705000  RAD 1.0  O 
+SPHERE  CENTER 28.424999 21.747000 3.461000  RAD 1.0  CB 
+SPHERE  CENTER 29.791000 21.886000 2.787000  RAD 1.0  CG 
+SPHERE  CENTER 29.875000 22.104000 1.543000  RAD 1.0  OD1 
+SPHERE  CENTER 30.806000 21.500999 3.431000  RAD 1.0  OD2 
+SPHERE  CENTER 25.393999 22.184000 4.041000  RAD 1.0  N 
+SPHERE  CENTER 24.172001 21.584999 4.618000  RAD 1.0  CA 
+SPHERE  CENTER 23.009001 21.375000 3.624000  RAD 1.0  C 
+SPHERE  CENTER 22.082001 20.603001 3.921000  RAD 1.0  O 
+SPHERE  CENTER 23.691999 22.330999 5.862000  RAD 1.0  CB 
+SPHERE  CENTER 23.191999 23.778999 5.639000  RAD 1.0  CG 
+SPHERE  CENTER 21.961000 24.002001 5.060000  RAD 1.0  CD1 
+SPHERE  CENTER 23.951000 24.841000 6.050000  RAD 1.0  CD2 
+SPHERE  CENTER 21.497000 25.281000 4.869000  RAD 1.0  CE1 
+SPHERE  CENTER 23.510000 26.124001 5.854000  RAD 1.0  CE2 
+SPHERE  CENTER 22.277000 26.363001 5.249000  RAD 1.0  CZ 
+SPHERE  CENTER 23.094999 22.004000 2.522000  RAD 1.0  N 
+SPHERE  CENTER 22.106001 21.863001 1.467000  RAD 1.0  CA 
+SPHERE  CENTER 22.191999 20.518000 0.830000  RAD 1.0  C 
+SPHERE  CENTER 21.230000 20.068001 0.167000  RAD 1.0  O 
+SPHERE  CENTER 22.358000 22.903999 0.371000  RAD 1.0  CB 
+SPHERE  CENTER 22.145000 24.591999 0.888000  RAD 1.0  SG 
+SPHERE  CENTER 23.326000 19.826000 1.008000  RAD 1.0  N 
+SPHERE  CENTER 23.436001 18.459999 0.459000  RAD 1.0  CA 
+SPHERE  CENTER 22.958000 17.365000 1.407000  RAD 1.0  C 
+SPHERE  CENTER 22.938000 16.180000 0.999000  RAD 1.0  O 
+SPHERE  CENTER 24.898001 18.084000 0.131000  RAD 1.0  CB 
+SPHERE  CENTER 25.572001 19.129000 -0.776000  RAD 1.0  CG 
+SPHERE  CENTER 27.037001 18.695000 -1.116000  RAD 1.0  CD1 
+SPHERE  CENTER 24.791000 19.488001 -2.049000  RAD 1.0  CD2 
+SPHERE  CENTER 22.545000 17.716000 2.628000  RAD 1.0  N 
+SPHERE  CENTER 22.039000 16.646000 3.528000  RAD 1.0  CA 
+SPHERE  CENTER 20.615999 16.285000 3.113000  RAD 1.0  C 
+SPHERE  CENTER 19.860001 17.136000 2.576000  RAD 1.0  O 
+SPHERE  CENTER 21.764000 17.216999 4.920000  RAD 1.0  CB 
+SPHERE  CENTER 22.813999 18.035000 5.647000  RAD 1.0  CG 
+SPHERE  CENTER 22.152000 18.707001 6.870000  RAD 1.0  CD 
+SPHERE  CENTER 22.980000 19.100000 7.718000  RAD 1.0  OE1 
+SPHERE  CENTER 21.086000 19.403999 6.779000  RAD 1.0  OE2 
+SPHERE  CENTER 20.254000 15.031000 3.334000  RAD 1.0  N 
+SPHERE  CENTER 18.892000 14.554000 3.034000  RAD 1.0  CA 
+SPHERE  CENTER 17.954000 15.160000 4.079000  RAD 1.0  C 
+SPHERE  CENTER 18.443001 15.606000 5.146000  RAD 1.0  O 
+SPHERE  CENTER 18.910000 13.045000 3.274000  RAD 1.0  CB 
+SPHERE  CENTER 20.226000 12.742000 4.021000  RAD 1.0  CG 
+SPHERE  CENTER 21.107000 14.009000 3.934000  RAD 1.0  CD 
+SPHERE  CENTER 16.681999 15.232000 3.767000  RAD 1.0  N 
+SPHERE  CENTER 15.690000 15.852000 4.661000  RAD 1.0  CA 
+SPHERE  CENTER 15.550000 15.006000 5.916000  RAD 1.0  C 
+SPHERE  CENTER 15.693000 13.769000 5.836000  RAD 1.0  O 
+SPHERE  CENTER 14.367000 15.707000 3.867000  RAD 1.0  CB 
+SPHERE  CENTER 14.571000 14.716000 2.710000  RAD 1.0  CG 
+SPHERE  CENTER 16.090000 14.597000 2.574000  RAD 1.0  CD 
+SPHERE  CENTER 15.365000 15.630000 7.042000  RAD 1.0  N 
+SPHERE  CENTER 15.310000 14.908000 8.298000  RAD 1.0  CA 
+SPHERE  CENTER 13.953000 15.177000 8.952000  RAD 1.0  C 
+SPHERE  CENTER 13.699000 16.320000 9.382000  RAD 1.0  O 
+SPHERE  CENTER 16.532000 15.383000 9.122000  RAD 1.0  CB 
+SPHERE  CENTER 16.608000 14.781000 10.525000  RAD 1.0  CG 
+SPHERE  CENTER 17.132000 13.535000 10.707000  RAD 1.0  CD1 
+SPHERE  CENTER 16.155001 15.523000 11.588000  RAD 1.0  CD2 
+SPHERE  CENTER 17.216000 12.999000 11.982000  RAD 1.0  CE1 
+SPHERE  CENTER 16.266001 14.985000 12.862000  RAD 1.0  CE2 
+SPHERE  CENTER 16.808001 13.746000 13.047000  RAD 1.0  CZ 
+SPHERE  CENTER 16.878000 13.192000 14.372000  RAD 1.0  OH 
+SPHERE  CENTER 13.161000 14.146000 9.088000  RAD 1.0  N 
+SPHERE  CENTER 11.802000 14.321000 9.642000  RAD 1.0  CA 
+SPHERE  CENTER 11.855000 14.484000 11.146000  RAD 1.0  C 
+SPHERE  CENTER 11.105000 15.314000 11.759000  RAD 1.0  O 
+SPHERE  CENTER 10.963000 13.105000 9.273000  RAD 1.0  CB 
+SPHERE  CENTER 10.706000 13.192000 7.854000  RAD 1.0  OG1 
+SPHERE  CENTER 9.611000 13.152000 10.045000  RAD 1.0  CG2 
+SPHERE  CENTER 12.789000 13.760000 11.726000  RAD 1.0  N 
+SPHERE  CENTER 13.002000 13.922000 13.198000  RAD 1.0  CA 
+SPHERE  CENTER 12.107000 12.944000 13.909000  RAD 1.0  C 
+SPHERE  CENTER 11.333000 12.212000 13.239000  RAD 1.0  O 
+SPHERE  CENTER 12.235000 12.905000 15.210000  RAD 1.0  N 
+SPHERE  CENTER 11.516000 11.958000 16.066999  RAD 1.0  CA 
+SPHERE  CENTER 10.094000 12.319000 16.468000  RAD 1.0  C 
+SPHERE  CENTER 9.440000 11.442000 17.052000  RAD 1.0  O 
+SPHERE  CENTER 12.272000 11.936000 17.370001  RAD 1.0  CB 
+SPHERE  CENTER 13.164000 13.172000 17.399000  RAD 1.0  CG 
+SPHERE  CENTER 13.281000 13.627000 15.925000  RAD 1.0  CD 
+SPHERE  CENTER 9.629000 13.519000 16.214001  RAD 1.0  N 
+SPHERE  CENTER 8.290000 13.980000 16.615999  RAD 1.0  CA 
+SPHERE  CENTER 7.268000 13.720000 15.515000  RAD 1.0  C 
+SPHERE  CENTER 7.672000 13.397000 14.387000  RAD 1.0  O 
+SPHERE  CENTER 8.279000 15.441000 16.966999  RAD 1.0  CB 
+SPHERE  CENTER 9.221000 15.735000 18.490000  RAD 1.0  SG 
+SPHERE  CENTER 6.027000 13.680000 15.869000  RAD 1.0  N 
+SPHERE  CENTER 5.005000 13.220000 14.945000  RAD 1.0  CA 
+SPHERE  CENTER 3.964000 14.283000 14.630000  RAD 1.0  C 
+SPHERE  CENTER 2.777000 13.949000 14.377000  RAD 1.0  O 
+SPHERE  CENTER 4.310000 11.998000 15.592000  RAD 1.0  CB 
+SPHERE  CENTER 5.273000 10.848000 15.913000  RAD 1.0  CG 
+SPHERE  CENTER 5.781000 10.034000 14.702000  RAD 1.0  CD 
+SPHERE  CENTER 6.855000 9.016000 15.126000  RAD 1.0  CE 
+SPHERE  CENTER 7.357000 8.291000 13.953000  RAD 1.0  NZ 
+SPHERE  CENTER 4.325000 15.549000 14.618000  RAD 1.0  N 
+SPHERE  CENTER 3.513000 16.639999 14.122000  RAD 1.0  CA 
+SPHERE  CENTER 3.561000 16.615000 12.586000  RAD 1.0  C 
+SPHERE  CENTER 4.270000 15.752000 12.023000  RAD 1.0  O 
+SPHERE  CENTER 3.984000 17.995001 14.670000  RAD 1.0  CB 
+SPHERE  CENTER 2.781000 17.424999 11.943000  RAD 1.0  N 
+SPHERE  CENTER 2.700000 17.355000 10.457000  RAD 1.0  CA 
+SPHERE  CENTER 2.875000 18.731001 9.887000  RAD 1.0  C 
+SPHERE  CENTER 1.878000 19.469999 9.653000  RAD 1.0  O 
+SPHERE  CENTER 1.320000 16.787001 9.970000  RAD 1.0  CB 
+SPHERE  CENTER 1.186000 15.339000 10.395000  RAD 1.0  CG 
+SPHERE  CENTER -0.170000 14.751000 9.963000  RAD 1.0  CD 
+SPHERE  CENTER -1.132000 15.455000 10.801000  RAD 1.0  NE 
+SPHERE  CENTER -1.531000 14.913000 11.939000  RAD 1.0  CZ 
+SPHERE  CENTER -1.172000 13.658000 12.165000  RAD 1.0  NH1 
+SPHERE  CENTER -2.202000 15.647000 12.795000  RAD 1.0  NH2 
+SPHERE  CENTER 4.154000 19.110001 9.817000  RAD 1.0  N 
+SPHERE  CENTER 4.595000 20.444000 9.391000  RAD 1.0  CA 
+SPHERE  CENTER 5.249000 20.388000 8.012000  RAD 1.0  C 
+SPHERE  CENTER 6.193000 19.612000 7.834000  RAD 1.0  O 
+SPHERE  CENTER 5.590000 20.988001 10.452000  RAD 1.0  CB 
+SPHERE  CENTER 4.792000 21.062000 11.815000  RAD 1.0  CG1 
+SPHERE  CENTER 5.985000 22.451000 10.085000  RAD 1.0  CG2 
+SPHERE  CENTER 5.689000 21.535999 12.955000  RAD 1.0  CD1 
+SPHERE  CENTER 4.586000 20.955999 7.035000  RAD 1.0  N 
+SPHERE  CENTER 5.154000 20.879000 5.697000  RAD 1.0  CA 
+SPHERE  CENTER 6.286000 21.912001 5.572000  RAD 1.0  C 
+SPHERE  CENTER 6.156000 23.146000 5.785000  RAD 1.0  O 
+SPHERE  CENTER 4.095000 21.205000 4.648000  RAD 1.0  CB 
+SPHERE  CENTER 2.836000 20.316999 4.886000  RAD 1.0  CG1 
+SPHERE  CENTER 4.655000 20.930000 3.250000  RAD 1.0  CG2 
+SPHERE  CENTER 3.122000 18.813999 4.850000  RAD 1.0  CD1 
+SPHERE  CENTER 7.451000 21.372000 5.297000  RAD 1.0  N 
+SPHERE  CENTER 8.602000 22.257000 5.060000  RAD 1.0  CA 
+SPHERE  CENTER 9.150000 21.950001 3.673000  RAD 1.0  C 
+SPHERE  CENTER 8.840000 20.896000 3.088000  RAD 1.0  O 
+SPHERE  CENTER 9.698000 21.896999 6.092000  RAD 1.0  CB 
+SPHERE  CENTER 9.226000 22.299999 7.493000  RAD 1.0  CG 
+SPHERE  CENTER 9.248000 23.850000 7.622000  RAD 1.0  CD 
+SPHERE  CENTER 8.810000 24.311001 8.962000  RAD 1.0  NE 
+SPHERE  CENTER 9.575000 24.336000 10.075000  RAD 1.0  CZ 
+SPHERE  CENTER 10.888000 24.077000 10.044000  RAD 1.0  NH1 
+SPHERE  CENTER 9.050000 24.893000 11.170000  RAD 1.0  NH2 
+SPHERE  CENTER 10.178000 22.695000 3.318000  RAD 1.0  N 
+SPHERE  CENTER 10.959000 22.444000 2.085000  RAD 1.0  CA 
+SPHERE  CENTER 12.407000 22.010000 2.386000  RAD 1.0  C 
+SPHERE  CENTER 12.987000 22.511999 3.378000  RAD 1.0  O 
+SPHERE  CENTER 10.997000 23.770000 1.282000  RAD 1.0  CB 
+SPHERE  CENTER 9.641000 24.038000 0.627000  RAD 1.0  CG 
+SPHERE  CENTER 8.639000 24.591999 1.399000  RAD 1.0  CD1 
+SPHERE  CENTER 9.451000 23.725000 -0.691000  RAD 1.0  CD2 
+SPHERE  CENTER 7.403000 24.861000 0.831000  RAD 1.0  CE1 
+SPHERE  CENTER 8.213000 23.993000 -1.249000  RAD 1.0  CE2 
+SPHERE  CENTER 7.215000 24.576000 -0.494000  RAD 1.0  CZ 
+SPHERE  CENTER 5.879000 24.768999 -1.060000  RAD 1.0  OH 
+SPHERE  CENTER 12.977000 21.141001 1.535000  RAD 1.0  N 
+SPHERE  CENTER 14.449000 20.892000 1.626000  RAD 1.0  CA 
+SPHERE  CENTER 15.018000 21.045000 0.237000  RAD 1.0  C 
+SPHERE  CENTER 14.250000 20.837000 -0.740000  RAD 1.0  O 
+SPHERE  CENTER 14.664000 19.434999 2.142000  RAD 1.0  CB 
+SPHERE  CENTER 14.283000 18.275999 1.191000  RAD 1.0  CG 
+SPHERE  CENTER 15.290000 17.639000 0.506000  RAD 1.0  CD1 
+SPHERE  CENTER 12.962000 17.907000 0.976000  RAD 1.0  CD2 
+SPHERE  CENTER 14.981000 16.632000 -0.392000  RAD 1.0  CE1 
+SPHERE  CENTER 12.638000 16.909000 0.061000  RAD 1.0  CE2 
+SPHERE  CENTER 13.673000 16.261999 -0.626000  RAD 1.0  CZ 
+SPHERE  CENTER 16.336000 21.281000 0.152000  RAD 1.0  N 
+SPHERE  CENTER 16.948000 21.292000 -1.153000  RAD 1.0  CA 
+SPHERE  CENTER 17.365000 19.888000 -1.542000  RAD 1.0  C 
+SPHERE  CENTER 18.009001 19.184000 -0.744000  RAD 1.0  O 
+SPHERE  CENTER 18.188000 22.194000 -1.071000  RAD 1.0  CB 
+SPHERE  CENTER 18.906000 22.263000 -2.442000  RAD 1.0  CG 
+SPHERE  CENTER 20.089001 21.621000 -2.663000  RAD 1.0  CD1 
+SPHERE  CENTER 18.361000 23.033001 -3.436000  RAD 1.0  CD2 
+SPHERE  CENTER 20.733000 21.778999 -3.896000  RAD 1.0  CE1 
+SPHERE  CENTER 18.990999 23.184999 -4.662000  RAD 1.0  CE2 
+SPHERE  CENTER 20.184999 22.562000 -4.864000  RAD 1.0  CZ 
+SPHERE  CENTER 20.826000 22.768000 -6.115000  RAD 1.0  OH 
+SPHERE  CENTER 16.913000 19.452999 -2.726000  RAD 1.0  N 
+SPHERE  CENTER 17.295000 18.160000 -3.291000  RAD 1.0  CA 
+SPHERE  CENTER 18.406000 18.332001 -4.341000  RAD 1.0  C 
+SPHERE  CENTER 18.166000 18.843000 -5.464000  RAD 1.0  O 
+SPHERE  CENTER 16.052000 17.558001 -3.946000  RAD 1.0  CB 
+SPHERE  CENTER 16.354000 16.226999 -4.626000  RAD 1.0  CG 
+SPHERE  CENTER 17.531000 15.754000 -4.725000  RAD 1.0  OD1 
+SPHERE  CENTER 15.234000 15.549000 -4.870000  RAD 1.0  ND2 
+SPHERE  CENTER 19.655001 18.124001 -3.871000  RAD 1.0  N 
+SPHERE  CENTER 20.851000 18.420000 -4.681000  RAD 1.0  CA 
+SPHERE  CENTER 20.920000 17.650000 -6.010000  RAD 1.0  C 
+SPHERE  CENTER 21.385000 18.257000 -6.997000  RAD 1.0  O 
+SPHERE  CENTER 22.112000 18.070999 -3.866000  RAD 1.0  CB 
+SPHERE  CENTER 20.333000 16.480000 -6.081000  RAD 1.0  N 
+SPHERE  CENTER 20.243999 15.784000 -7.383000  RAD 1.0  CA 
+SPHERE  CENTER 19.287001 16.482000 -8.327000  RAD 1.0  C 
+SPHERE  CENTER 19.478001 16.368999 -9.556000  RAD 1.0  O 
+SPHERE  CENTER 19.732000 14.353000 -7.259000  RAD 1.0  CB 
+SPHERE  CENTER 20.799999 13.485000 -6.626000  RAD 1.0  CG 
+SPHERE  CENTER 20.299000 12.037000 -6.533000  RAD 1.0  CD 
+SPHERE  CENTER 21.386999 11.067000 -6.033000  RAD 1.0  CE 
+SPHERE  CENTER 21.820999 11.437000 -4.681000  RAD 1.0  NZ 
+SPHERE  CENTER 18.212999 17.041000 -7.772000  RAD 1.0  N 
+SPHERE  CENTER 17.181999 17.617001 -8.631000  RAD 1.0  CA 
+SPHERE  CENTER 17.468000 19.070000 -8.921000  RAD 1.0  C 
+SPHERE  CENTER 16.909000 19.707001 -9.863000  RAD 1.0  O 
+SPHERE  CENTER 15.833000 17.423000 -7.901000  RAD 1.0  CB 
+SPHERE  CENTER 18.299000 19.622000 -8.061000  RAD 1.0  N 
+SPHERE  CENTER 18.625999 21.035999 -8.237000  RAD 1.0  CA 
+SPHERE  CENTER 17.587999 22.051001 -7.738000  RAD 1.0  C 
+SPHERE  CENTER 17.702000 23.257999 -8.056000  RAD 1.0  O 
+SPHERE  CENTER 16.632000 21.566000 -6.970000  RAD 1.0  N 
+SPHERE  CENTER 15.576000 22.431999 -6.478000  RAD 1.0  CA 
+SPHERE  CENTER 14.947000 21.879999 -5.199000  RAD 1.0  C 
+SPHERE  CENTER 15.304000 20.784000 -4.719000  RAD 1.0  O 
+SPHERE  CENTER 14.553000 22.764999 -7.568000  RAD 1.0  CB 
+SPHERE  CENTER 14.018000 21.514000 -8.283000  RAD 1.0  CG 
+SPHERE  CENTER 13.211000 20.593000 -7.394000  RAD 1.0  CD1 
+SPHERE  CENTER 13.189000 21.898001 -9.518000  RAD 1.0  CD2 
+SPHERE  CENTER 14.114000 22.691999 -4.605000  RAD 1.0  N 
+SPHERE  CENTER 13.591000 22.299999 -3.306000  RAD 1.0  CA 
+SPHERE  CENTER 12.246000 21.612000 -3.398000  RAD 1.0  C 
+SPHERE  CENTER 11.508000 21.862000 -4.381000  RAD 1.0  O 
+SPHERE  CENTER 13.406000 23.628000 -2.540000  RAD 1.0  CB 
+SPHERE  CENTER 14.977000 24.433001 -2.196000  RAD 1.0  SG 
+SPHERE  CENTER 12.005000 20.672001 -2.530000  RAD 1.0  N 
+SPHERE  CENTER 10.813000 19.820999 -2.569000  RAD 1.0  CA 
+SPHERE  CENTER 10.208000 19.822001 -1.167000  RAD 1.0  C 
+SPHERE  CENTER 10.918000 20.218000 -0.210000  RAD 1.0  O 
+SPHERE  CENTER 11.110000 18.377001 -3.007000  RAD 1.0  CB 
+SPHERE  CENTER 11.604000 18.464001 -4.496000  RAD 1.0  CG 
+SPHERE  CENTER 12.041000 17.093000 -4.992000  RAD 1.0  CD 
+SPHERE  CENTER 12.104000 16.884001 -6.223000  RAD 1.0  OE1 
+SPHERE  CENTER 12.461000 16.246000 -4.115000  RAD 1.0  NE2 
+SPHERE  CENTER 8.983000 19.459000 -1.072000  RAD 1.0  N 
+SPHERE  CENTER 8.377000 19.427999 0.280000  RAD 1.0  CA 
+SPHERE  CENTER 8.573000 18.100000 0.950000  RAD 1.0  C 
+SPHERE  CENTER 8.785000 17.013000 0.347000  RAD 1.0  O 
+SPHERE  CENTER 6.844000 19.700001 0.273000  RAD 1.0  CB 
+SPHERE  CENTER 6.304000 18.825001 -0.706000  RAD 1.0  OG1 
+SPHERE  CENTER 6.585000 21.149000 -0.177000  RAD 1.0  CG2 
+SPHERE  CENTER 8.526000 18.187000 2.280000  RAD 1.0  N 
+SPHERE  CENTER 8.582000 16.999001 3.087000  RAD 1.0  CA 
+SPHERE  CENTER 7.801000 17.273001 4.382000  RAD 1.0  C 
+SPHERE  CENTER 7.554000 18.469000 4.665000  RAD 1.0  O 
+SPHERE  CENTER 10.066000 16.503000 3.399000  RAD 1.0  CB 
+SPHERE  CENTER 10.840000 17.323999 4.462000  RAD 1.0  CG 
+SPHERE  CENTER 11.188000 16.711000 5.670000  RAD 1.0  CD1 
+SPHERE  CENTER 11.224000 18.618999 4.188000  RAD 1.0  CD2 
+SPHERE  CENTER 11.912000 17.452999 6.617000  RAD 1.0  CE1 
+SPHERE  CENTER 11.948000 19.333000 5.129000  RAD 1.0  CE2 
+SPHERE  CENTER 12.277000 18.763000 6.344000  RAD 1.0  CZ 
+SPHERE  CENTER 7.455000 16.219999 5.116000  RAD 1.0  N 
+SPHERE  CENTER 6.756000 16.414000 6.390000  RAD 1.0  CA 
+SPHERE  CENTER 7.798000 16.358999 7.491000  RAD 1.0  C 
+SPHERE  CENTER 8.422000 15.296000 7.692000  RAD 1.0  O 
+SPHERE  CENTER 5.716000 15.281000 6.557000  RAD 1.0  CB 
+SPHERE  CENTER 4.973000 15.432000 7.882000  RAD 1.0  CG1 
+SPHERE  CENTER 4.667000 15.326000 5.371000  RAD 1.0  CG2 
+SPHERE  CENTER 7.953000 17.509001 8.095000  RAD 1.0  N 
+SPHERE  CENTER 8.816000 17.659000 9.286000  RAD 1.0  CA 
+SPHERE  CENTER 7.941000 17.294001 10.498000  RAD 1.0  C 
+SPHERE  CENTER 6.818000 17.832001 10.661000  RAD 1.0  O 
+SPHERE  CENTER 9.260000 19.136000 9.274000  RAD 1.0  CB 
+SPHERE  CENTER 10.066000 19.506001 10.540000  RAD 1.0  CG 
+SPHERE  CENTER 11.058000 18.667999 11.032000  RAD 1.0  CD1 
+SPHERE  CENTER 9.728000 20.677999 11.181000  RAD 1.0  CD2 
+SPHERE  CENTER 11.713000 19.021999 12.217000  RAD 1.0  CE1 
+SPHERE  CENTER 10.401000 21.042000 12.346000  RAD 1.0  CE2 
+SPHERE  CENTER 11.371000 20.211000 12.851000  RAD 1.0  CZ 
+SPHERE  CENTER 12.040000 20.579000 14.049000  RAD 1.0  OH 
+SPHERE  CENTER 8.505000 16.504999 11.400000  RAD 1.0  N 
+SPHERE  CENTER 7.774000 16.076000 12.622000  RAD 1.0  CA 
+SPHERE  CENTER 7.696000 17.099001 13.728000  RAD 1.0  C 
+SPHERE  CENTER 6.978000 16.834999 14.718000  RAD 1.0  O 
+SPHERE  CENTER 8.385000 18.202000 13.646000  RAD 1.0  N 
+SPHERE  CENTER 8.275000 19.365999 14.533000  RAD 1.0  CA 
+SPHERE  CENTER 9.338000 19.430000 15.620000  RAD 1.0  C 
+SPHERE  CENTER 9.309000 20.379999 16.415001  RAD 1.0  O 
+SPHERE  CENTER 10.317000 18.555000 15.610000  RAD 1.0  N 
+SPHERE  CENTER 11.453000 18.707001 16.541000  RAD 1.0  CA 
+SPHERE  CENTER 12.763000 18.232000 15.950000  RAD 1.0  C 
+SPHERE  CENTER 12.753000 17.224001 15.201000  RAD 1.0  O 
+SPHERE  CENTER 11.179000 18.055000 17.937000  RAD 1.0  CB 
+SPHERE  CENTER 11.154000 16.283001 17.922001  RAD 1.0  SG 
+SPHERE  CENTER 13.828000 18.788000 16.528999  RAD 1.0  N 
+SPHERE  CENTER 15.222000 18.386999 16.261999  RAD 1.0  CA 
+SPHERE  CENTER 15.644000 18.605000 14.798000  RAD 1.0  C 
+SPHERE  CENTER 16.306000 17.708000 14.224000  RAD 1.0  O 
+SPHERE  CENTER 15.486000 16.941000 16.719000  RAD 1.0  CB 
+SPHERE  CENTER 14.949000 16.624001 18.146999  RAD 1.0  CG 
+SPHERE  CENTER 15.484000 17.593000 19.195000  RAD 1.0  CD 
+SPHERE  CENTER 15.081000 17.068001 20.497000  RAD 1.0  NE 
+SPHERE  CENTER 15.268000 17.830999 21.573999  RAD 1.0  CZ 
+SPHERE  CENTER 15.870000 19.020000 21.452999  RAD 1.0  NH1 
+SPHERE  CENTER 14.930000 17.320999 22.753000  RAD 1.0  NH2 
+SPHERE  CENTER 15.154000 19.670000 14.180000  RAD 1.0  N 
+SPHERE  CENTER 15.461000 19.893999 12.733000  RAD 1.0  CA 
+SPHERE  CENTER 16.969000 19.924000 12.482000  RAD 1.0  C 
+SPHERE  CENTER 17.752001 20.431000 13.327000  RAD 1.0  O 
+SPHERE  CENTER 14.918000 21.275000 12.366000  RAD 1.0  CB 
+SPHERE  CENTER 17.282000 19.622000 11.271000  RAD 1.0  N 
+SPHERE  CENTER 18.584999 19.886999 10.687000  RAD 1.0  CA 
+SPHERE  CENTER 18.461000 21.087000 9.753000  RAD 1.0  C 
+SPHERE  CENTER 17.371000 21.708000 9.790000  RAD 1.0  O 
+SPHERE  CENTER 18.961000 18.612000 9.934000  RAD 1.0  CB 
+SPHERE  CENTER 19.486000 17.514999 10.843000  RAD 1.0  CG 
+SPHERE  CENTER 20.042999 16.424999 9.926000  RAD 1.0  CD 
+SPHERE  CENTER 20.782000 15.386000 10.779000  RAD 1.0  CE 
+SPHERE  CENTER 20.985001 14.137000 10.021000  RAD 1.0  NZ 
+SPHERE  CENTER 19.577000 21.643999 9.215000  RAD 1.0  N 
+SPHERE  CENTER 19.570999 22.903000 8.543000  RAD 1.0  CA 
+SPHERE  CENTER 18.898001 22.847000 7.144000  RAD 1.0  C 
+SPHERE  CENTER 18.476000 23.930000 6.690000  RAD 1.0  O 
+SPHERE  CENTER 20.981001 23.469999 8.429000  RAD 1.0  CB 
+SPHERE  CENTER 21.461000 24.047001 9.786000  RAD 1.0  CG 
+SPHERE  CENTER 22.614000 25.047001 9.608000  RAD 1.0  CD 
+SPHERE  CENTER 22.118999 26.403999 9.384000  RAD 1.0  NE 
+SPHERE  CENTER 22.948000 27.426001 9.370000  RAD 1.0  CZ 
+SPHERE  CENTER 24.253000 27.187000 9.415000  RAD 1.0  NH1 
+SPHERE  CENTER 22.472000 28.634001 9.297000  RAD 1.0  NH2 
+SPHERE  CENTER 18.870001 21.715000 6.474000  RAD 1.0  N 
+SPHERE  CENTER 18.209999 21.712999 5.169000  RAD 1.0  CA 
+SPHERE  CENTER 16.671000 21.559000 5.372000  RAD 1.0  C 
+SPHERE  CENTER 16.068001 20.466000 5.197000  RAD 1.0  O 
+SPHERE  CENTER 18.745001 20.506001 4.379000  RAD 1.0  CB 
+SPHERE  CENTER 18.295000 20.591999 2.909000  RAD 1.0  CG 
+SPHERE  CENTER 17.721001 21.629000 2.499000  RAD 1.0  OD1 
+SPHERE  CENTER 18.664000 19.563999 2.134000  RAD 1.0  ND2 
+SPHERE  CENTER 16.097000 22.643000 5.820000  RAD 1.0  N 
+SPHERE  CENTER 14.676000 22.662001 6.349000  RAD 1.0  CA 
+SPHERE  CENTER 14.157000 24.101999 6.384000  RAD 1.0  C 
+SPHERE  CENTER 14.715000 24.959000 7.120000  RAD 1.0  O 
+SPHERE  CENTER 14.577000 21.951000 7.736000  RAD 1.0  CB 
+SPHERE  CENTER 13.128000 21.861000 8.301000  RAD 1.0  CG 
+SPHERE  CENTER 12.432000 22.889000 8.208000  RAD 1.0  OD1 
+SPHERE  CENTER 12.975000 21.035000 9.288000  RAD 1.0  ND2 
+SPHERE  CENTER 13.324000 24.438000 5.381000  RAD 1.0  N 
+SPHERE  CENTER 12.918000 25.816999 5.120000  RAD 1.0  CA 
+SPHERE  CENTER 11.388000 25.961000 5.164000  RAD 1.0  C 
+SPHERE  CENTER 10.669000 24.966000 4.915000  RAD 1.0  O 
+SPHERE  CENTER 13.372000 26.372999 3.741000  RAD 1.0  CB 
+SPHERE  CENTER 14.913000 26.191999 3.701000  RAD 1.0  CG 
+SPHERE  CENTER 15.492000 25.002001 3.268000  RAD 1.0  CD1 
+SPHERE  CENTER 15.705000 27.252001 4.053000  RAD 1.0  CD2 
+SPHERE  CENTER 16.877001 24.881001 3.132000  RAD 1.0  CE1 
+SPHERE  CENTER 17.108999 27.125999 3.941000  RAD 1.0  CE2 
+SPHERE  CENTER 17.659000 25.957001 3.487000  RAD 1.0  CZ 
+SPHERE  CENTER 10.949000 27.146999 5.460000  RAD 1.0  N 
+SPHERE  CENTER 9.480000 27.343000 5.498000  RAD 1.0  CA 
+SPHERE  CENTER 8.875000 27.670000 4.157000  RAD 1.0  C 
+SPHERE  CENTER 7.634000 27.622999 4.057000  RAD 1.0  O 
+SPHERE  CENTER 9.045000 28.475000 6.433000  RAD 1.0  CB 
+SPHERE  CENTER 9.258000 27.945999 7.875000  RAD 1.0  CG 
+SPHERE  CENTER 9.119000 29.052000 8.948000  RAD 1.0  CD 
+SPHERE  CENTER 10.025000 28.736000 10.167000  RAD 1.0  CE 
+SPHERE  CENTER 9.826000 29.728001 11.231000  RAD 1.0  NZ 
+SPHERE  CENTER 9.687000 27.909000 3.152000  RAD 1.0  N 
+SPHERE  CENTER 9.124000 28.167999 1.840000  RAD 1.0  CA 
+SPHERE  CENTER 10.108000 27.719000 0.765000  RAD 1.0  C 
+SPHERE  CENTER 11.332000 27.660000 1.047000  RAD 1.0  O 
+SPHERE  CENTER 8.778000 29.648001 1.642000  RAD 1.0  CB 
+SPHERE  CENTER 10.000000 30.391001 1.484000  RAD 1.0  OG 
+SPHERE  CENTER 9.604000 27.471001 -0.422000  RAD 1.0  N 
+SPHERE  CENTER 10.526000 27.160999 -1.512000  RAD 1.0  CA 
+SPHERE  CENTER 11.423000 28.346001 -1.863000  RAD 1.0  C 
+SPHERE  CENTER 12.634000 28.115000 -2.136000  RAD 1.0  O 
+SPHERE  CENTER 9.782000 26.679001 -2.783000  RAD 1.0  CB 
+SPHERE  CENTER 10.966000 29.570000 -1.682000  RAD 1.0  N 
+SPHERE  CENTER 11.751000 30.764000 -1.998000  RAD 1.0  CA 
+SPHERE  CENTER 12.900000 30.964001 -1.040000  RAD 1.0  C 
+SPHERE  CENTER 14.032000 31.282000 -1.463000  RAD 1.0  O 
+SPHERE  CENTER 10.871000 32.021999 -2.024000  RAD 1.0  CB 
+SPHERE  CENTER 9.868000 32.069000 -3.200000  RAD 1.0  CG 
+SPHERE  CENTER 8.525000 31.417000 -2.847000  RAD 1.0  CD 
+SPHERE  CENTER 7.573000 31.562000 -3.638000  RAD 1.0  OE1 
+SPHERE  CENTER 8.368000 30.636999 -1.865000  RAD 1.0  OE2 
+SPHERE  CENTER 12.658000 30.686001 0.225000  RAD 1.0  N 
+SPHERE  CENTER 13.804000 30.775000 1.163000  RAD 1.0  CA 
+SPHERE  CENTER 14.824000 29.667000 0.941000  RAD 1.0  C 
+SPHERE  CENTER 16.058001 29.903999 1.049000  RAD 1.0  O 
+SPHERE  CENTER 13.347000 30.500000 2.601000  RAD 1.0  CB 
+SPHERE  CENTER 12.813000 31.775999 3.236000  RAD 1.0  CG 
+SPHERE  CENTER 12.716000 32.875000 2.613000  RAD 1.0  OD1 
+SPHERE  CENTER 12.096000 31.598000 4.247000  RAD 1.0  OD2 
+SPHERE  CENTER 14.305000 28.478001 0.644000  RAD 1.0  N 
+SPHERE  CENTER 15.128000 27.301001 0.379000  RAD 1.0  CA 
+SPHERE  CENTER 16.006001 27.523001 -0.852000  RAD 1.0  C 
+SPHERE  CENTER 17.247999 27.267000 -0.809000  RAD 1.0  O 
+SPHERE  CENTER 14.238000 26.045000 0.259000  RAD 1.0  CB 
+SPHERE  CENTER 15.047000 24.530001 -0.176000  RAD 1.0  SG 
+SPHERE  CENTER 15.384000 28.062000 -1.870000  RAD 1.0  N 
+SPHERE  CENTER 16.191999 28.302000 -3.048000  RAD 1.0  CA 
+SPHERE  CENTER 17.171000 29.452999 -2.841000  RAD 1.0  C 
+SPHERE  CENTER 18.246000 29.474001 -3.490000  RAD 1.0  O 
+SPHERE  CENTER 15.267000 28.570999 -4.266000  RAD 1.0  CB 
+SPHERE  CENTER 14.634000 27.261000 -4.708000  RAD 1.0  CG 
+SPHERE  CENTER 15.759000 25.962000 -5.253000  RAD 1.0  SD 
+SPHERE  CENTER 16.306999 26.625000 -6.805000  RAD 1.0  CE 
+SPHERE  CENTER 16.775999 30.469999 -2.099000  RAD 1.0  N 
+SPHERE  CENTER 17.652000 31.617001 -1.869000  RAD 1.0  CA 
+SPHERE  CENTER 18.910000 31.125999 -1.141000  RAD 1.0  C 
+SPHERE  CENTER 20.049999 31.469999 -1.556000  RAD 1.0  O 
+SPHERE  CENTER 16.934000 32.595001 -0.930000  RAD 1.0  CB 
+SPHERE  CENTER 17.721001 33.839001 -0.540000  RAD 1.0  CG 
+SPHERE  CENTER 16.740999 35.039001 -0.291000  RAD 1.0  CD 
+SPHERE  CENTER 15.472000 34.667999 0.404000  RAD 1.0  NE 
+SPHERE  CENTER 14.256000 34.889999 -0.074000  RAD 1.0  CZ 
+SPHERE  CENTER 13.983000 35.465000 -1.233000  RAD 1.0  NH1 
+SPHERE  CENTER 13.260000 34.542999 0.660000  RAD 1.0  NH2 
+SPHERE  CENTER 18.726999 30.198999 -0.237000  RAD 1.0  N 
+SPHERE  CENTER 19.889999 29.693001 0.496000  RAD 1.0  CA 
+SPHERE  CENTER 20.636999 28.649000 -0.297000  RAD 1.0  C 
+SPHERE  CENTER 21.871000 28.686001 -0.287000  RAD 1.0  O 
+SPHERE  CENTER 19.416000 29.106001 1.823000  RAD 1.0  CB 
+SPHERE  CENTER 18.643999 30.132000 2.537000  RAD 1.0  OG1 
+SPHERE  CENTER 20.615999 28.506001 2.662000  RAD 1.0  CG2 
+SPHERE  CENTER 19.988001 27.747000 -0.961000  RAD 1.0  N 
+SPHERE  CENTER 20.669001 26.563999 -1.471000  RAD 1.0  CA 
+SPHERE  CENTER 20.773001 26.534000 -2.963000  RAD 1.0  C 
+SPHERE  CENTER 21.341000 25.552999 -3.498000  RAD 1.0  O 
+SPHERE  CENTER 19.955999 25.260000 -1.056000  RAD 1.0  CB 
+SPHERE  CENTER 20.128000 24.914000 0.713000  RAD 1.0  SG 
+SPHERE  CENTER 20.132000 27.441999 -3.608000  RAD 1.0  N 
+SPHERE  CENTER 19.987000 27.268000 -5.071000  RAD 1.0  CA 
+SPHERE  CENTER 21.257000 27.575001 -5.849000  RAD 1.0  C 
+SPHERE  CENTER 21.386000 27.129000 -7.018000  RAD 1.0  O 
+SPHERE  CENTER 22.225000 28.049999 -5.113000  RAD 1.0  N 
+SPHERE  CENTER 23.639000 28.131001 -5.505000  RAD 1.0  CA 
+SPHERE  CENTER 23.886999 29.393000 -6.316000  RAD 1.0  C 
+SPHERE  CENTER 22.948999 30.065001 -6.822000  RAD 1.0  O 
+SPHERE  CENTER 25.146000 29.681000 -6.493000  RAD 1.0  N 
+SPHERE  CENTER 25.617001 30.840000 -7.256000  RAD 1.0  CA 
+SPHERE  CENTER 25.247999 30.735001 -8.729000  RAD 1.0  C 
+SPHERE  CENTER 24.962000 31.791000 -9.369000  RAD 1.0  O 
+SPHERE  CENTER 27.160000 30.980000 -7.146000  RAD 1.0  CB 
+SPHERE  CENTER 24.919001 29.594000 -9.172000  RAD 1.0  OXT 
+
+PLANE 
+  CENTER 0.0 -25.0 0.0 
+  NORMAL 0.0  1.0 0.0  
+  TEXTURE 
+    AMBIENT  0.1 DIFFUSE  0.9 SPECULAR 0.0  OPACITY 1.0 
+    COLOR  1.0 1.0 1.0 
+    TEXFUNC 0 
+	
+END_SCENE
diff --git a/examples/parallel_for/tacheon/index.html b/examples/parallel_for/tacheon/index.html
new file mode 100644
index 0000000..53b63ad
--- /dev/null
+++ b/examples/parallel_for/tacheon/index.html
@@ -0,0 +1,203 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Parallel raytracer / renderer that demonstrates the use of parallel_for.
+
+<P><I>
+This example includes software developed by John E. Stone.  See
+<A HREF=#copyright>here</A> for copyright information.
+</I></P>
+
+<P>
+This example is a 2-D raytracer/renderer that visually shows different parallel scheduling
+methods and their resulting speedup.  The code was parallelized by speculating
+that each pixel could be rendered in parallel.  The resulting parallel code was
+then checked for correctness by using Intel® Thread Checker, which
+pointed out where synchronization was needed.  Minimal synchronization was then
+inserted into the parallel code.  The resulting parallel code exhibits good speedup.
+</P>
+
+<P>
+The following versions of the example are provided:
+<DL>
+<DT>serial
+<DD>Original sequential version.
+<DT>tbb1d
+<DD>Parallel version that uses Threading Building Blocks and blocked_range to parallelize
+	over tasks that are groups of scan-lines.
+    <UL>
+    <LI>By default, this version uses one thread per available processor.  To change this
+	default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running.
+    <LI>This version uses the preview feature: auto_range_partitioner.  No grain size is provided to blocked_range.
+        The blocked_range class uses a default grain size of 1 when none is provided.  However, the auto_range_partitioner 
+        controls the amount of range splitting dynamically at runtime, resulting in sub-ranges of varying sizes.  
+    </UL>
+<DT>tbb
+<DD>Parallel version that uses Threading Building Blocks and blocked_range2d to parallelize
+	over tasks that are rectangular sub-areas.
+    <UL>
+    <LI>By default, this version uses one thread per available processor.  To change this
+	default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running.
+    <LI>This version uses a reasonable task grain size by default.  To change this default,
+	set the TBB_GRAINSIZE environment variable to the desired grain size before running.
+	The grain size corresponds to the number of pixels (in the X or Y direction, for a
+	rectangular sub-area) in each parallel task.
+    </UL>
+</DL>
+</P>
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="src/video.cpp">src/video.cpp</A>
+<DD>Source code for main program and GUI interfaces.
+<DT><A HREF="src/trace.serial.cpp">src/trace.serial.cpp</A>
+<DD>Source code for original sequential version of example.
+<DT><A HREF="src/trace.tbb1d.cpp">src/trace.tbb1d.cpp</A>
+<DD>Source code for Threading Building Blocks blocked_range (scan-line) version of example.
+<DT><A HREF="src/trace.tbb.cpp">src/trace.tbb.cpp</A>
+<DD>Source code for Threading Building Blocks blocked_range2d (rectangular sub-area) version of example.
+<DT>(src/*.cpp)
+<DD>Remainder of source code for example.
+<DT>(src/*.h)
+<DD>Remainder of include files for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="src">src</A>
+<DD>Contains source code and include files for the example.
+<DT><A HREF="dat">dat</A>
+<DD>Contains data sets for running the example.
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<P>
+For Windows* systems, Microsoft* Visual Studio* projects are provided for each of the above versions.
+</P>
+
+<P>
+The Makefile supports the following build targets (in addition to the <A HREF=../../index.html#build>general</A> ones).
+Here, <<I>version</I>> is one of the above versions of the example, i.e., {serial, tbb1d, tbb}.
+</P>
+<DL>
+<DT><TT>make <<I>version</I>>[_debug]</TT>
+<DD>Build and run a single version (release or debug).
+    Equivalent to 'make build_<<I>version</I>>[_debug] run_<<I>version</I>>'.
+<DT><TT>make build_<<I>version</I>>[_debug]</TT>
+<DD>Compile and link a single version (release or debug).
+    The resulting executable is left in the directory for the example.
+<DT><TT>make run_<<I>version</I>></TT>
+<DD>Run a single version previously produced by one of the above commands.
+<DT><TT>make [(above options or targets)] DATASET={820spheres, balls, balls3, lattice, model2,
+    teapot, trypsin4pti}</TT>
+<DD>Build and run as above, but run with the specified data set.
+<DT><TT>make [(above options or targets)] ARGS=-D</TT>
+<DD>Build and run as above, but run with disabled run-time display updating for use in making performance measurements
+    <I>(strongly recommended when measuring performance or scalability; see note below)</I>.
+<DT><TT>make [(above options or targets)] UI={con, gdi, dd, x, mac}</TT>
+<DD>Build and run as usual, but build with the specified GUI driver: console, GDI+*, Direct Draw*, X11, or OpenGL*
+	(see the description of the <A HREF=../../common/index.html>common GUI code</A>
+	for more information on available graphics support).
+    For Linux* and Mac OS* X systems, the best available driver is detected automatically by the Makefile.
+    For Windows* systems, UI=gdi is the default GUI driver; compiling with UI=dd may offer superior
+	performance, but can only be used if the Microsoft* Direct Draw* SDK is installed on your system 
+	and if overlay is supported by your graphics card.
+    Use UI=con to build without the GUI for use in making performance measurements
+	<I>(strongly recommended when measuring performance or scalability; see note below)</I>.
+<DT><TT>make [(above options or targets)] XARCH=x64</TT>
+<DD>Build and run as above, but
+    also specify XARCH=x64 (or XARCH=AMD64 for older compilers) when building the example on Windows* as a 64-bit binary.
+<DT><TT>make [(above options or targets)] DDLIB_DIR=<<I>specify path to library directory of Direct Draw* SDK here</I>></TT>
+<DD>If you experience ddraw.lib linking problems, specify the correct library directory via this option.
+</DL>
+
+<H2>Usage</H2>
+Building via the above make commands, or via Visual Studio projects on Windows* systems, produces executable files
+named tacheon.<<I>version</I>>.exe.  To run these executables directly, use one or more of the following commands.
+<DL>
+<DT><TT>tacheon.<<I>version</I>>.exe <<I>dataset</I>></TT>
+<DD>Run this version (release or debug), where <<I>dataset</I>> is the path/name of
+    one of the *.dat files in the <A HREF="dat">dat</A> directory for the example.
+<DT><TT>tacheon.<<I>version</I>>.exe -D <<I>dataset</I>></TT>
+<DD>Run this version (release or debug), but run with disabled run-time display updating
+    for use in making performance measurements
+    <I>(strongly recommended when measuring performance or scalability; see note below)</I>.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the <TT>tbb</TT> example with the GUI turned off
+    (e.g., <TT>make UI=con tbb_debug</TT>; see also the build directions above).
+    <BR>Run it with a small dataset, e.g., <TT>tacheon.tbb.exe -D dat/820spheres.dat</TT>.
+</DL>
+
+<H2>Notes</H2>
+<UL>
+<LI>While running with the GUI display turned on should yield reasonable performance in most cases, <I>running with the GUI
+    display turned off is strongly recommended</I> in order to demonstrate the full performance and scalability of the example.
+<LI>If using the X-windows (X11) GUI on Mac OS* X systems, X11 might not be installed on the system by default.
+    To install X11 on Mac OS* X systems, use the operating system install disk, choose "Optional installs" and select X11 from
+    the "Applications" list.  Alternatively, if X11 is not available, build without the GUI (see build targets above).
+</UL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+
+<I>
+<P>
+<A NAME=copyright>The original source</A> for this example is<BR>
+Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+All rights reserved.
+</P>
+
+<P>
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+</P>
+<OL>
+<LI>Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+<LI>Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+<LI>All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by John E. Stone
+<LI>The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+</OL>
+
+<P>
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+</P>
+</I>
+
+</BODY>
+</HTML>
diff --git a/examples/parallel_for/tacheon/src/api.cpp b/examples/parallel_for/tacheon/src/api.cpp
new file mode 100644
index 0000000..dd4bea2
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/api.cpp
@@ -0,0 +1,431 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * api.c - This file contains all of the API calls that are defined for
+ *         external driver code to use.  
+ * 
+ *  $Id: api.cpp,v 1.5.2.1 2007/06/04 19:23:39 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+
+#include "box.h"
+#include "cylinder.h"
+#include "plane.h"
+#include "quadric.h"
+#include "ring.h"
+#include "sphere.h"
+#include "triangle.h"
+#include "vol.h"
+#include "extvol.h"
+
+#include "texture.h"
+#include "light.h"
+#include "render.h"
+#include "camera.h"
+#include "vector.h"
+#include "intersect.h"
+#include "shade.h"
+#include "util.h"
+#include "imap.h"
+#include "global.h"
+
+#include "video.h"
+
+typedef void * SceneHandle;
+#include "api.h"
+
+
+vector rt_vector(apiflt x, apiflt y, apiflt z) {
+  vector v;
+
+  v.x = x;
+  v.y = y;
+  v.z = z;
+
+  return v;
+}
+
+color rt_color(apiflt r, apiflt g, apiflt b) {
+  color c;
+  
+  c.r = r;
+  c.g = g;
+  c.b = b;
+  
+  return c;
+}
+
+void rt_initialize(int * argc, char ***argv) {
+  rpcmsg msg;
+
+  reset_object();
+  reset_lights();
+  InitTextures();
+
+  if (!parinitted) {
+    parinitted=1;
+
+    msg.type=1; /* setup a ping message */
+  }
+}
+
+void rt_renderscene(SceneHandle voidscene) {
+  scenedef * scene = (scenedef *) voidscene;
+  renderscene(*scene);
+}
+
+void rt_camerasetup(SceneHandle voidscene, apiflt zoom, apiflt aspectratio, 
+	int antialiasing, int raydepth, 
+	vector camcent, vector viewvec, vector upvec) {
+  scenedef * scene = (scenedef *) voidscene;
+
+  vector newupvec;
+  vector newviewvec;
+  vector newrightvec;
+ 
+  VCross((vector *) &upvec, &viewvec, &newrightvec);
+  VNorm(&newrightvec);
+
+  VCross((vector *) &viewvec, &newrightvec, &newupvec);
+  VNorm(&newupvec);
+
+  newviewvec=viewvec;
+  VNorm(&newviewvec);
+
+
+  scene->camzoom=zoom; 
+  scene->aspectratio=aspectratio;
+  scene->antialiasing=antialiasing;
+  scene->raydepth=raydepth; 
+  scene->camcent=camcent;
+  scene->camviewvec=newviewvec;
+  scene->camrightvec=newrightvec;
+  scene->camupvec=newupvec;
+}
+
+void rt_outputfile(SceneHandle voidscene, char * outname) {
+  scenedef * scene = (scenedef *) voidscene;
+  strcpy((char *) &scene->outfilename, outname);
+}
+
+void rt_resolution(SceneHandle voidscene, int hres, int vres) {
+  scenedef * scene = (scenedef *) voidscene;
+  scene->hres=hres;
+  scene->vres=vres;
+}
+
+void rt_verbose(SceneHandle voidscene, int v) {
+  scenedef * scene = (scenedef *) voidscene;
+  scene->verbosemode = v;
+}
+
+void rt_rawimage(SceneHandle voidscene, unsigned char *rawimage) {
+  scenedef * scene = (scenedef *) voidscene;
+  scene->rawimage = rawimage;
+}
+
+void rt_background(SceneHandle voidscene, color col) {
+  scenedef * scene = (scenedef *) voidscene;
+  scene->background.r = col.r;
+  scene->background.g = col.g;
+  scene->background.b = col.b;
+}
+
+void rt_boundmode(SceneHandle voidscene, int mode) {
+  scenedef * scene = (scenedef *) voidscene;
+  scene->boundmode = mode;
+}
+
+void rt_boundthresh(SceneHandle voidscene, int threshold) {
+  scenedef * scene = (scenedef *) voidscene;
+ 
+  if (threshold > 1) {
+    scene->boundthresh = threshold;
+  }
+  else {
+    rtmesg("Ignoring out-of-range automatic bounding threshold.\n");
+    rtmesg("Automatic bounding threshold reset to default.\n");
+    scene->boundthresh = MAXOCTNODES;
+  }
+}
+
+void rt_displaymode(SceneHandle voidscene, int mode) {
+  scenedef * scene = (scenedef *) voidscene;
+  scene->displaymode = mode;
+}
+
+
+void rt_scenesetup(SceneHandle voidscene, char * outname, int hres, int vres, int verbose) {
+  rt_outputfile(voidscene, outname);
+  rt_resolution(voidscene, hres, vres);
+  rt_verbose(voidscene, verbose);
+}
+
+SceneHandle rt_newscene(void) {
+  scenedef * scene;
+  SceneHandle voidscene;
+
+  scene = (scenedef *) malloc(sizeof(scenedef));
+  memset(scene, 0, sizeof(scenedef));             /* clear all valuas to 0  */
+
+  voidscene = (SceneHandle) scene;
+
+  rt_outputfile(voidscene, "/dev/null");   /* default output file (.tga)   */
+  rt_resolution(voidscene, 512, 512);             /* 512x512 resolution     */
+  rt_verbose(voidscene, 0);                       /* verbose messages off   */
+  rt_rawimage(voidscene, NULL);                   /* raw image output off   */
+  rt_boundmode(voidscene, RT_BOUNDING_ENABLED);   /* spatial subdivision on */
+  rt_boundthresh(voidscene, MAXOCTNODES);         /* default threshold      */
+  rt_displaymode(voidscene, RT_DISPLAY_ENABLED);  /* video output on        */
+  rt_camerasetup(voidscene, 1.0, 1.0, 0, 6,
+                 rt_vector(0.0, 0.0, 0.0),
+                 rt_vector(0.0, 0.0, 1.0),
+                 rt_vector(0.0, 1.0, 0.0));
+ 
+  return scene;
+}
+
+void rt_deletescene(SceneHandle scene) {
+  if (scene != NULL)
+    free(scene);
+}
+
+void apitextotex(apitexture * apitex, texture * tex) {
+  switch(apitex->texturefunc) {
+    case 0: 
+      tex->texfunc=(color(*)(void *, void *, void *))(standard_texture);
+      break;
+
+    case 1: 
+      tex->texfunc=(color(*)(void *, void *, void *))(checker_texture);
+      break;
+
+    case 2: 
+      tex->texfunc=(color(*)(void *, void *, void *))(grit_texture);
+      break;
+
+    case 3: 
+      tex->texfunc=(color(*)(void *, void *, void *))(marble_texture);
+      break;
+
+    case 4: 
+      tex->texfunc=(color(*)(void *, void *, void *))(wood_texture);
+      break;
+
+    case 5: 
+      tex->texfunc=(color(*)(void *, void *, void *))(gnoise_texture);
+      break;
+	
+    case 6: 
+      tex->texfunc=(color(*)(void *, void *, void *))(cyl_checker_texture);
+      break;
+
+    case 7: 
+      tex->texfunc=(color(*)(void *, void *, void *))(image_sphere_texture);
+      tex->img=AllocateImage((char *)apitex->imap);
+      break;
+
+    case 8: 
+      tex->texfunc=(color(*)(void *, void *, void *))(image_cyl_texture);
+      tex->img=AllocateImage((char *)apitex->imap);
+      break;
+
+    case 9: 
+      tex->texfunc=(color(*)(void *, void *, void *))(image_plane_texture);
+      tex->img=AllocateImage((char *)apitex->imap);
+      break;
+
+    default: 
+      tex->texfunc=(color(*)(void *, void *, void *))(standard_texture);
+      break;
+  }
+
+       tex->ctr = apitex->ctr;
+       tex->rot = apitex->rot;
+     tex->scale = apitex->scale;
+      tex->uaxs = apitex->uaxs;
+      tex->vaxs = apitex->vaxs;
+   tex->ambient = apitex->ambient;
+   tex->diffuse = apitex->diffuse;
+  tex->specular = apitex->specular;
+   tex->opacity = apitex->opacity;
+       tex->col = apitex->col; 
+
+  tex->islight = 0;
+  tex->shadowcast = 1;
+  tex->phong = 0.0;
+  tex->phongexp = 0.0;
+  tex->phongtype = 0;
+}
+
+void * rt_texture(apitexture * apitex) {
+  texture * tex;
+
+  tex=(texture *)rt_getmem(sizeof(texture));
+  apitextotex(apitex, tex); 
+  return(tex);
+}
+
+void rt_tex_color(void * voidtex, color col) {
+  texture * tex = (texture *) voidtex;
+  tex->col = col;
+}
+
+void rt_tex_phong(void * voidtex, apiflt phong, apiflt phongexp, int type) {
+  texture * tex = (texture *) voidtex;
+  tex->phong = phong;
+  tex->phongexp = phongexp;
+  tex->phongtype = type;
+}
+
+void rt_light(void * tex, vector ctr, apiflt rad) {
+  point_light * li;
+
+  li=newlight(tex, (vector) ctr, rad);
+
+  li->tex->islight=1;
+  li->tex->shadowcast=1;
+  li->tex->diffuse=0.0;
+  li->tex->specular=0.0;
+  li->tex->opacity=1.0;
+
+  add_light(li);
+  add_object((object *)li);
+}
+
+void rt_scalarvol(void * tex, vector min, vector max,
+	int xs, int ys, int zs, char * fname, void * invol) {
+  add_object((object *) newscalarvol(tex, (vector)min, (vector)max, xs, ys, zs, fname, (scalarvol *) invol));
+}
+
+void rt_extvol(void * tex, vector min, vector max, int samples, flt (* evaluator)(flt, flt, flt)) {
+  add_object((object *) newextvol(tex, (vector)min, (vector)max, samples, evaluator));
+}
+
+void rt_box(void * tex, vector min, vector max) {
+  add_object((object *) newbox(tex, (vector)min, (vector)max));
+} 
+
+void rt_cylinder(void * tex, vector ctr, vector axis, apiflt rad) {
+  add_object(newcylinder(tex, (vector)ctr, (vector)axis, rad));
+}
+
+void rt_fcylinder(void * tex, vector ctr, vector axis, apiflt rad) {
+  add_object(newfcylinder(tex, (vector)ctr, (vector)axis, rad));
+}
+
+void rt_plane(void * tex, vector ctr, vector norm) {
+  add_object(newplane(tex, (vector)ctr, (vector)norm));
+} 
+
+void rt_ring(void * tex, vector ctr, vector norm, apiflt a, apiflt b) {
+  add_object(newring(tex, (vector)ctr, (vector)norm, a, b));
+} 
+
+void rt_sphere(void * tex, vector ctr, apiflt rad) {
+  add_object(newsphere(tex, (vector)ctr, rad));
+}
+
+void rt_tri(void * tex, vector v0, vector v1, vector v2) {
+  object * trn;
+
+  trn = newtri(tex, (vector)v0, (vector)v1, (vector)v2);
+
+  if (trn != NULL) { 
+    add_object(trn);
+  }
+} 
+
+void rt_stri(void * tex, vector v0, vector v1, vector v2, 
+		vector n0, vector n1, vector n2) {
+  object * trn;
+ 
+  trn = newstri(tex, (vector)v0, (vector)v1, (vector)v2, (vector)n0, (vector)n1, (vector)n2);
+
+  if (trn != NULL) { 
+    add_object(trn);
+  }
+} 
+
+void rt_quadsphere(void * tex, vector ctr, apiflt rad) {
+  quadric * q;
+  flt factor;
+  q=(quadric *) newquadric();
+  factor= 1.0 / (rad*rad);
+  q->tex=(texture *)tex;
+  q->ctr=ctr;
+ 
+  q->mat.a=factor;
+  q->mat.b=0.0;
+  q->mat.c=0.0;
+  q->mat.d=0.0;
+  q->mat.e=factor;
+  q->mat.f=0.0;
+  q->mat.g=0.0;
+  q->mat.h=factor;
+  q->mat.i=0.0;
+  q->mat.j=-1.0;
+ 
+  add_object((object *)q);
+}
diff --git a/examples/parallel_for/tacheon/src/api.h b/examples/parallel_for/tacheon/src/api.h
new file mode 100644
index 0000000..caa4256
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/api.h
@@ -0,0 +1,219 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*****************************************************************************
+ * api.h - The declarations and prototypes needed so that 3rd party driver   *
+ *         code can run the raytracer.  Third party driver code should       * 
+ *         only use the functions in this header file to interface with      *
+ *         the rendering engine.                                             *
+ *************************************************************************** */
+
+
+/* 
+ *  $Id: api.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+
+/********************************************/
+/* Types defined for use with the API calls */
+/********************************************/
+
+#ifdef USESINGLEFLT
+typedef float apiflt;   /* generic floating point number */
+#else
+typedef double apiflt;  /* generic floating point number */
+#endif
+
+typedef void * SceneHandle;
+
+typedef struct {
+  int texturefunc; /* which texture function to use */
+  color col;    /* base object color */
+  int shadowcast;  /* does the object cast a shadow */
+  apiflt ambient;  /* ambient lighting */
+  apiflt diffuse;  /* diffuse reflection */
+  apiflt specular; /* specular reflection */
+  apiflt opacity;  /* how opaque the object is */ 
+  vector ctr;   /* origin of texture */
+  vector rot;   /* rotation of texture around origin */
+  vector scale; /* scale of texture in x,y,z */ 
+  vector uaxs;  /* planar map u axis */
+  vector vaxs;  /* planar map v axis */
+  char imap[96];   /* name of image map */ 
+} apitexture;
+
+
+/*******************************************************************
+ *  NOTE: The value passed in apitexture.texturefunc corresponds to 
+ *        the meanings given in this table:
+ *
+ *   0 - No texture function is applied other than standard lighting.
+ *   1 - 3D checkerboard texture.  Red & Blue checkers through 3d space.
+ *   2 - Grit texture, roughens up the surface of the object a bit.
+ *   3 - 3D marble texture.  Makes a 3D swirl pattern through the object.
+ *   4 - 3D wood texture.  Makes a 3D wood pattern through the object.
+ *   5 - 3D gradient noise function.
+ *   6 - I've forgotten :-)
+ *   7 - Cylindrical Image Map  **** IMAGE MAPS REQUIRE the filename 
+ *   8 - Spherical Image Map         of the image be put in imap[]
+ *   9 - Planar Image Map            part of the texture...
+ *        planar requires uaxs, and vaxs..
+ *
+ *******************************************************************/
+
+/********************************************/
+/* Functions implemented to provide the API */
+/********************************************/
+
+vector rt_vector(apiflt x, apiflt y, apiflt z); /* helper to make vectors */
+color  rt_color(apiflt r, apiflt g, apiflt b);  /* helper to make colors */
+
+void rt_initialize(int *, char ***);/* reset raytracer, memory deallocation */
+void rt_finalize(void); /* close down for good.. */
+
+SceneHandle rt_newscene(void);        /* allocate new scene */
+void rt_deletescene(SceneHandle); /* delete a scene */
+void rt_renderscene(SceneHandle); /* raytrace the current scene */  
+void rt_outputfile(SceneHandle, char * outname); 
+void rt_resolution(SceneHandle, int hres, int vres);
+void rt_verbose(SceneHandle, int v);
+void rt_rawimage(SceneHandle, unsigned char *rawimage);
+void rt_background(SceneHandle, color);
+
+/* Parameter values for rt_boundmode() */
+#define RT_BOUNDING_DISABLED 0
+#define RT_BOUNDING_ENABLED  1
+
+void rt_boundmode(SceneHandle, int);
+void rt_boundthresh(SceneHandle, int);
+
+/* Parameter values for rt_displaymode() */
+#define RT_DISPLAY_DISABLED  0
+#define RT_DISPLAY_ENABLED   1
+
+void rt_displaymode(SceneHandle, int);
+
+void rt_scenesetup(SceneHandle, char *, int, int, int);
+  /* scene, output filename, horizontal resolution, vertical resolution,
+            verbose mode */
+
+
+void rt_camerasetup(SceneHandle, apiflt, apiflt, int, int,
+	vector, vector,  vector);
+  /* camera parms: scene, zoom, aspectratio, antialiasing, raydepth,
+		camera center, view direction, up direction */
+
+
+
+void * rt_texture(apitexture *);
+   /* pointer to the texture struct that would have been passed to each 
+      object() call in older revisions.. */
+
+
+
+
+void rt_light(void * , vector, apiflt);     /* add a light */
+  /* light parms: texture, center, radius */ 
+
+void rt_sphere(void *, vector, apiflt);    /* add a sphere */
+  /* sphere parms: texture, center, radius */
+
+void rt_scalarvol(void *, vector, vector,
+		 int, int, int, char *, void *); 
+
+void rt_extvol(void *, vector, vector, int, apiflt (* evaluator)(apiflt, apiflt, apiflt)); 
+
+void rt_box(void *, vector, vector);  
+  /* box parms: texture, min, max */
+
+void rt_plane(void *, vector, vector);  
+  /* plane parms: texture, center, normal */
+
+void rt_ring(void *, vector, vector, apiflt, apiflt); 
+  /* ring parms: texture, center, normal, inner, outer */
+
+void rt_tri(void *, vector, vector, vector);  
+  /* tri parms: texture, vertex 0, vertex 1, vertex 2 */
+
+void rt_stri(void *, vector, vector, vector, 
+			vector, vector, vector); 
+ /* stri parms: texture, vertex 0, vertex 1, vertex 2, norm 0, norm 1, norm 2 */
+
+void rt_heightfield(void *, vector, int, int, apiflt *, apiflt, apiflt);
+  /* field parms: texture, center, m, n, field, wx, wy */
+
+void rt_landscape(void *, int, int, vector,  apiflt, apiflt);
+
+void rt_quadsphere(void *, vector, apiflt); /* add quadric sphere */
+  /* sphere parms: texture, center, radius */
+
+void rt_cylinder(void *, vector, vector, apiflt);
+
+void rt_fcylinder(void *, vector, vector, apiflt);
+
+void rt_polycylinder(void *, vector *, int, apiflt);
+
+
+/* new texture handling routines */
+void rt_tex_color(void * voidtex, color col); 
+
+#define RT_PHONG_PLASTIC 0
+#define RT_PHONG_METAL   1
+void rt_tex_phong(void * voidtex, apiflt phong, apiflt phongexp, int type); 
diff --git a/examples/parallel_for/tacheon/src/apigeom.cpp b/examples/parallel_for/tacheon/src/apigeom.cpp
new file mode 100644
index 0000000..4b30616
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/apigeom.cpp
@@ -0,0 +1,281 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * api.c - This file contains all of the API calls that are defined for
+ *         external driver code to use.  
+ * 
+ *  $Id: apigeom.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "api.h"
+#include "macros.h"
+#include "vector.h"
+
+#define MyVNorm(a)		VNorm ((vector *) a)
+
+void rt_polycylinder(void * tex, vector * points, int numpts, apiflt rad) {
+  vector a;
+  int i;
+
+  if ((points == NULL) || (numpts == 0)) {
+    return;
+  }
+
+  if (numpts > 0) {
+    rt_sphere(tex, points[0], rad);
+    
+    if (numpts > 1) {
+      for (i=1; i<numpts; i++) {
+        a.x = points[i].x - points[i-1].x;
+        a.y = points[i].y - points[i-1].y;
+        a.z = points[i].z - points[i-1].z;
+        
+        rt_fcylinder(tex, points[i-1], a, rad);
+        rt_sphere(tex, points[i], rad);
+      }
+    }
+  }
+}
+
+void rt_heightfield(void * tex, vector ctr, int m, int n, 
+                    apiflt * field, apiflt wx, apiflt wy) {
+  int xx,yy; 
+  vector v0, v1, v2; 
+  apiflt xoff, yoff, zoff;
+
+  xoff=ctr.x - (wx / 2.0);
+  yoff=ctr.z - (wy / 2.0);
+  zoff=ctr.y;
+
+  for (yy=0; yy<(n-1); yy++) { 
+    for (xx=0; xx<(m-1); xx++) {
+      v0.x=wx*(xx    )/(m*1.0) + xoff; 
+      v0.y=field[(yy    )*m + (xx    )] + zoff;
+      v0.z=wy*(yy    )/(n*1.0) + yoff;
+
+      v1.x=wx*(xx + 1)/(m*1.0) + xoff; 
+      v1.y=field[(yy    )*m + (xx + 1)] + zoff;
+      v1.z=wy*(yy    )/(n*1.0) + yoff;
+
+      v2.x=wx*(xx + 1)/(m*1.0) + xoff; 
+      v2.y=field[(yy + 1)*m + (xx + 1)] + zoff;
+      v2.z=wy*(yy + 1)/(n*1.0) + yoff;
+
+      rt_tri(tex, v1, v0, v2);
+
+      v0.x=wx*(xx    )/(m*1.0) + xoff;
+      v0.y=field[(yy    )*m + (xx    )] + zoff;
+      v0.z=wy*(yy    )/(n*1.0) + yoff;
+
+      v1.x=wx*(xx    )/(m*1.0) + xoff;
+      v1.y=field[(yy + 1)*m + (xx    )] + zoff;
+      v1.z=wy*(yy + 1)/(n*1.0) + yoff;
+
+      v2.x=wx*(xx + 1)/(m*1.0) + xoff;
+      v2.y=field[(yy + 1)*m + (xx + 1)] + zoff;
+      v2.z=wy*(yy + 1)/(n*1.0) + yoff;
+ 
+      rt_tri(tex, v0, v1, v2);
+    }
+  } 
+} /* end of heightfield */
+
+
+static void rt_sheightfield(void * tex, vector ctr, int m, int n, 
+                    apiflt * field, apiflt wx, apiflt wy) {
+  vector * vertices;
+  vector * normals;
+  vector offset;
+  apiflt xinc, yinc;
+  int x, y, addr; 
+   
+  vertices = (vector *) malloc(m*n*sizeof(vector));
+  normals = (vector *) malloc(m*n*sizeof(vector));
+
+  offset.x = ctr.x - (wx / 2.0);
+  offset.y = ctr.z - (wy / 2.0);
+  offset.z = ctr.y;
+
+  xinc = wx / ((apiflt) m);
+  yinc = wy / ((apiflt) n);
+
+  /* build vertex list */
+  for (y=0; y<n; y++) { 
+    for (x=0; x<m; x++) {
+      addr = y*m + x;
+      vertices[addr] = rt_vector(
+        x * xinc + offset.x,
+        field[addr] + offset.z,
+        y * yinc + offset.y);
+    }
+  }
+
+  /* build normals from vertex list */
+  for (x=1; x<m; x++) {
+    normals[x] = normals[(n - 1)*m + x] = rt_vector(0.0, 1.0, 0.0);
+  }
+  for (y=1; y<n; y++) {
+    normals[y*m] = normals[y*m + (m-1)] = rt_vector(0.0, 1.0, 0.0);
+  }
+  for (y=1; y<(n-1); y++) {
+    for (x=1; x<(m-1); x++) {
+      addr = y*m + x;
+
+      normals[addr] = rt_vector(
+        -(field[addr + 1] - field[addr - 1]) / (2.0 * xinc), 
+        1.0, 
+        -(field[addr + m] - field[addr - m]) / (2.0 * yinc));
+
+      MyVNorm(&normals[addr]);
+    }
+  }    
+
+  /* generate actual triangles */
+  for (y=0; y<(n-1); y++) {
+    for (x=0; x<(m-1); x++) {
+      addr = y*m + x;
+
+      rt_stri(tex, vertices[addr], vertices[addr + 1 + m], vertices[addr + 1],
+                   normals[addr], normals[addr + 1 + m], normals[addr + 1]);
+      rt_stri(tex, vertices[addr], vertices[addr + m], vertices[addr + 1 + m],
+                   normals[addr], normals[addr + m], normals[addr + 1 + m]);
+    }
+  }
+
+  free(normals);
+  free(vertices);
+} /* end of smoothed heightfield */
+
+
+static void adjust(apiflt *base, int xres, int yres, apiflt wx, apiflt wy, 
+		int xa, int ya, int x, int y, int xb, int yb) {
+  apiflt d, v;
+  
+  if (base[x + (xres*y)]==0.0) { 
+
+    d=(abs(xa - xb) / (xres * 1.0))*wx + (abs(ya - yb) / (yres * 1.0))*wy; 
+
+    v=(base[xa + (xres*ya)] + base[xb + (xres*yb)]) / 2.0 +
+       (((((rand() % 1000) - 500.0)/500.0)*d) / 8.0);
+
+    if (v < 0.0) v=0.0; 
+    if (v > (xres + yres)) v=(xres + yres);
+    base[x + (xres * y)]=v; 
+ } 
+}
+
+static void subdivide(apiflt *base, int xres, int yres, apiflt wx, apiflt wy,
+                  int x1, int y1, int x2, int y2) {
+  long x,y;
+
+  if (((x2 - x1) < 2) && ((y2 - y1) < 2)) { return; }
+
+  x=(x1 + x2) / 2;
+  y=(y1 + y2) / 2;
+
+  adjust(base, xres, yres, wx, wy, x1, y1, x, y1, x2, y1);
+  adjust(base, xres, yres, wx, wy, x2, y1, x2, y, x2, y2);
+  adjust(base, xres, yres, wx, wy, x1, y2, x, y2, x2, y2);
+  adjust(base, xres, yres, wx, wy, x1, y1, x1, y, x1, y2);
+
+ 
+  if (base[x + xres*y]==0.0) {
+    base[x + (xres * y)]=(base[x1 + xres*y1] + base[x2 + xres*y1] +
+                          base[x2 + xres*y2] + base[x1 + xres*y2]   )/4.0;
+  }
+ 
+  subdivide(base, xres, yres, wx, wy, x1, y1 ,x ,y);
+  subdivide(base, xres, yres, wx, wy, x, y1, x2, y);
+  subdivide(base, xres, yres, wx, wy, x, y, x2, y2);
+  subdivide(base, xres, yres, wx, wy, x1, y, x, y2);
+}
+
+void rt_landscape(void * tex, int m, int n, 
+              	vector ctr, apiflt wx, apiflt wy) {
+  int totalsize, x, y;
+  apiflt * field; 
+
+  totalsize=m*n;
+
+  srand(totalsize);
+
+  field=(apiflt *) malloc(totalsize*sizeof(apiflt));
+
+  for (y=0; y<n; y++) {
+    for (x=0; x<m; x++) {
+       field[x + y*m]=0.0;
+    }
+  }
+
+  field[0 + 0]=1.0 + (rand() % 100)/100.0;
+  field[m - 1]=1.0 + (rand() % 100)/100.0;
+  field[0     + m*(n - 1)]=1.0 + (rand() % 100)/100.0;
+  field[m - 1 + m*(n - 1)]=1.0 + (rand() % 100)/100.0;
+
+  subdivide(field, m, n, wx, wy, 0, 0, m-1, n-1);
+
+  rt_sheightfield(tex, ctr, m, n, field, wx, wy);
+
+  free(field);
+}
+
diff --git a/examples/parallel_for/tacheon/src/apitrigeom.cpp b/examples/parallel_for/tacheon/src/apitrigeom.cpp
new file mode 100644
index 0000000..eb4f4c8
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/apitrigeom.cpp
@@ -0,0 +1,239 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * apitrigeom.c - This file contains code for generating triangle tesselated
+ *                geometry, for use with OpenGL, XGL, etc.
+ * 
+ *  $Id: apitrigeom.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "api.h"
+#include "macros.h"
+#include "vector.h"
+
+#define MyVNorm(a)		VNorm ((vector *) a)
+#define MyVCross(a,b,c)		VCross ((vector *) a, (vector *) b, (vector *) c)
+#define MyVAddS(x,a,b,c)	VAddS ((flt) x, (vector *) a, (vector *) b, (vector *) c)
+
+#define CYLFACETS 36
+#define RINGFACETS 36
+#define SPHEREFACETS 25
+
+void rt_tri_fcylinder(void * tex, vector ctr, vector axis, apiflt rad) {
+  vector x, y, z, tmp;
+  double u, v, u2, v2;
+  int j;
+  vector p1, p2, p3, p4;
+  vector n1, n2;
+
+  z = axis;
+  MyVNorm(&z);
+  tmp.x = z.y - 2.1111111;
+  tmp.y = -z.z + 3.14159267;
+  tmp.z = z.x - 3.915292342341;
+  MyVNorm(&z);
+  MyVNorm(&tmp);
+  MyVCross(&z, &tmp, &x);
+  MyVNorm(&x);
+  MyVCross(&x, &z, &y);
+  MyVNorm(&y);
+
+  for (j=0; j<CYLFACETS; j++) {
+     u = rad * sin((6.28 * j) / (CYLFACETS - 1.0));
+     v = rad * cos((6.28 * j) / (CYLFACETS - 1.0));
+    u2 = rad * sin((6.28 * (j + 1.0)) / (CYLFACETS - 1.0));
+    v2 = rad * cos((6.28 * (j + 1.0)) / (CYLFACETS - 1.0));
+
+    p1.x = p1.y = p1.z = 0.0;
+    p4 = p3 = p2 = p1;
+
+    MyVAddS(u, &x, &p1, &p1);
+    MyVAddS(v, &y, &p1, &p1);
+    n1 = p1;
+    MyVNorm(&n1);
+    MyVAddS(1.0, &ctr, &p1, &p1);
+  
+
+    MyVAddS(u2, &x, &p2, &p2);
+    MyVAddS(v2, &y, &p2, &p2);
+    n2 = p2;
+    MyVNorm(&n2);
+    MyVAddS(1.0, &ctr, &p2, &p2);
+
+    MyVAddS(1.0, &axis, &p1, &p3);
+    MyVAddS(1.0, &axis, &p2, &p4);
+
+    rt_stri(tex, p1, p2, p3, n1, n2, n1);
+    rt_stri(tex, p3, p2, p4, n1, n2, n2);
+  }
+}
+
+void rt_tri_cylinder(void * tex, vector ctr, vector axis, apiflt rad) {
+  rt_fcylinder(tex, ctr, axis, rad);
+}
+
+void rt_tri_ring(void * tex, vector ctr, vector norm, apiflt a, apiflt b) {
+  vector x, y, z, tmp;
+  double u, v, u2, v2;
+  int j;
+  vector p1, p2, p3, p4;
+  vector n1, n2;
+
+  z = norm;
+  MyVNorm(&z);
+  tmp.x = z.y - 2.1111111;
+  tmp.y = -z.z + 3.14159267;
+  tmp.z = z.x - 3.915292342341;
+  MyVNorm(&z);
+  MyVNorm(&tmp);
+  MyVCross(&z, &tmp, &x);
+  MyVNorm(&x);
+  MyVCross(&x, &z, &y);
+  MyVNorm(&y);
+
+  for (j=0; j<RINGFACETS; j++) {
+     u = sin((6.28 * j) / (RINGFACETS - 1.0));
+     v = cos((6.28 * j) / (RINGFACETS - 1.0));
+    u2 = sin((6.28 * (j + 1.0)) / (RINGFACETS - 1.0));
+    v2 = cos((6.28 * (j + 1.0)) / (RINGFACETS - 1.0));
+
+    p1.x = p1.y = p1.z = 0.0;
+    p4 = p3 = p2 = p1;
+
+    MyVAddS(u, &x, &p1, &p1);
+    MyVAddS(v, &y, &p1, &p1);
+    n1 = p1;
+    MyVNorm(&n1);
+    MyVAddS(a, &n1, &ctr, &p1);
+    MyVAddS(b, &n1, &ctr, &p3);
+
+    MyVAddS(u2, &x, &p2, &p2);
+    MyVAddS(v2, &y, &p2, &p2);
+    n2 = p2;
+    MyVNorm(&n2);
+    MyVAddS(a, &n2, &ctr, &p2);
+    MyVAddS(b, &n2, &ctr, &p4);
+
+    rt_stri(tex, p1, p2, p3, norm, norm, norm);
+    rt_stri(tex, p3, p2, p4, norm, norm, norm);
+
+  }
+} 
+
+void rt_tri_box(void * tex, vector min, vector max) {
+  /* -XY face */
+  rt_tri(tex, rt_vector(min.x, min.y, min.z),
+              rt_vector(min.x, max.y, min.z), 
+              rt_vector(max.x, max.y, min.z));
+  rt_tri(tex, rt_vector(min.x, min.y, min.z),
+              rt_vector(max.x, max.y, min.z), 
+              rt_vector(max.x, min.y, min.z));
+
+  /* +XY face */
+  rt_tri(tex, rt_vector(min.x, min.y, max.z),
+              rt_vector(max.x, max.y, max.z),
+              rt_vector(min.x, max.y, max.z)); 
+  rt_tri(tex, rt_vector(min.x, min.y, max.z),
+              rt_vector(max.x, min.y, max.z),
+              rt_vector(max.x, max.y, max.z)); 
+
+  /* -YZ face */
+  rt_tri(tex, rt_vector(min.x, min.y, min.z),
+              rt_vector(min.x, max.y, max.z),
+              rt_vector(min.x, min.y, max.z)); 
+  rt_tri(tex, rt_vector(min.x, min.y, min.z),
+              rt_vector(min.x, max.y, min.z),
+              rt_vector(min.x, max.y, max.z)); 
+
+  /* +YZ face */
+  rt_tri(tex, rt_vector(max.x, min.y, min.z),
+              rt_vector(max.x, min.y, max.z),
+              rt_vector(max.x, max.y, max.z));
+  rt_tri(tex, rt_vector(max.x, min.y, min.z),
+              rt_vector(max.x, max.y, max.z),
+              rt_vector(max.x, max.y, min.z));
+
+  /* -XZ face */
+  rt_tri(tex, rt_vector(min.x, min.y, min.z),
+              rt_vector(min.x, min.y, max.z), 
+              rt_vector(max.x, min.y, max.z));
+  rt_tri(tex, rt_vector(min.x, min.y, min.z),
+              rt_vector(max.x, min.y, max.z), 
+              rt_vector(max.x, min.y, min.z));
+
+  /* +XZ face */
+  rt_tri(tex, rt_vector(min.x, max.y, min.z),
+              rt_vector(max.x, max.y, max.z),
+              rt_vector(min.x, max.y, max.z)); 
+  rt_tri(tex, rt_vector(min.x, max.y, min.z),
+              rt_vector(max.x, max.y, min.z),
+              rt_vector(max.x, max.y, max.z)); 
+}
+
+void rt_tri_sphere(void * tex, vector ctr, apiflt rad) {
+}
+
+void rt_tri_plane(void * tex, vector ctr, vector norm) {
+  rt_tri_ring(tex, ctr, norm, 0.0, 10000.0);
+} 
+
diff --git a/examples/parallel_for/tacheon/src/apitrigeom.h b/examples/parallel_for/tacheon/src/apitrigeom.h
new file mode 100644
index 0000000..8e6a848
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/apitrigeom.h
@@ -0,0 +1,71 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * apitrigeom.h - header for functions to generate triangle tesselated 
+ *                geometry for use with OpenGL, XGL, etc.
+ *
+ */
+
+void rt_tri_fcylinder(void * tex, vector ctr, vector axis, apiflt rad);
+void rt_tri_cylinder(void * tex, vector ctr, vector axis, apiflt rad);
+void rt_tri_ring(void * tex, vector ctr, vector norm, apiflt a, apiflt b);
+void rt_tri_plane(void * tex, vector ctr, vector norm);
+void rt_tri_box(void * tex, vector min, vector max);
diff --git a/examples/parallel_for/tacheon/src/bndbox.cpp b/examples/parallel_for/tacheon/src/bndbox.cpp
new file mode 100644
index 0000000..fab89c9
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/bndbox.cpp
@@ -0,0 +1,195 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * bndbox.c - This file contains the functions for dealing with bounding boxes.
+ *
+ *  $Id: bndbox.cpp,v 1.2.2.1 2007/06/04 19:23:39 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define BNDBOX_PRIVATE
+#include "bndbox.h"
+
+static object_methods bndbox_methods = {
+  (void (*)(void *, void *))(bndbox_intersect),
+  (void (*)(void *, void *, void *, void *))(NULL),
+  bndbox_bbox, 
+  free_bndbox 
+};
+
+
+bndbox * newbndbox(vector min, vector max) {
+  bndbox * b;
+  
+  b=(bndbox *) rt_getmem(sizeof(bndbox));
+  memset(b, 0, sizeof(bndbox));
+  b->min=min;
+  b->max=max;
+  b->methods = &bndbox_methods;
+
+  b->objlist=NULL;
+  b->tex=NULL;
+  b->nextobj=NULL;
+  return b;
+}
+
+
+static int bndbox_bbox(void * obj, vector * min, vector * max) {
+  bndbox * b = (bndbox *) obj;
+
+  *min = b->min;
+  *max = b->max;
+
+  return 1;
+}
+
+
+static void free_bndbox(void * v) {
+  bndbox * b = (bndbox *) v; 
+
+  free_objects(b->objlist);  
+ 
+  free(b);
+}
+
+
+static void bndbox_intersect(bndbox * bx, ray * ry) {
+  flt a, tx1, tx2, ty1, ty2, tz1, tz2;
+  flt tnear, tfar;
+  object * obj;
+  ray newray; 
+
+  /* eliminate bounded rays whose bounds do not intersect  */
+  /* the bounds of the box..                               */
+  if (ry->flags |= RT_RAY_BOUNDED) {
+    if ((ry->s.x > bx->max.x) && (ry->e.x > bx->max.x)) return;
+    if ((ry->s.x < bx->min.x) && (ry->e.x < bx->min.x)) return;
+  
+    if ((ry->s.y > bx->max.y) && (ry->e.y > bx->max.y)) return;
+    if ((ry->s.y < bx->min.y) && (ry->e.y < bx->min.y)) return;
+
+    if ((ry->s.z > bx->max.z) && (ry->e.z > bx->max.z)) return;
+    if ((ry->s.z < bx->min.z) && (ry->e.z < bx->min.z)) return;
+  }
+
+  tnear= -FHUGE;
+  tfar= FHUGE;
+
+  if (ry->d.x == 0.0) {
+    if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return;
+  }
+  else { 
+    tx1 = (bx->min.x - ry->o.x) / ry->d.x;
+    tx2 = (bx->max.x - ry->o.x) / ry->d.x;
+    if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } 
+    if (tx1 > tnear) tnear=tx1;   
+    if (tx2 < tfar)   tfar=tx2;   
+  }  
+  if (tnear > tfar) return; 
+  if (tfar < 0.0) return;
+  
+  if (ry->d.y == 0.0) { 
+    if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return;
+  }
+  else { 
+    ty1 = (bx->min.y - ry->o.y) / ry->d.y;
+    ty2 = (bx->max.y - ry->o.y) / ry->d.y;
+    if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } 
+    if (ty1 > tnear) tnear=ty1;   
+    if (ty2 < tfar)   tfar=ty2;   
+  } 
+  if (tnear > tfar) return; 
+  if (tfar < 0.0) return;
+ 
+  if (ry->d.z == 0.0) { 
+    if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return;
+  }
+  else { 
+    tz1 = (bx->min.z - ry->o.z) / ry->d.z;
+    tz2 = (bx->max.z - ry->o.z) / ry->d.z;
+    if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } 
+    if (tz1 > tnear) tnear=tz1;   
+    if (tz2 < tfar)   tfar=tz2;   
+  } 
+  if (tnear > tfar) return; 
+  if (tfar < 0.0) return;
+
+
+  /* intersect all of the enclosed objects */
+  newray=*ry;
+  newray.flags |= RT_RAY_BOUNDED;
+
+  RAYPNT(newray.s , (*ry) , tnear); 
+  RAYPNT(newray.e , (*ry) , (tfar + EPSILON)); 
+ 
+  obj = bx->objlist;
+  while (obj != NULL) {
+    obj->methods->intersect(obj, &newray); 
+    obj = (object *)obj->nextobj;
+  }
+}
+
diff --git a/examples/parallel_for/tacheon/src/bndbox.h b/examples/parallel_for/tacheon/src/bndbox.h
new file mode 100644
index 0000000..8a0f5f0
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/bndbox.h
@@ -0,0 +1,85 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * bndbox.h - This file contains the defines for bounding boxes etc.
+ *
+ *  $Id: bndbox.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+ 
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector min;
+  vector max;
+  object * objlist;
+} bndbox; 
+
+bndbox * newbndbox(vector min, vector max);
+
+#ifdef BNDBOX_PRIVATE
+
+static int bndbox_bbox(void * obj, vector * min, vector * max);
+static void free_bndbox(void * v);
+static void bndbox_intersect(bndbox *, ray *);
+
+#endif
diff --git a/examples/parallel_for/tacheon/src/box.cpp b/examples/parallel_for/tacheon/src/box.cpp
new file mode 100644
index 0000000..43fda64
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/box.cpp
@@ -0,0 +1,181 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * box.c - This file contains the functions for dealing with boxes.
+ *
+ *  $Id: box.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "box.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+int box_bbox(void * obj, vector * min, vector * max) {
+  box * b = (box *) obj;
+
+  *min = b->min;
+  *max = b->max;
+
+  return 1;
+}
+
+static object_methods box_methods = {
+  (void (*)(void *, void *))(box_intersect),
+  (void (*)(void *, void *, void *, void *))(box_normal),
+  box_bbox, 
+  free 
+};
+
+box * newbox(void * tex, vector min, vector max) {
+  box * b;
+  
+  b=(box *) rt_getmem(sizeof(box));
+  memset(b, 0, sizeof(box));
+  b->methods = &box_methods;
+  b->tex = (texture *)tex;
+  b->min = min; 
+  b->max = max;
+
+  return b;
+}
+
+void box_intersect(box * bx, ray * ry) {
+  flt a, tx1, tx2, ty1, ty2, tz1, tz2;
+  flt tnear, tfar;
+
+  tnear= -FHUGE;
+  tfar= FHUGE;
+
+  if (ry->d.x == 0.0) {
+    if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return;
+  }
+  else {
+    tx1 = (bx->min.x - ry->o.x) / ry->d.x;
+    tx2 = (bx->max.x - ry->o.x) / ry->d.x;
+    if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } 
+    if (tx1 > tnear) tnear=tx1;   
+    if (tx2 < tfar)   tfar=tx2;   
+  } 
+  if (tnear > tfar) return; 
+  if (tfar < 0.0) return;
+  
+  if (ry->d.y == 0.0) { 
+    if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return;
+  }
+  else {
+    ty1 = (bx->min.y - ry->o.y) / ry->d.y;
+    ty2 = (bx->max.y - ry->o.y) / ry->d.y;
+    if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } 
+    if (ty1 > tnear) tnear=ty1;   
+    if (ty2 < tfar)   tfar=ty2;   
+  }
+  if (tnear > tfar) return; 
+  if (tfar < 0.0) return;
+ 
+  if (ry->d.z == 0.0) { 
+    if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return;
+  }
+  else {
+    tz1 = (bx->min.z - ry->o.z) / ry->d.z;
+    tz2 = (bx->max.z - ry->o.z) / ry->d.z;
+    if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } 
+    if (tz1 > tnear) tnear=tz1;   
+    if (tz2 < tfar)   tfar=tz2;   
+  }
+  if (tnear > tfar) return; 
+  if (tfar < 0.0) return;
+
+  add_intersection(tnear, (object *) bx, ry);
+  add_intersection(tfar, (object *) bx, ry);
+}
+
+void box_normal(box * bx, vector  * pnt, ray * incident, vector * N) {
+  vector a, b, c; 
+  flt t;
+ 
+  c.x=(bx->max.x + bx->min.x) / 2.0;
+  c.y=(bx->max.y + bx->min.y) / 2.0;
+  c.z=(bx->max.z + bx->min.z) / 2.0;
+ 
+  VSub((vector *) pnt, &c, N);
+  b=(*N);
+
+  a.x=fabs(N->x);
+  a.y=fabs(N->y);
+  a.z=fabs(N->z);
+ 
+  N->x=0.0;  N->y=0.0;  N->z=0.0;
+
+  t=MYMAX(a.x, MYMAX(a.y, a.z));  
+
+  if (t==a.x) N->x=b.x;  
+
+  if (t==a.y) N->y=b.y; 
+
+  if (t==a.z) N->z=b.z;
+
+  VNorm(N);
+}
+
diff --git a/examples/parallel_for/tacheon/src/box.h b/examples/parallel_for/tacheon/src/box.h
new file mode 100644
index 0000000..38a27db
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/box.h
@@ -0,0 +1,80 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * box.h - This file contains the defines for boxes etc.
+ *
+ *  $Id: box.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+ 
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector min;
+  vector max;
+} box; 
+
+
+box * newbox(void * tex, vector min, vector max);
+void box_intersect(box *, ray *);
+void box_normal(box *, vector *, ray * incident, vector *);
diff --git a/examples/parallel_for/tacheon/src/camera.cpp b/examples/parallel_for/tacheon/src/camera.cpp
new file mode 100644
index 0000000..e82c7cc
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/camera.cpp
@@ -0,0 +1,122 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * camera.c - This file contains all of the functions for doing camera work.
+ *
+ *  $Id: camera.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "camera.h"
+#include "util.h"
+
+ray camray(scenedef *scene, int x, int y) {
+  ray ray1, newray;
+  vector projcent;
+  vector projpixel;
+  flt px, py, sx, sy;
+
+  sx = (flt) scene->hres; 
+  sy = (flt) scene->vres;
+
+  /* calculate the width and height of the image plane given the */
+  /* aspect ratio, image resolution, and zoom factor */
+
+  px=((sx / sy) / scene->aspectratio) / scene->camzoom;
+  py=1.0 / scene->camzoom;    
+
+  /* assuming viewvec is a unit vector, then the center of the */
+  /* image plane is the camera center + vievec                 */
+  projcent.x = scene->camcent.x + scene->camviewvec.x;
+  projcent.y = scene->camcent.y + scene->camviewvec.y;
+  projcent.z = scene->camcent.z + scene->camviewvec.z;
+
+  /* starting from the center of the image plane, we move the   */
+  /* center of the pel we're calculating, to                    */ 
+  /* projcent + (rightvec * x distance)                         */
+  ray1.o=projcent;
+  ray1.d=scene->camrightvec;
+  projpixel=Raypnt(&ray1, ((x*px/sx) - (px / 2.0))); 
+
+  /* starting from the horizontally translated pel, we move the */
+  /* center of the pel we're calculating, to                    */ 
+  /* projcent + (upvec * y distance)                            */
+  ray1.o=projpixel;
+  ray1.d=scene->camupvec;
+  projpixel=Raypnt(&ray1, ((y*py/sy) - (py / 2.0)));
+
+  /* now that we have the exact pel center in the image plane */
+  /* we create the real primary ray that will be used by the  */
+  /* rest of the system.                                      */
+  /* The ray is expected to be re-normalized elsewhere, we're */
+  /* only really concerned about getting its direction right. */
+  newray.o=scene->camcent;
+  VSub(&projpixel, &scene->camcent, &newray.d);
+  newray.depth = scene->raydepth;
+  newray.flags = RT_RAY_REGULAR;  /* camera only generates primary rays */
+
+  return newray;
+}
+
+
diff --git a/examples/parallel_for/tacheon/src/camera.h b/examples/parallel_for/tacheon/src/camera.h
new file mode 100644
index 0000000..23d2597
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/camera.h
@@ -0,0 +1,67 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * camera.h - This file contains the defines for camera routines etc.
+ *
+ *  $Id: camera.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+ray  camray(scenedef *, int, int);
diff --git a/examples/parallel_for/tacheon/src/coordsys.cpp b/examples/parallel_for/tacheon/src/coordsys.cpp
new file mode 100644
index 0000000..c535973
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/coordsys.cpp
@@ -0,0 +1,109 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * coordsys.c -  Routines to translate from one coordinate system to another.
+ *
+ *  $Id: coordsys.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "coordsys.h"
+
+void xytopolar(flt x, flt y, flt rad, flt * u, flt * v) {
+  flt r1;
+  r1=x*x + y*y;  
+  *v=sqrt(r1 / (rad*rad));
+  if (y<0.0) 
+    *u=1.0 - acos(x/sqrt(r1))/TWOPI;
+  else 
+    *u= acos(x/sqrt(r1))/TWOPI; 
+}
+
+void xyztocyl(vector pnt, flt height, flt * u, flt * v) {
+  flt r1;
+
+  r1=pnt.x*pnt.x + pnt.y*pnt.y;
+
+  *v=pnt.z / height;
+  if (pnt.y<0.0) 
+    *u=1.0 - acos(pnt.x/sqrt(r1))/TWOPI;
+  else 
+    *u=acos(pnt.x/sqrt(r1))/TWOPI;
+}
+
+void xyztospr(vector pnt, flt * u, flt * v) {
+  flt r1, phi, theta;
+ 
+  r1=sqrt(pnt.x*pnt.x + pnt.y*pnt.y + pnt.z*pnt.z);
+
+  phi=acos(-pnt.y/r1);   
+  *v=phi/3.1415926;
+
+  theta=acos((pnt.x/r1)/sin(phi))/TWOPI;
+
+  if (pnt.z > 0.0) 
+    *u = theta;
+  else 
+    *u = 1 - theta; 
+}
+
+
diff --git a/examples/parallel_for/tacheon/src/coordsys.h b/examples/parallel_for/tacheon/src/coordsys.h
new file mode 100644
index 0000000..a7974f1
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/coordsys.h
@@ -0,0 +1,71 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * coordsys.h - defines for coordinate system routines.
+ *  
+ *  $Id: coordsys.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#define TWOPI 6.2831853
+
+void xytopolar(flt, flt, flt, flt *, flt *);
+void xyztocyl(vector, flt, flt *, flt *);
+void xyztospr(vector, flt *, flt *);
diff --git a/examples/parallel_for/tacheon/src/cylinder.cpp b/examples/parallel_for/tacheon/src/cylinder.cpp
new file mode 100644
index 0000000..9814d2e
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/cylinder.cpp
@@ -0,0 +1,284 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * cylinder.c - This file contains the functions for dealing with cylinders.
+ *
+ *  $Id: cylinder.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define CYLINDER_PRIVATE 
+#include "cylinder.h"
+
+static object_methods cylinder_methods = {
+  (void (*)(void *, void *))(cylinder_intersect),
+  (void (*)(void *, void *, void *, void *))(cylinder_normal),
+  cylinder_bbox, 
+  free 
+};
+
+static object_methods fcylinder_methods = {
+  (void (*)(void *, void *))(fcylinder_intersect),
+  (void (*)(void *, void *, void *, void *))(cylinder_normal),
+  fcylinder_bbox, 
+  free 
+};
+
+
+object * newcylinder(void * tex, vector ctr, vector axis, flt rad) {
+  cylinder * c;
+  
+  c=(cylinder *) rt_getmem(sizeof(cylinder));
+  memset(c, 0, sizeof(cylinder));
+  c->methods = &cylinder_methods;
+
+  c->tex=(texture *) tex;
+  c->ctr=ctr;
+  c->axis=axis;
+  c->rad=rad;
+  return (object *) c;
+}
+
+static int cylinder_bbox(void * obj, vector * min, vector * max) {
+  return 0; /* infinite / unbounded object */
+}
+
+static void cylinder_intersect(cylinder * cyl, ray * ry) {
+  vector rc, n, D, O;  
+  flt t, s, tin, tout, ln, d; 
+
+  rc.x = ry->o.x - cyl->ctr.x;
+  rc.y = ry->o.y - cyl->ctr.y;
+  rc.z = ry->o.z - cyl->ctr.z; 
+
+  VCross(&ry->d, &cyl->axis, &n);
+
+  VDOT(ln, n, n);
+  ln=sqrt(ln);    /* finish length calculation */
+
+  if (ln == 0.0) {  /* ray is parallel to the cylinder.. */
+    VDOT(d, rc, cyl->axis);         
+    D.x = rc.x - d * cyl->axis.x; 
+    D.y = rc.y - d * cyl->axis.y;
+    D.z = rc.z - d * cyl->axis.z;
+    VDOT(d, D, D);
+    d = sqrt(d);
+    tin = -FHUGE;
+    tout = FHUGE;
+    /* if (d <= cyl->rad) then ray is inside cylinder.. else outside */
+  }
+
+  VNorm(&n);
+  VDOT(d, rc, n);
+  d = fabs(d); 
+
+  if (d <= cyl->rad) {  /* ray intersects cylinder.. */
+    VCross(&rc, &cyl->axis, &O);
+    VDOT(t, O, n);
+    t = - t / ln;
+    VCross(&n, &cyl->axis, &O); 
+    VNorm(&O);
+    VDOT(s, ry->d, O);
+    s = fabs(sqrt(cyl->rad*cyl->rad - d*d) / s);
+    tin = t - s;
+    add_intersection(tin, (object *) cyl, ry); 
+    tout = t + s;
+    add_intersection(tout, (object *) cyl, ry);
+  }
+}
+
+static void cylinder_normal(cylinder * cyl, vector * pnt, ray * incident, vector * N) {
+  vector a,b,c;
+  flt t;
+
+  VSub((vector *) pnt, &(cyl->ctr), &a);
+
+  c=cyl->axis;
+
+  VNorm(&c);
+ 
+  VDOT(t, a, c);
+
+  b.x = c.x * t + cyl->ctr.x; 
+  b.y = c.y * t + cyl->ctr.y;
+  b.z = c.z * t + cyl->ctr.z;
+
+  VSub(pnt, &b, N); 
+  VNorm(N);
+
+  if (VDot(N, &(incident->d)) > 0.0)  { /* make cylinder double sided */
+    N->x=-N->x;
+    N->y=-N->y;
+    N->z=-N->z;
+  } 
+}
+
+object * newfcylinder(void * tex, vector ctr, vector axis, flt rad) {
+  cylinder * c;
+  
+  c=(cylinder *) rt_getmem(sizeof(cylinder));
+  memset(c, 0, sizeof(cylinder));
+  c->methods = &fcylinder_methods;
+
+  c->tex=(texture *) tex;
+  c->ctr=ctr;
+  c->axis=axis;
+  c->rad=rad;
+
+  return (object *) c;
+}
+
+static int fcylinder_bbox(void * obj, vector * min, vector * max) {
+  cylinder * c = (cylinder *) obj;
+  vector mintmp, maxtmp;
+
+  mintmp.x = c->ctr.x;
+  mintmp.y = c->ctr.y;
+  mintmp.z = c->ctr.z;
+  maxtmp.x = c->ctr.x + c->axis.x;
+  maxtmp.y = c->ctr.y + c->axis.y;
+  maxtmp.z = c->ctr.z + c->axis.z;
+
+  min->x = MYMIN(mintmp.x, maxtmp.x);
+  min->y = MYMIN(mintmp.y, maxtmp.y);
+  min->z = MYMIN(mintmp.z, maxtmp.z);
+  min->x -= c->rad;
+  min->y -= c->rad;
+  min->z -= c->rad;
+
+  max->x = MYMAX(mintmp.x, maxtmp.x);
+  max->y = MYMAX(mintmp.y, maxtmp.y);
+  max->z = MYMAX(mintmp.z, maxtmp.z);
+  max->x += c->rad;
+  max->y += c->rad;
+  max->z += c->rad;
+
+  return 1;
+}
+
+
+static void fcylinder_intersect(cylinder * cyl, ray * ry) {
+  vector rc, n, O, hit, tmp2, ctmp4;
+  flt t, s, tin, tout, ln, d, tmp, tmp3;
+ 
+  rc.x = ry->o.x - cyl->ctr.x;  
+  rc.y = ry->o.y - cyl->ctr.y;
+  rc.z = ry->o.z - cyl->ctr.z;
+ 
+  VCross(&ry->d, &cyl->axis, &n);
+ 
+  VDOT(ln, n, n);
+  ln=sqrt(ln);    /* finish length calculation */
+ 
+  if (ln == 0.0) {  /* ray is parallel to the cylinder.. */
+    return;       /* in this case, we want to miss or go through the "hole" */
+  }
+ 
+  VNorm(&n);
+  VDOT(d, rc, n);
+  d = fabs(d);
+ 
+  if (d <= cyl->rad) {  /* ray intersects cylinder.. */
+    VCross(&rc, &cyl->axis, &O);
+    VDOT(t, O, n);
+    t = - t / ln;
+    VCross(&n, &cyl->axis, &O);
+    VNorm(&O);
+    VDOT(s, ry->d, O);
+    s = fabs(sqrt(cyl->rad*cyl->rad - d*d) / s);
+    tin = t - s;
+
+    RAYPNT(hit, (*ry), tin); 
+
+    ctmp4=cyl->axis;
+    VNorm(&ctmp4);
+
+    tmp2.x = hit.x - cyl->ctr.x;   
+    tmp2.y = hit.y - cyl->ctr.y;   
+    tmp2.z = hit.z - cyl->ctr.z;   
+
+    VDOT(tmp,  tmp2, ctmp4);
+    VDOT(tmp3, cyl->axis, cyl->axis);
+
+    if ((tmp > 0.0) && (tmp < sqrt(tmp3))) 
+      add_intersection(tin, (object *) cyl, ry);
+    tout = t + s;
+
+    RAYPNT(hit, (*ry), tout); 
+
+    tmp2.x = hit.x - cyl->ctr.x;   
+    tmp2.y = hit.y - cyl->ctr.y;   
+    tmp2.z = hit.z - cyl->ctr.z;   
+
+    VDOT(tmp,  tmp2, ctmp4); 
+    VDOT(tmp3, cyl->axis, cyl->axis);
+
+    if ((tmp > 0.0) && (tmp < sqrt(tmp3))) 
+      add_intersection(tout, (object *) cyl, ry);
+  }
+}
+
diff --git a/examples/parallel_for/tacheon/src/cylinder.h b/examples/parallel_for/tacheon/src/cylinder.h
new file mode 100644
index 0000000..fe36995
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/cylinder.h
@@ -0,0 +1,89 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * cylinder.h - This file contains the defines for cylinders etc.
+ *
+ *  $Id: cylinder.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+object * newcylinder(void *, vector, vector, flt);
+object * newfcylinder(void *, vector, vector, flt);
+
+#ifdef CYLINDER_PRIVATE
+
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector ctr;
+  vector axis;
+  flt rad;
+} cylinder;
+
+static void cylinder_intersect(cylinder *, ray *);
+static void fcylinder_intersect(cylinder *, ray *);
+
+static int cylinder_bbox(void * obj, vector * min, vector * max);
+static int fcylinder_bbox(void * obj, vector * min, vector * max);
+
+static void cylinder_normal(cylinder *, vector *, ray *, vector *);
+#endif
diff --git a/examples/parallel_for/tacheon/src/extvol.cpp b/examples/parallel_for/tacheon/src/extvol.cpp
new file mode 100644
index 0000000..c8e7272
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/extvol.cpp
@@ -0,0 +1,324 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * extvol.c - Volume rendering helper routines etc.
+ *
+ *  $Id: extvol.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include<stdio.h>
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "util.h"
+#include "box.h"
+#include "extvol.h"
+#include "trace.h"
+#include "sphere.h"
+#include "light.h"
+#include "shade.h"
+#include "global.h"
+
+
+int extvol_bbox(void * obj, vector * min, vector * max) {
+  box * b = (box *) obj;
+
+  *min = b->min;
+  *max = b->max;
+
+  return 1;
+}
+
+static object_methods extvol_methods = {
+  (void (*)(void *, void *))(box_intersect),
+  (void (*)(void *, void *, void *, void *))(box_normal),
+  extvol_bbox, 
+  free 
+};
+
+extvol * newextvol(void * voidtex, vector min, vector max, 
+                   int samples, flt (* evaluator)(flt, flt, flt)) { 
+  extvol * xvol;
+  texture * tex;
+  
+  tex = (texture *) voidtex;
+
+  xvol = (extvol *) rt_getmem(sizeof(extvol));
+  memset(xvol, 0, sizeof(extvol));
+
+  xvol->methods = &extvol_methods;
+
+  xvol->min=min;
+  xvol->max=max;
+  xvol->evaluator = evaluator;
+  xvol->ambient = tex->ambient;
+  xvol->diffuse = tex->diffuse;
+  xvol->opacity = tex->opacity;  
+  xvol->samples = samples;
+
+  xvol->tex = (texture *)rt_getmem(sizeof(texture));
+  memset(xvol->tex, 0, sizeof(texture));
+
+  xvol->tex->ctr.x = 0.0;
+  xvol->tex->ctr.y = 0.0;
+  xvol->tex->ctr.z = 0.0;
+  xvol->tex->rot = xvol->tex->ctr;
+  xvol->tex->scale = xvol->tex->ctr;
+  xvol->tex->uaxs = xvol->tex->ctr;
+  xvol->tex->vaxs = xvol->tex->ctr;
+  xvol->tex->islight = 0;
+  xvol->tex->shadowcast = 0;
+
+  xvol->tex->col=tex->col;
+  xvol->tex->ambient=1.0;
+  xvol->tex->diffuse=0.0;
+  xvol->tex->specular=0.0;
+  xvol->tex->opacity=1.0;
+  xvol->tex->img=NULL;
+  xvol->tex->texfunc=(color(*)(void *, void *, void *))(ext_volume_texture);
+  xvol->tex->obj = (void *) xvol; /* XXX hack! */
+
+  return xvol;
+}
+
+color ExtVoxelColor(flt scalar) {
+  color col;
+
+  if (scalar > 1.0) 
+    scalar = 1.0;
+
+  if (scalar < 0.0)
+    scalar = 0.0;
+
+  if (scalar < 0.5) {
+    col.g = 0.0;
+  }
+  else {
+    col.g = (scalar - 0.5) * 2.0;
+  }
+
+  col.r = scalar;
+  col.b = 1.0 - (scalar / 2.0);
+
+  return col;
+} 
+
+color ext_volume_texture(vector * hit, texture * tex, ray * ry) {
+  color col, col2;
+  box * bx;
+  extvol * xvol;
+  flt a, tx1, tx2, ty1, ty2, tz1, tz2;
+  flt tnear, tfar;
+  flt t, tdist, dt, ddt, sum, tt; 
+  vector pnt, bln;
+  flt scalar, transval; 
+  int i;
+  point_light * li;
+  color diffint; 
+  vector N, L;
+  flt inten;
+
+  col.r = 0.0;
+  col.g = 0.0;
+  col.b = 0.0;
+
+    bx = (box *) tex->obj;
+  xvol = (extvol *) tex->obj;
+ 
+  tnear= -FHUGE;
+  tfar= FHUGE;
+ 
+  if (ry->d.x == 0.0) {
+    if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return col;
+  }
+  else {
+    tx1 = (bx->min.x - ry->o.x) / ry->d.x;
+    tx2 = (bx->max.x - ry->o.x) / ry->d.x;
+    if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; }
+    if (tx1 > tnear) tnear=tx1;
+    if (tx2 < tfar)   tfar=tx2;
+  }
+  if (tnear > tfar) return col;
+  if (tfar < 0.0) return col;
+ 
+ if (ry->d.y == 0.0) {
+    if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return col;
+  }
+  else {
+    ty1 = (bx->min.y - ry->o.y) / ry->d.y;
+    ty2 = (bx->max.y - ry->o.y) / ry->d.y;
+    if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; }
+    if (ty1 > tnear) tnear=ty1;
+    if (ty2 < tfar)   tfar=ty2;
+  }
+  if (tnear > tfar) return col;
+  if (tfar < 0.0) return col;
+ 
+  if (ry->d.z == 0.0) {
+    if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return col;
+  }
+  else {
+    tz1 = (bx->min.z - ry->o.z) / ry->d.z;
+    tz2 = (bx->max.z - ry->o.z) / ry->d.z;
+    if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; }
+    if (tz1 > tnear) tnear=tz1;
+    if (tz2 < tfar)   tfar=tz2;
+  }
+  if (tnear > tfar) return col;
+  if (tfar < 0.0) return col;
+ 
+  if (tnear < 0.0) tnear=0.0;
+ 
+  tdist = xvol->samples;
+
+  tt = (xvol->opacity / tdist); 
+
+  bln.x=fabs(bx->min.x - bx->max.x);
+  bln.y=fabs(bx->min.y - bx->max.y);
+  bln.z=fabs(bx->min.z - bx->max.z);
+  
+     dt = 1.0 / tdist; 
+    sum = 0.0;
+
+/* Accumulate color as the ray passes through the voxels */
+  for (t=tnear; t<=tfar; t+=dt) {
+    if (sum < 1.0) {
+      pnt.x=((ry->o.x + (ry->d.x * t)) - bx->min.x) / bln.x;
+      pnt.y=((ry->o.y + (ry->d.y * t)) - bx->min.y) / bln.y;
+      pnt.z=((ry->o.z + (ry->d.z * t)) - bx->min.z) / bln.z;
+
+      /* call external evaluator assume 0.0 -> 1.0 range.. */ 
+      scalar = xvol->evaluator(pnt.x, pnt.y, pnt.z);  
+
+      transval = tt * scalar; 
+      sum += transval; 
+
+      col2 = ExtVoxelColor(scalar);
+
+      col.r += transval * col2.r * xvol->ambient;
+      col.g += transval * col2.g * xvol->ambient;
+      col.b += transval * col2.b * xvol->ambient;
+
+      ddt = dt;
+
+      /* Add in diffuse shaded light sources (no shadows) */
+      if (xvol->diffuse > 0.0) {
+  
+        /* Calculate the Volume gradient at the voxel */
+        N.x = (xvol->evaluator(pnt.x - ddt, pnt.y, pnt.z)  -  
+              xvol->evaluator(pnt.x + ddt, pnt.y, pnt.z)) *  8.0 * tt; 
+  
+        N.y = (xvol->evaluator(pnt.x, pnt.y - ddt, pnt.z)  -  
+              xvol->evaluator(pnt.x, pnt.y + ddt, pnt.z)) *  8.0 * tt; 
+  
+        N.z = (xvol->evaluator(pnt.x, pnt.y, pnt.z - ddt)  -  
+              xvol->evaluator(pnt.x, pnt.y, pnt.z + ddt)) *  8.0 * tt; 
+ 
+        /* only light surfaces with enough of a normal.. */
+        if ((N.x*N.x + N.y*N.y + N.z*N.z) > 0.0) { 
+          diffint.r = 0.0; 
+          diffint.g = 0.0; 
+          diffint.b = 0.0; 
+    
+          /* add the contribution of each of the lights.. */
+          for (i=0; i<numlights; i++) {
+            li=lightlist[i];
+            VSUB(li->ctr, (*hit), L)
+            VNorm(&L);
+            VDOT(inten, N, L)
+    
+            /* only add light if its from the front of the surface */
+            /* could add back-lighting if we wanted to later.. */
+            if (inten > 0.0) {
+              diffint.r += inten*li->tex->col.r;
+              diffint.g += inten*li->tex->col.g;
+              diffint.b += inten*li->tex->col.b;
+            }
+          }   
+          col.r += col2.r * diffint.r * xvol->diffuse;
+          col.g += col2.g * diffint.g * xvol->diffuse;
+          col.b += col2.b * diffint.b * xvol->diffuse;
+        }
+      }
+    }   
+    else { 
+      sum=1.0;
+    }  
+  }
+
+  /* Add in transmitted ray from outside environment */
+  if (sum < 1.0) {      /* spawn transmission rays / refraction */
+    color transcol;
+
+    transcol = shade_transmission(ry, hit, 1.0 - sum);
+
+    col.r += transcol.r; /* add the transmitted ray  */
+    col.g += transcol.g; /* to the diffuse and       */
+    col.b += transcol.b; /* transmission total..     */
+  }
+
+  return col;
+}
+
+
+
diff --git a/examples/parallel_for/tacheon/src/extvol.h b/examples/parallel_for/tacheon/src/extvol.h
new file mode 100644
index 0000000..964b092
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/extvol.h
@@ -0,0 +1,84 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * vol.h - Volume rendering definitions etc.
+ *
+ *
+ *  $Id: extvol.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector min;
+  vector max;
+  flt ambient;
+  flt diffuse;
+  flt opacity;
+  int samples;
+  flt (* evaluator)(flt, flt, flt);
+} extvol;
+
+extvol * newextvol(void * voidtex, vector min, vector max, 
+                   int samples, flt (* evaluator)(flt, flt, flt));
+color ext_volume_texture(vector *, texture *, ray *);
diff --git a/examples/parallel_for/tacheon/src/getargs.cpp b/examples/parallel_for/tacheon/src/getargs.cpp
new file mode 100644
index 0000000..30b6b45
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/getargs.cpp
@@ -0,0 +1,207 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "types.h"
+#include "api.h"
+#include "getargs.h"
+
+void printusage(char **argv) {
+  fprintf(stderr, "Usage: \n");
+  fprintf(stderr, "  %s modelfile [options] \n", argv[0]);
+  fprintf(stderr, "\n");
+  fprintf(stderr, "Model file formats supported:\n");
+  fprintf(stderr, "  filename.dat -- The model files originated with this package.\n");
+  fprintf(stderr, "  filaname.ac  -- AC3D model files.\n");
+  fprintf(stderr, "  filename.nff -- The NFF scene format used by Eric Haines' SPD.\n");
+  fprintf(stderr, "\n");
+  fprintf(stderr, "Valid options:  (** denotes default behaviour)\n");
+  fprintf(stderr, " +D enable run-time display updating (if build supports it) **\n");
+  fprintf(stderr, " -D disable run-time display updating\n");
+  fprintf(stderr, " -nobounding\n");
+  fprintf(stderr, " -boundthresh XXX  (** default threshold is 25)\n");
+  fprintf(stderr, "\n");
+}
+
+void initoptions(argoptions * opt) {
+  memset(opt, 0, sizeof(argoptions));
+  opt->foundfilename = -1;
+  opt->useoutfilename = -1;
+  opt->verbosemode = -1;
+  opt->antialiasing = -1;
+  opt->displaymode = -1;
+  opt->boundmode = -1; 
+  opt->boundthresh = -1; 
+  opt->usecamfile = -1;
+}
+
+int useoptions(argoptions * opt, SceneHandle scene) {
+  if (opt->useoutfilename == 1) {
+    rt_outputfile(scene, opt->outfilename);
+  }
+
+  if (opt->verbosemode == 1) {
+    rt_verbose(scene, 1);
+  }
+
+  if (opt->antialiasing != -1) {
+    /* need new api code for this */
+  } 
+
+  if (opt->displaymode != -1) {
+    rt_displaymode(scene, opt->displaymode);
+  }
+
+  if (opt->boundmode != -1) {
+    rt_boundmode(scene, opt->boundmode);
+  }
+
+  if (opt->boundthresh != -1) {
+    rt_boundthresh(scene, opt->boundthresh);
+  }
+
+  return 0;
+}    
+
+int getparm(int argc, char **argv, int num, argoptions * opt) {
+  if (!strcmp(argv[num], "+D")) {
+    /* turn video on */
+    opt->displaymode = RT_DISPLAY_ENABLED;
+    return 1;
+  }
+  if (!strcmp(argv[num], "-D")) {
+    /* turn video off */
+    opt->displaymode = RT_DISPLAY_DISABLED;
+    return 1;
+  }
+  if (!strcmp(argv[num], "-nobounding")) {
+    /* disable automatic spatial subdivision optimizations */
+    opt->boundmode = RT_BOUNDING_DISABLED;
+    return 1;
+  }
+  if (!strcmp(argv[num], "-boundthresh")) {
+    /* set automatic bounding threshold control value */
+    sscanf(argv[num + 1], "%d", &opt->boundthresh);
+    return 2;
+  }
+
+  /* unknown parameter setting */
+  fprintf(stderr, "Unrecognized parameter/option flag: %s\n", argv[num]);
+  return -1;
+}
+
+int getargs(int argc, char **argv, argoptions * opt) {
+  int i, rc, unknowncnt;
+
+  if (opt == NULL)
+    return -1;
+
+  initoptions(opt);  
+
+  if (argc < 2) {
+    printusage(argv);
+#ifndef DEFAULT_MODELFILE
+    return -1;
+#else
+    return 0;
+#endif//DEFAULT_MODELFILE
+  }
+
+  i = 1;
+  unknowncnt = 0;
+  while (i < argc) {
+    if (argv[i][0] == '-' || argv[i][0] == '+') {
+      rc = getparm(argc, argv, i, opt);
+      if (rc != -1) {
+        i += rc;
+      }
+      else {
+        printusage(argv);
+        return -1;
+      }
+    }
+    else {
+      unknowncnt++;
+      if (unknowncnt > 1) {
+        fprintf(stderr, "Too many model file names found!\n");
+        printusage(argv); 
+        return -1;
+      } 
+      else {
+        strcpy(opt->filename, argv[i]);        
+        opt->foundfilename = 1;
+        i++;
+      }
+    }
+  }
+
+  if (opt->foundfilename == -1) {
+    fprintf(stderr, "Missing model file name!\n");
+    printusage(argv);
+    return -1;
+  }
+
+  return 0;
+}
+
+
+
diff --git a/examples/parallel_for/tacheon/src/getargs.h b/examples/parallel_for/tacheon/src/getargs.h
new file mode 100644
index 0000000..c8e4f43
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/getargs.h
@@ -0,0 +1,77 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+typedef struct {
+  int foundfilename;      /* was a model file name found in the args? */
+  char filename[1024];    /* model file to render */
+  int useoutfilename;     /* command line override of output filename */
+  char outfilename[1024]; /* name of output image file */
+  int verbosemode;        /* verbose flags */
+  int antialiasing;       /* antialiasing setting */
+  int displaymode;        /* display mode */
+  int boundmode;          /* bounding mode */
+  int boundthresh;        /* bounding threshold */
+  int usecamfile;         /* use camera file */
+  char camfilename[1024]; /* camera filename */
+} argoptions;
+
+
+int getargs(int argc, char **argv, argoptions * opt);
+int useoptions(argoptions * opt, SceneHandle scene);
diff --git a/examples/parallel_for/tacheon/src/global.cpp b/examples/parallel_for/tacheon/src/global.cpp
new file mode 100644
index 0000000..a59cf5b
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/global.cpp
@@ -0,0 +1,88 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * global.c - any/all global data items etc should be in this file
+ *
+ *  $Id: global.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ *
+ */
+
+#include "types.h"
+#include "machine.h"
+#include "sphere.h"
+#include "light.h"
+
+/* stuff moved from intersect.c */
+object * rootobj = NULL; /* starts out empty. */
+
+point_light * lightlist[MAXLIGHTS];
+int numlights = 0;
+
+unsigned int numobjects = 0; /* used to assign unique object ID's */
+
+/* used in util.c */
+unsigned int rt_mem_in_use = 0;
+
+/* used in api.c */
+int parinitted = 0;
+
+int graphicswindowopen = 0;
+
diff --git a/examples/parallel_for/tacheon/src/global.h b/examples/parallel_for/tacheon/src/global.h
new file mode 100644
index 0000000..60cef83
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/global.h
@@ -0,0 +1,79 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * global.h - any/all global data items etc should be in this file
+ *
+ *  $Id: global.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ *
+ */
+
+/* stuff moved from intersect.c */
+extern object * rootobj;
+
+extern point_light * lightlist[MAXLIGHTS];
+extern int numlights;
+
+extern unsigned int numobjects;
+
+extern unsigned int rt_mem_in_use;
+extern int parinitted;
+
+extern int graphicswindowopen;
diff --git a/examples/parallel_for/tacheon/src/grid.cpp b/examples/parallel_for/tacheon/src/grid.cpp
new file mode 100644
index 0000000..e4bf0ac
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/grid.cpp
@@ -0,0 +1,690 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * grid.c - spatial subdivision efficiency structures
+ *
+ * $Id: grid.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ * 
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define GRID_PRIVATE
+#include "grid.h"
+
+#ifndef cbrt
+#define     cbrt(x)     ((x) > 0.0 ? pow((double)(x), 1.0/3.0) : \
+                          ((x) < 0.0 ? -pow((double)-(x), 1.0/3.0) : 0.0))
+
+#define     qbrt(x)     ((x) > 0.0 ? pow((double)(x), 1.0/4.0) : \
+                          ((x) < 0.0 ? -pow((double)-(x), 1.0/4.0) : 0.0))
+
+#endif
+
+static object_methods grid_methods = {
+  (void (*)(void *, void *))(grid_intersect),
+  (void (*)(void *, void *, void *, void *))(NULL),
+  grid_bbox, 
+  grid_free 
+};
+
+object * newgrid(int xsize, int ysize, int zsize, vector min, vector max) {
+  grid * g;
+
+  g = (grid *) rt_getmem(sizeof(grid));
+  memset(g, 0, sizeof(grid));  
+
+  g->methods = &grid_methods;
+  g->id = new_objectid();
+
+  g->xsize = xsize;
+  g->ysize = ysize;
+  g->zsize = zsize;
+
+  g->min = min;
+  g->max = max;
+
+  VSub(&g->max, &g->min, &g->voxsize);
+  g->voxsize.x /= (flt) g->xsize; 
+  g->voxsize.y /= (flt) g->ysize; 
+  g->voxsize.z /= (flt) g->zsize; 
+
+  g->cells = (objectlist **) rt_getmem(xsize*ysize*zsize*sizeof(objectlist *));
+  memset(g->cells, 0, xsize*ysize*zsize * sizeof(objectlist *));
+
+/* fprintf(stderr, "New grid, size: %8d %8d %8d\n", g->xsize, g->ysize, g->zsize); */
+
+  return (object *) g;
+}
+
+static int grid_bbox(void * obj, vector * min, vector * max) {
+  grid * g = (grid *) obj;
+ 
+  *min = g->min;
+  *max = g->max;
+
+  return 1;
+}
+
+static void grid_free(void * v) {
+  int i, numvoxels;
+  grid * g = (grid *) v;
+ 
+  /* loop through all voxels and free the object lists */
+  numvoxels = g->xsize * g->ysize * g->zsize; 
+  for (i=0; i<numvoxels; i++) {
+    objectlist * lcur, * lnext;
+
+    lcur = g->cells[i];
+    while (lcur != NULL) {
+      lnext = lcur->next;
+      free(lcur);
+    }
+  }
+
+  /* free the grid cells */ 
+  free(g->cells);
+
+  /* free all objects on the grid object list */
+  free_objects(g->objects);   
+
+  free(g);
+}
+
+static void globalbound(object ** rootlist, vector * gmin, vector * gmax) {
+  vector min, max;
+  object * cur;
+
+  if (*rootlist == NULL)  /* don't bound non-existant objects */
+    return;
+
+  gmin->x =  FHUGE;   gmin->y =  FHUGE;   gmin->z =  FHUGE;
+  gmax->x = -FHUGE;   gmax->y = -FHUGE;   gmax->z = -FHUGE;
+
+  cur=*rootlist;
+  while (cur != NULL)  {  /* Go! */
+    min.x = -FHUGE; min.y = -FHUGE; min.z = -FHUGE;
+    max.x =  FHUGE; max.y =  FHUGE; max.z =  FHUGE;
+
+    if (cur->methods->bbox((void *) cur, &min, &max)) {
+      gmin->x = MYMIN( gmin->x , min.x);
+      gmin->y = MYMIN( gmin->y , min.y);
+      gmin->z = MYMIN( gmin->z , min.z);
+
+      gmax->x = MYMAX( gmax->x , max.x);
+      gmax->y = MYMAX( gmax->y , max.y);
+      gmax->z = MYMAX( gmax->z , max.z);
+    }
+
+    cur=(object *)cur->nextobj;
+  }
+}
+
+
+static int cellbound(grid *g, gridindex *index, vector * cmin, vector * cmax) {
+  vector min, max, cellmin, cellmax;
+  objectlist * cur;
+  int numinbounds = 0;
+
+  cur = g->cells[index->z*g->xsize*g->ysize + index->y*g->xsize + index->x]; 
+
+  if (cur == NULL)  /* don't bound non-existant objects */
+    return 0;
+
+  cellmin.x = voxel2x(g, index->x); 
+  cellmin.y = voxel2y(g, index->y); 
+  cellmin.z = voxel2z(g, index->z); 
+
+  cellmax.x = cellmin.x + g->voxsize.x;
+  cellmax.y = cellmin.y + g->voxsize.y;
+  cellmax.z = cellmin.z + g->voxsize.z;
+
+  cmin->x =  FHUGE;   cmin->y =  FHUGE;   cmin->z =  FHUGE;
+  cmax->x = -FHUGE;   cmax->y = -FHUGE;   cmax->z = -FHUGE;
+
+  while (cur != NULL)  {  /* Go! */
+    min.x = -FHUGE; min.y = -FHUGE; min.z = -FHUGE;
+    max.x =  FHUGE; max.y =  FHUGE; max.z =  FHUGE;
+
+    if (cur->obj->methods->bbox((void *) cur->obj, &min, &max)) {
+      if ((min.x >= cellmin.x) && (max.x <= cellmax.x) &&
+          (min.y >= cellmin.y) && (max.y <= cellmax.y) &&
+          (min.z >= cellmin.z) && (max.z <= cellmax.z)) {
+      
+        cmin->x = MYMIN( cmin->x , min.x);
+        cmin->y = MYMIN( cmin->y , min.y);
+        cmin->z = MYMIN( cmin->z , min.z);
+
+        cmax->x = MYMAX( cmax->x , max.x);
+        cmax->y = MYMAX( cmax->y , max.y);
+        cmax->z = MYMAX( cmax->z , max.z);
+      
+        numinbounds++;
+      }
+    }
+
+    cur=cur->next;
+  }
+ 
+  /* in case we get a 0.0 sized axis on the cell bounds, we'll */
+  /* use the original cell bounds */
+  if ((cmax->x - cmin->x) < EPSILON) {
+    cmax->x += EPSILON;
+    cmin->x -= EPSILON;
+  }
+  if ((cmax->y - cmin->y) < EPSILON) {
+    cmax->y += EPSILON;
+    cmin->y -= EPSILON;
+  }
+  if ((cmax->z - cmin->z) < EPSILON) {
+    cmax->z += EPSILON;
+    cmin->z -= EPSILON;
+  }
+
+  return numinbounds;
+}
+
+static int countobj(object * root) {
+  object * cur;     /* counts the number of objects on a list */
+  int numobj;
+
+  numobj=0;
+  cur=root;
+
+  while (cur != NULL) {
+    cur=(object *)cur->nextobj;
+    numobj++;
+  }
+  return numobj;
+}
+
+static int countobjlist(objectlist * root) {
+  objectlist * cur;
+  int numobj;
+
+  numobj=0; 
+  cur = root;
+
+  while (cur != NULL) {
+    cur = cur->next;
+    numobj++;
+  }
+  return numobj;
+}
+
+int engrid_scene(object ** list) {
+  grid * g;
+  int numobj, numcbrt;
+  vector gmin, gmax;
+  gridindex index;
+ 
+  if (*list == NULL)
+    return 0;
+
+  numobj = countobj(*list);
+
+fprintf(stderr, "Scene contains %d bounded objects.\n", numobj);
+
+  if (numobj > 16) {
+    numcbrt = (int) cbrt(4*numobj);
+    globalbound(list, &gmin, &gmax);
+
+    g = (grid *) newgrid(numcbrt, numcbrt, numcbrt, gmin, gmax);
+    engrid_objlist(g, list);
+
+    numobj = countobj(*list);
+    g->nextobj = *list;
+    *list = (object *) g;
+
+    /* now create subgrids.. */
+    for (index.z=0; index.z<g->zsize; index.z++) {
+      for (index.y=0; index.y<g->ysize; index.y++) {
+        for (index.x=0; index.x<g->xsize; index.x++) {
+          engrid_cell(g, &index);
+        }
+      }
+    } 
+  }
+
+  return 1;
+}
+
+
+void engrid_objlist(grid * g, object ** list) {
+  object * cur, * next, **prev;
+
+  if (*list == NULL) 
+    return;
+  
+  prev = list; 
+  cur = *list;
+
+  while (cur != NULL) {
+    next = (object *)cur->nextobj;
+
+    if (engrid_object(g, cur)) 
+      *prev = next;
+    else 
+      prev = (object **) &cur->nextobj;
+
+    cur = next;
+  } 
+}
+
+static int engrid_cell(grid * gold, gridindex *index) {
+  vector gmin, gmax, gsize;
+  flt len;
+  int numobj, numcbrt, xs, ys, zs;
+  grid * g;
+  objectlist **list;
+  objectlist * newobj;
+
+  list = &gold->cells[index->z*gold->xsize*gold->ysize + 
+                     index->y*gold->xsize  + index->x];
+
+  if (*list == NULL)
+    return 0;
+
+  numobj =  cellbound(gold, index, &gmin, &gmax);
+
+  VSub(&gmax, &gmin, &gsize);
+  len = 1.0 / (MYMAX( MYMAX(gsize.x, gsize.y), gsize.z ));
+  gsize.x *= len;  
+  gsize.y *= len;  
+  gsize.z *= len;  
+
+  if (numobj > 16) {
+    numcbrt = (int) cbrt(2*numobj); 
+    
+    xs = (int) ((flt) numcbrt * gsize.x);
+    if (xs < 1) xs = 1;
+    ys = (int) ((flt) numcbrt * gsize.y);
+    if (ys < 1) ys = 1;
+    zs = (int) ((flt) numcbrt * gsize.z);
+    if (zs < 1) zs = 1;
+
+    g = (grid *) newgrid(xs, ys, zs, gmin, gmax);
+    engrid_objectlist(g, list);
+
+    newobj = (objectlist *) rt_getmem(sizeof(objectlist));    
+    newobj->obj = (object *) g;
+    newobj->next = *list;
+    *list = newobj;
+
+    g->nextobj = gold->objects;
+    gold->objects = (object *) g;
+  }
+
+  return 1;
+}
+
+static int engrid_objectlist(grid * g, objectlist ** list) {
+  objectlist * cur, * next, **prev;
+  int numsucceeded = 0; 
+
+  if (*list == NULL) 
+    return 0;
+  
+  prev = list; 
+  cur = *list;
+
+  while (cur != NULL) {
+    next = cur->next;
+
+    if (engrid_object(g, cur->obj)) {
+      *prev = next;
+      free(cur);
+      numsucceeded++;
+    }
+    else {
+      prev = &cur->next;
+    }
+
+    cur = next;
+  } 
+
+  return numsucceeded;
+}
+
+
+
+static int engrid_object(grid * g, object * obj) {
+  vector omin, omax; 
+  gridindex low, high;
+  int x, y, z, zindex, yindex, voxindex;
+  objectlist * tmp;
+ 
+  if (obj->methods->bbox(obj, &omin, &omax)) { 
+    if (!pos2grid(g, &omin, &low) || !pos2grid(g, &omax, &high)) {
+      return 0; /* object is not wholly contained in the grid */
+    }
+  }
+  else {
+    return 0; /* object is unbounded */
+  }
+
+  /* add the object to the complete list of objects in the grid */
+  obj->nextobj = g->objects;
+  g->objects = obj;
+
+  /* add this object to all voxels it inhabits */
+  for (z=low.z; z<=high.z; z++) {
+    zindex = z * g->xsize * g->ysize;
+    for (y=low.y; y<=high.y; y++) {
+      yindex = y * g->xsize;
+      for (x=low.x; x<=high.x; x++) {
+        voxindex = x + yindex + zindex; 
+        tmp = (objectlist *) rt_getmem(sizeof(objectlist));
+        tmp->next = g->cells[voxindex];
+        tmp->obj = obj;
+        g->cells[voxindex] = tmp;
+      }
+    }
+  }
+ 
+  return 1;
+}
+
+static int pos2grid(grid * g, vector * pos, gridindex * index) {
+  index->x = (int) ((pos->x - g->min.x) / g->voxsize.x);
+  index->y = (int) ((pos->y - g->min.y) / g->voxsize.y);
+  index->z = (int) ((pos->z - g->min.z) / g->voxsize.z);
+  
+  if (index->x == g->xsize)
+    index->x--;
+  if (index->y == g->ysize)
+    index->y--;
+  if (index->z == g->zsize)
+    index->z--;
+
+  if (index->x < 0 || index->x > g->xsize ||
+      index->y < 0 || index->y > g->ysize ||
+      index->z < 0 || index->z > g->zsize) 
+    return 0;
+
+  if (pos->x < g->min.x || pos->x > g->max.x ||
+      pos->y < g->min.y || pos->y > g->max.y ||
+      pos->z < g->min.z || pos->z > g->max.z) 
+    return 0; 
+
+  return 1;
+}
+
+
+/* the real thing */
+static void grid_intersect(grid * g, ray * ry) {
+  flt tnear, tfar, offset;
+  vector curpos, tmax, tdelta, pdeltaX, pdeltaY, pdeltaZ, nXp, nYp, nZp;
+  gridindex curvox, step, out; 
+  int voxindex;
+  objectlist * cur;
+
+  if (ry->flags & RT_RAY_FINISHED)
+    return;
+
+  if (!grid_bounds_intersect(g, ry, &tnear, &tfar))
+    return;
+ 
+  if (ry->maxdist < tnear)
+    return;
+ 
+  curpos = Raypnt(ry, tnear); 
+  pos2grid(g, &curpos, &curvox);
+  offset = tnear;
+
+  /* Setup X iterator stuff */
+  if (fabs(ry->d.x) < EPSILON) {
+    tmax.x = FHUGE;
+    tdelta.x = 0.0;
+    step.x = 0;
+    out.x = 0; /* never goes out of bounds on this axis */
+  }
+  else if (ry->d.x < 0.0) {
+    tmax.x = offset + ((voxel2x(g, curvox.x) - curpos.x) / ry->d.x); 
+    tdelta.x = g->voxsize.x / - ry->d.x;
+    step.x = out.x = -1;
+  }
+  else {
+    tmax.x = offset + ((voxel2x(g, curvox.x + 1) - curpos.x) / ry->d.x);
+    tdelta.x = g->voxsize.x / ry->d.x;
+    step.x = 1;
+    out.x = g->xsize;
+  }
+
+  /* Setup Y iterator stuff */
+  if (fabs(ry->d.y) < EPSILON) {
+    tmax.y = FHUGE;
+    tdelta.y = 0.0; 
+    step.y = 0;
+    out.y = 0; /* never goes out of bounds on this axis */
+  }
+  else if (ry->d.y < 0.0) {
+    tmax.y = offset + ((voxel2y(g, curvox.y) - curpos.y) / ry->d.y);
+    tdelta.y = g->voxsize.y / - ry->d.y;
+    step.y = out.y = -1;
+  }
+  else {
+    tmax.y = offset + ((voxel2y(g, curvox.y + 1) - curpos.y) / ry->d.y);
+    tdelta.y = g->voxsize.y / ry->d.y;
+    step.y = 1;
+    out.y = g->ysize;
+  }
+
+  /* Setup Z iterator stuff */
+  if (fabs(ry->d.z) < EPSILON) {
+    tmax.z = FHUGE;
+    tdelta.z = 0.0; 
+    step.z = 0;
+    out.z = 0; /* never goes out of bounds on this axis */
+  }
+  else if (ry->d.z < 0.0) {
+    tmax.z = offset + ((voxel2z(g, curvox.z) - curpos.z) / ry->d.z);
+    tdelta.z = g->voxsize.z / - ry->d.z;
+    step.z = out.z = -1;
+  }
+  else {
+    tmax.z = offset + ((voxel2z(g, curvox.z + 1) - curpos.z) / ry->d.z);
+    tdelta.z = g->voxsize.z / ry->d.z;
+    step.z = 1;
+    out.z = g->zsize;
+  }
+
+  pdeltaX = ry->d;
+  VScale(&pdeltaX, tdelta.x);
+  pdeltaY = ry->d;
+  VScale(&pdeltaY, tdelta.y);
+  pdeltaZ = ry->d;
+  VScale(&pdeltaZ, tdelta.z);
+
+  nXp = Raypnt(ry, tmax.x);
+  nYp = Raypnt(ry, tmax.y);
+  nZp = Raypnt(ry, tmax.z);
+
+  voxindex = curvox.z*g->xsize*g->ysize + curvox.y*g->xsize + curvox.x; 
+  while (1) {
+    if (tmax.x < tmax.y && tmax.x < tmax.z) {
+      cur = g->cells[voxindex];
+      while (cur != NULL) {
+        if (ry->mbox[cur->obj->id] != ry->serial) {
+          ry->mbox[cur->obj->id] = ry->serial; 
+          cur->obj->methods->intersect(cur->obj, ry);
+        }
+        cur = cur->next;
+      }
+      curvox.x += step.x;
+      if (ry->maxdist < tmax.x || curvox.x == out.x) 
+        break; 
+      voxindex += step.x;
+      tmax.x += tdelta.x;
+      curpos = nXp;
+      nXp.x += pdeltaX.x;
+      nXp.y += pdeltaX.y;
+      nXp.z += pdeltaX.z;
+    }
+    else if (tmax.z < tmax.y) {
+      cur = g->cells[voxindex];
+      while (cur != NULL) {
+        if (ry->mbox[cur->obj->id] != ry->serial) {
+          ry->mbox[cur->obj->id] = ry->serial; 
+          cur->obj->methods->intersect(cur->obj, ry);
+        }
+        cur = cur->next;
+      }
+      curvox.z += step.z;
+      if (ry->maxdist < tmax.z || curvox.z == out.z) 
+        break;
+      voxindex += step.z*g->xsize*g->ysize;
+      tmax.z += tdelta.z;
+      curpos = nZp;
+      nZp.x += pdeltaZ.x;
+      nZp.y += pdeltaZ.y;
+      nZp.z += pdeltaZ.z;
+    }
+    else {
+      cur = g->cells[voxindex];
+      while (cur != NULL) {
+        if (ry->mbox[cur->obj->id] != ry->serial) {
+          ry->mbox[cur->obj->id] = ry->serial; 
+          cur->obj->methods->intersect(cur->obj, ry);
+        }
+        cur = cur->next;
+      }
+      curvox.y += step.y;
+      if (ry->maxdist < tmax.y || curvox.y == out.y) 
+        break;
+      voxindex += step.y*g->xsize;
+      tmax.y += tdelta.y;
+      curpos = nYp;
+      nYp.x += pdeltaY.x;
+      nYp.y += pdeltaY.y;
+      nYp.z += pdeltaY.z;
+    }
+
+    if (ry->flags & RT_RAY_FINISHED)
+      break;
+  }
+}
+
+static void voxel_intersect(grid * g, ray * ry, int voxindex) {
+  objectlist * cur;
+
+  cur = g->cells[voxindex];
+  while (cur != NULL) {
+    cur->obj->methods->intersect(cur->obj, ry);
+    cur = cur->next;
+  }
+}
+
+static int grid_bounds_intersect(grid * g, ray * ry, flt *near, flt *far) {
+  flt a, tx1, tx2, ty1, ty2, tz1, tz2;
+  flt tnear, tfar;
+
+  tnear= -FHUGE;
+  tfar= FHUGE;
+
+  if (ry->d.x == 0.0) {
+    if ((ry->o.x < g->min.x) || (ry->o.x > g->max.x)) return 0;
+  }
+  else {
+    tx1 = (g->min.x - ry->o.x) / ry->d.x;
+    tx2 = (g->max.x - ry->o.x) / ry->d.x;
+    if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; }
+    if (tx1 > tnear) tnear=tx1;
+    if (tx2 < tfar)   tfar=tx2;
+  }
+  if (tnear > tfar) return 0;
+  if (tfar < 0.0) return 0;
+
+  if (ry->d.y == 0.0) {
+    if ((ry->o.y < g->min.y) || (ry->o.y > g->max.y)) return 0;
+  }
+  else {
+    ty1 = (g->min.y - ry->o.y) / ry->d.y;
+    ty2 = (g->max.y - ry->o.y) / ry->d.y;
+    if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; }
+    if (ty1 > tnear) tnear=ty1;
+    if (ty2 < tfar)   tfar=ty2;
+  }
+  if (tnear > tfar) return 0;
+  if (tfar < 0.0) return 0;
+
+  if (ry->d.z == 0.0) {
+    if ((ry->o.z < g->min.z) || (ry->o.z > g->max.z)) return 0;
+  }
+  else {
+    tz1 = (g->min.z - ry->o.z) / ry->d.z;
+    tz2 = (g->max.z - ry->o.z) / ry->d.z;
+    if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; }
+    if (tz1 > tnear) tnear=tz1;
+    if (tz2 < tfar)   tfar=tz2;
+  }
+  if (tnear > tfar) return 0;
+  if (tfar < 0.0) return 0;
+
+  *near = tnear;
+  *far = tfar; 
+  return 1;
+}
diff --git a/examples/parallel_for/tacheon/src/grid.h b/examples/parallel_for/tacheon/src/grid.h
new file mode 100644
index 0000000..5cefdc9
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/grid.h
@@ -0,0 +1,131 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * grid.h - spatial subdivision efficiency structures
+ *
+ * $Id: grid.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ * 
+ */
+
+int engrid_scene(object ** list);
+object * newgrid(int xsize, int ysize, int zsize, vector min, vector max);
+
+#ifdef GRID_PRIVATE
+
+typedef struct objectlist {
+  struct objectlist * next; /* next link in the list */
+  object * obj;             /* the actual object     */
+} objectlist; 
+
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  int xsize;           /* number of cells along the X direction */
+  int ysize;           /* number of cells along the Y direction */
+  int zsize;           /* number of cells along the Z direction */
+  vector min;          /* the minimum coords for the box containing the grid */
+  vector max;          /* the maximum coords for the box containing the grid */
+  vector voxsize;      /* the size of a grid cell/voxel */
+  object * objects;    /* all objects contained in the grid */
+  objectlist ** cells; /* the grid cells themselves */
+} grid;
+
+typedef struct {
+  int x;         /* Voxel X address */
+  int y;         /* Voxel Y address */
+  int z;         /* Voxel Z address */
+} gridindex; 
+
+/*
+ * Convert from voxel number along X/Y/Z to corresponding coordinate.
+ */
+#define voxel2x(g,X)  ((X) * (g->voxsize.x) + (g->min.x))
+#define voxel2y(g,Y)  ((Y) * (g->voxsize.y) + (g->min.y))
+#define voxel2z(g,Z)  ((Z) * (g->voxsize.z) + (g->min.z))
+
+/*
+ * And vice-versa.
+ */
+#define x2voxel(g,x)            (((x) - g->min.x) / g->voxsize.x)
+#define y2voxel(g,y)            (((y) - g->min.y) / g->voxsize.y)
+#define z2voxel(g,z)            (((z) - g->min.z) / g->voxsize.z)
+
+
+static int grid_bbox(void * obj, vector * min, vector * max);
+static void grid_free(void * v);
+
+static int cellbound(grid *g, gridindex *index, vector * cmin, vector * cmax);
+
+void engrid_objlist(grid * g, object ** list);
+static int engrid_object(grid * g, object * obj);
+
+static int engrid_objectlist(grid * g, objectlist ** list);
+static int engrid_cell(grid *, gridindex *);
+
+static int pos2grid(grid * g, vector * pos, gridindex * index);
+static void grid_intersect(grid *, ray *);
+static void voxel_intersect(grid * g, ray * ry, int voxaddr);
+static int grid_bounds_intersect(grid * g, ray * ry, flt *near, flt *far); 
+
+
+#endif
diff --git a/examples/parallel_for/tacheon/src/imageio.cpp b/examples/parallel_for/tacheon/src/imageio.cpp
new file mode 100644
index 0000000..9aa8578
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/imageio.cpp
@@ -0,0 +1,160 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ *  imageio.c - This file deals with reading/writing image files
+ *
+ *  $Id: imageio.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */ 
+
+/* For our puposes, we're interested only in the 3 byte per pixel 24 bit
+ * truecolor sort of file..
+ */
+
+#include <stdio.h>
+#include "machine.h"
+#include "types.h"
+#include "util.h"
+#include "imageio.h"
+#include "ppm.h"     /* PPM files */
+#include "tgafile.h" /* Truevision Targa files */
+#include "jpeg.h"    /* JPEG files */
+
+static 
+int fakeimage(char * name, int * xres, int * yres, unsigned char ** imgdata) {
+  int i, imgsize;
+
+  fprintf(stderr, "Error loading image %s.  Faking it.\n", name);
+   
+  *xres = 2;
+  *yres = 2;
+  imgsize = 3 * (*xres) * (*yres);
+  *imgdata = (unsigned char *)rt_getmem(imgsize);
+  for (i=0; i<imgsize; i++) {
+    (*imgdata)[i] = 255;
+  }
+
+  return IMAGENOERR;
+}
+
+
+int readimage(rawimage * img) {
+  int rc;
+  int xres, yres;
+  unsigned char * imgdata;
+  char * name = img->name;
+
+  if (strstr(name, ".ppm")) { 
+    rc = readppm(name, &xres, &yres, &imgdata);
+  }
+  else if (strstr(name, ".tga")) {
+    rc = readtga(name, &xres, &yres, &imgdata);
+  }
+  else if (strstr(name, ".jpg")) {
+    rc = readjpeg(name, &xres, &yres, &imgdata);
+  }
+  else if (strstr(name, ".gif")) {
+    rc = IMAGEUNSUP; 
+  }
+  else if (strstr(name, ".png")) {
+    rc = IMAGEUNSUP; 
+  }
+  else if (strstr(name, ".tiff")) {
+    rc = IMAGEUNSUP; 
+  }
+  else if (strstr(name, ".rgb")) {
+    rc = IMAGEUNSUP; 
+  }
+  else if (strstr(name, ".xpm")) {
+    rc = IMAGEUNSUP; 
+  }
+  else {
+    rc = readppm(name, &xres, &yres, &imgdata);
+  } 
+
+  switch (rc) {
+    case IMAGEREADERR:
+      fprintf(stderr, "Short read encountered while loading image %s\n", name);
+      rc = IMAGENOERR; /* remap to non-fatal error */
+      break;
+
+    case IMAGEUNSUP:
+      fprintf(stderr, "Cannot read unsupported image format for image %s\n", name);
+      break;
+  }    
+
+  /* If the image load failed, create a tiny white colored image to fake it */ 
+  /* this allows a scene to render even when a file can't be loaded */
+  if (rc != IMAGENOERR) {
+    rc = fakeimage(name, &xres, &yres, &imgdata);
+  }
+
+  /* If we succeeded in loading the image, return it. */
+  if (rc == IMAGENOERR) { 
+    img->xres = xres;
+    img->yres = yres;
+    img->bpp = 3;  
+    img->data = imgdata;
+  }
+
+  return rc;
+}
+ 
+
diff --git a/examples/parallel_for/tacheon/src/imageio.h b/examples/parallel_for/tacheon/src/imageio.h
new file mode 100644
index 0000000..c38cfd8
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/imageio.h
@@ -0,0 +1,76 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ *  imageio.h - This file deals with reading/writing image files 
+ *
+ *  $Id: imageio.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */ 
+
+/* For our puposes, we're interested only in the 3 byte per pixel 24 bit
+   truecolor sort of file.. */
+
+#define IMAGENOERR     0  /* no error */
+#define IMAGEBADFILE   1  /* can't find or can't open the file */
+#define IMAGEUNSUP     2  /* the image file is an unsupported format */
+#define IMAGEALLOCERR  3  /* not enough remaining memory to load this image */
+#define IMAGEREADERR   4  /* failed read, short reads etc */
+
+int readimage(rawimage *);
diff --git a/examples/parallel_for/tacheon/src/imap.cpp b/examples/parallel_for/tacheon/src/imap.cpp
new file mode 100644
index 0000000..d5af7bb
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/imap.cpp
@@ -0,0 +1,180 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * imap.c - This file contains code for doing image map type things.  
+ *
+ *  $Id: imap.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "imap.h"
+#include "util.h"
+#include "imageio.h"
+
+rawimage * imagelist[MAXIMGS];
+int numimages;
+
+void ResetImages(void) {
+  int i;
+  numimages=0;
+  for (i=0; i<MAXIMGS; i++) {
+    imagelist[i]=NULL;
+  }
+}
+
+void LoadImage(rawimage * image) {
+  if (!image->loaded) {
+    readimage(image);
+    image->loaded=1;
+  }
+}
+
+color ImageMap(rawimage * image, flt u, flt v) {
+  color col, colx, colx2;
+  flt x,y, px, py;
+  int x1, x2, y1, y2;
+  unsigned char * ptr;
+  unsigned char * ptr2;
+
+  if (!image->loaded) {   
+    LoadImage(image);
+    image->loaded=1;
+  }
+
+  if ((u <= 1.0) && (u >=0.0) && (v <= 1.0) && (v >= 0.0)) {
+    x=(image->xres - 1.0) * u; /* floating point X location */
+    y=(image->yres - 1.0) * v; /* floating point Y location */
+
+    px = x - ((int) x);
+    py = y - ((int) y);
+
+    x1 = (int) x;
+    x2 = x1 + 1;
+
+    y1 = (int) y;
+    y2 = y1 + 1;
+
+    ptr  = image->data + ((image->xres * y1) + x1) * 3; 
+    ptr2 = image->data + ((image->xres * y1) + x2) * 3; 
+
+    colx.r = (flt) ((flt)ptr[0] + px*((flt)ptr2[0] - (flt) ptr[0])) / 255.0; 
+    colx.g = (flt) ((flt)ptr[1] + px*((flt)ptr2[1] - (flt) ptr[1])) / 255.0; 
+    colx.b = (flt) ((flt)ptr[2] + px*((flt)ptr2[2] - (flt) ptr[2])) / 255.0; 
+
+    ptr  = image->data + ((image->xres * y2) + x1) * 3; 
+    ptr2 = image->data + ((image->xres * y2) + x2) * 3; 
+
+    colx2.r = ((flt)ptr[0] + px*((flt)ptr2[0] - (flt)ptr[0])) / 255.0; 
+    colx2.g = ((flt)ptr[1] + px*((flt)ptr2[1] - (flt)ptr[1])) / 255.0; 
+    colx2.b = ((flt)ptr[2] + px*((flt)ptr2[2] - (flt)ptr[2])) / 255.0; 
+
+    col.r = colx.r + py*(colx2.r - colx.r);
+    col.g = colx.g + py*(colx2.g - colx.g);
+    col.b = colx.b + py*(colx2.b - colx.b);
+
+  }
+  else {
+    col.r=0.0;
+    col.g=0.0;
+    col.b=0.0;
+  }
+  return col;
+} 
+
+rawimage * AllocateImage(char * filename) { 
+  rawimage * newimage = NULL;
+  int i, len, intable;
+
+  intable=0;
+  if (numimages!=0) {
+    for (i=0; i<numimages; i++) {
+      if (!strcmp(filename, imagelist[i]->name)) {
+        newimage=imagelist[i];
+        intable=1;
+      }
+    }
+  }
+
+  if (!intable) {
+    newimage=(rawimage *)rt_getmem(sizeof(rawimage));
+    newimage->loaded=0;
+    newimage->xres=0;
+    newimage->yres=0;
+    newimage->bpp=0;
+    newimage->data=NULL;
+    len=strlen(filename);
+    if (len > 80) rtbomb("Filename too long in image map!!"); 
+    strcpy(newimage->name, filename);
+
+    imagelist[numimages]=newimage;  /* add new one to the table       */ 
+    numimages++;                    /* increment the number of images */
+  }
+ 
+  return newimage;
+}
+
+void DeallocateImage(rawimage * image) {
+  image->loaded=0;
+  rt_freemem(image->data);
+}
+
+
diff --git a/examples/parallel_for/tacheon/src/imap.h b/examples/parallel_for/tacheon/src/imap.h
new file mode 100644
index 0000000..1f8d402
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/imap.h
@@ -0,0 +1,72 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * imap.h - This file contains defines etc for doing image map type things.  
+ *
+ *  $Id: imap.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+void       ResetImage(void);
+void       LoadImage(rawimage *);
+color      ImageMap(rawimage *, flt, flt);
+rawimage * AllocateImage(char *);
+void       DeallocateImage(rawimage *);
+void       ResetImages(void);
diff --git a/examples/parallel_for/tacheon/src/intersect.cpp b/examples/parallel_for/tacheon/src/intersect.cpp
new file mode 100644
index 0000000..76e9fbe
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/intersect.cpp
@@ -0,0 +1,190 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * intersect.c - This file contains code for CSG and intersection routines.
+ *
+ *  $Id: intersect.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "intersect.h"
+#include "light.h"
+#include "util.h"
+#include "global.h"
+
+unsigned int new_objectid(void) {
+  return numobjects++; /* global used to generate unique object ID's */
+}
+
+unsigned int max_objectid(void) {
+  return numobjects;
+}
+
+void add_object(object * obj) {
+  object * objtemp;
+
+  if (obj == NULL)
+    return;
+
+  obj->id = new_objectid();
+
+  objtemp = rootobj;
+  rootobj = obj;
+  obj->nextobj = objtemp;
+}
+
+void free_objects(object * start) {
+  object * cur;
+  object * cur2;
+
+  cur=start; 
+  while (cur->nextobj != NULL) { 
+    cur2=(object *)cur->nextobj;
+    cur->methods->free(cur);
+    cur=cur2;
+  }
+  free(cur);
+
+}
+
+void reset_object(void) {
+  if (rootobj != NULL)
+    free_objects(rootobj);
+
+  rootobj = NULL;
+  numobjects = 0; /* set number of objects back to 0 */
+}
+
+void intersect_objects(ray * intray) {
+  object * cur;
+  object temp;
+
+  temp.nextobj = rootobj; /* setup the initial object pointers.. */
+  cur = &temp;            /* ready, set                          */
+
+  while ((cur=(object *)cur->nextobj) != NULL)          
+    cur->methods->intersect(cur, intray); 
+}
+
+void reset_intersection(intersectstruct * intstruct) {
+  intstruct->num = 0;
+  intstruct->list[0].t = FHUGE;
+  intstruct->list[0].obj = NULL;
+  intstruct->list[1].t = FHUGE;
+  intstruct->list[1].obj = NULL;
+}
+
+void add_intersection(flt t, object * obj, ray * ry) {
+  intersectstruct * intstruct = ry->intstruct;
+
+  if (t > EPSILON) {
+
+    /* if we hit something before maxdist update maxdist */
+    if (t < ry->maxdist) {
+      ry->maxdist = t;
+
+      /* if we hit *anything* before maxdist, and we're firing a */
+      /* shadow ray, then we are finished ray tracing the shadow */
+      if (ry->flags & RT_RAY_SHADOW)
+        ry->flags |= RT_RAY_FINISHED;
+    }
+
+    intstruct->num++;
+    intstruct->list[intstruct->num].obj = obj;
+    intstruct->list[intstruct->num].t = t;
+  }
+}
+
+
+int closest_intersection(flt * t, object ** obj, intersectstruct * intstruct) {
+  int i;
+  *t=FHUGE;
+
+  for (i=1; i<=intstruct->num; i++) {
+    if (intstruct->list[i].t < *t) {
+        *t=intstruct->list[i].t;
+      *obj=intstruct->list[i].obj;
+    }
+  } 
+
+  return intstruct->num;
+}
+
+int shadow_intersection(intersectstruct * intstruct, flt maxdist) {
+  int i;
+  
+  if (intstruct->num > 0) {
+    for (i=1; i<=intstruct->num; i++) {
+      if ((intstruct->list[i].t < maxdist) && 
+          (intstruct->list[i].obj->tex->shadowcast == 1)) {
+        return 1;
+      }
+    }
+  }
+  
+  return 0;
+}
+
+
+
+
+
diff --git a/examples/parallel_for/tacheon/src/intersect.h b/examples/parallel_for/tacheon/src/intersect.h
new file mode 100644
index 0000000..de17dfa
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/intersect.h
@@ -0,0 +1,78 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * intersect.h - This file contains the declarations and defines for the
+ *               functions that manage intersection, bounding and CSG..
+ *
+ *  $Id: intersect.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+unsigned int  new_objectid(void);
+unsigned int max_objectid(void);  
+void add_object(object *);
+void reset_object(void);
+void free_objects(object *);
+void intersect_objects(ray *);
+void reset_intersection(intersectstruct *);
+void add_intersection(flt, object *, ray *);
+int closest_intersection(flt *, object **, intersectstruct *);
+int next_intersection(object **, object *, intersectstruct *);
+int shadow_intersection(intersectstruct * intstruct, flt maxdist);
diff --git a/examples/parallel_for/tacheon/src/jpeg.cpp b/examples/parallel_for/tacheon/src/jpeg.cpp
new file mode 100644
index 0000000..61298f3
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/jpeg.cpp
@@ -0,0 +1,142 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ *  jpeg.c - This file deals with JPEG format image files (reading/writing)
+ *
+ *  $Id: jpeg.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */ 
+
+/*
+ * This code requires support from the Independent JPEG Group's libjpeg.
+ * For our puposes, we're interested only in the 3 byte per pixel 24 bit
+ * RGB output.  Probably won't implement any decent checking at this point.
+ */ 
+
+#include <stdio.h>
+#include "machine.h"
+#include "types.h"
+#include "util.h"
+#include "imageio.h" /* error codes etc */
+#include "jpeg.h"    /* the protos for this file */
+
+#if !defined(USEJPEG)
+
+int readjpeg(char * name, int * xres, int * yres, unsigned char **imgdata) {
+  return IMAGEUNSUP;
+}
+
+#else
+
+#include "jpeglib.h" /* the IJG jpeg library headers */
+
+int readjpeg(char * name, int * xres, int * yres, unsigned char **imgdata) {
+  FILE * ifp;
+  struct jpeg_decompress_struct cinfo; /* JPEG decompression struct */
+  struct jpeg_error_mgr jerr;          /* JPEG Error handler */
+  JSAMPROW row_pointer[1];             /* output row buffer */
+  int row_stride;                      /* physical row width in output buf */
+
+  /* open input file before doing any JPEG decompression setup */
+  if ((ifp = fopen(name, "rb")) == NULL) 
+    return IMAGEBADFILE; /* Could not open image, return error */
+
+  /*
+   * Note: The Independent JPEG Group's library does not have a way
+   *       of returning errors without the use of setjmp/longjmp.
+   *       This is a problem in multi-threaded environment, since setjmp
+   *       and longjmp are declared thread-unsafe by many vendors currently.
+   *       For now, JPEG decompression errors will result in the "default"
+   *       error handling provided by the JPEG library, which is an error
+   *       message and a fatal call to exit().  I'll have to work around this
+   *       or find a reasonably thread-safe way of doing setjmp/longjmp..
+   */
+
+  cinfo.err = jpeg_std_error(&jerr); /* Set JPEG error handler to default */
+
+  jpeg_create_decompress(&cinfo);    /* Create decompression context      */ 
+  jpeg_stdio_src(&cinfo, ifp);       /* Set input mechanism to stdio type */
+  jpeg_read_header(&cinfo, TRUE);    /* Read the JPEG header for info     */
+  jpeg_start_decompress(&cinfo);     /* Prepare for actual decompression  */
+
+  *xres = cinfo.output_width;        /* set returned image width  */
+  *yres = cinfo.output_height;       /* set returned image height */
+
+  /* Calculate the size of a row in the image */
+  row_stride = cinfo.output_width * cinfo.output_components;
+
+  /* Allocate the image buffer which will be returned to the ray tracer */
+  *imgdata = (unsigned char *) malloc(row_stride * cinfo.output_height);
+
+  /* decompress the JPEG, one scanline at a time into the buffer */
+  while (cinfo.output_scanline < cinfo.output_height) {
+    row_pointer[0] = &((*imgdata)[(cinfo.output_scanline)*row_stride]);
+    jpeg_read_scanlines(&cinfo, row_pointer, 1);
+  }
+
+  jpeg_finish_decompress(&cinfo);   /* Tell the JPEG library to cleanup   */
+  jpeg_destroy_decompress(&cinfo);  /* Destroy JPEG decompression context */
+
+  fclose(ifp); /* Close the input file */
+
+  return IMAGENOERR;  /* No fatal errors */
+}
+
+#endif
diff --git a/examples/parallel_for/tacheon/src/jpeg.h b/examples/parallel_for/tacheon/src/jpeg.h
new file mode 100644
index 0000000..141cd13
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/jpeg.h
@@ -0,0 +1,67 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ *  jpeg.h - This file deals with JPEG format image files (reading/writing)
+ *
+ *  $Id: jpeg.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */ 
+
+int readjpeg(char * name, int * xres, int * yres, unsigned char **imgdata);
diff --git a/examples/parallel_for/tacheon/src/light.cpp b/examples/parallel_for/tacheon/src/light.cpp
new file mode 100644
index 0000000..92e8c89
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/light.cpp
@@ -0,0 +1,141 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * light.c - This file contains declarations and defines for light sources.
+ *
+ *  $Id: light.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define LIGHT_PRIVATE
+#include "light.h"
+
+static object_methods light_methods = {
+  (void (*)(void *, void *))(light_intersect),
+  (void (*)(void *, void *, void *, void *))(light_normal),
+  light_bbox, 
+  free 
+};
+
+point_light * newlight(void * tex, vector ctr, flt rad) {
+  point_light * l;
+  
+  l=(point_light *) rt_getmem(sizeof(point_light));
+  memset(l, 0, sizeof(point_light));
+  l->methods = &light_methods;
+
+  l->tex=(texture *)tex;
+  l->ctr=ctr;
+  l->rad=rad;
+
+  return l;
+}
+
+static int light_bbox(void * obj, vector * min, vector * max) {
+  return 0; /* lights are unbounded currently */
+}
+
+static void light_intersect(point_light * l, ray * ry) {
+  flt b, disc, t1, t2, temp;
+  vector V;
+
+  /* Lights do not cast shadows.. */
+  if (ry->flags & RT_RAY_SHADOW)
+    return;
+
+  VSUB(l->ctr, ry->o, V);
+  VDOT(b, V, ry->d); 
+  VDOT(temp, V, V);  
+
+  disc=b*b + l->rad*l->rad - temp;
+
+  if (disc<=0.0) return;
+  disc=sqrt(disc);
+
+  t2=b+disc;
+  if (t2 <= SPEPSILON) 
+    return;
+  add_intersection(t2, (object *) l, ry);  
+
+  t1=b-disc;
+  if (t1 > SPEPSILON) 
+    add_intersection(t1, (object *) l, ry);  
+}
+
+static void light_normal(point_light * l, vector * pnt, ray * incident, vector * N) {
+  VSub((vector *) pnt, &(l->ctr), N);
+
+  VNorm(N);
+
+  if (VDot(N, &(incident->d)) > 0.0)  {
+    N->x=-N->x;
+    N->y=-N->y;
+    N->z=-N->z;
+  } 
+}
+
+
diff --git a/examples/parallel_for/tacheon/src/light.h b/examples/parallel_for/tacheon/src/light.h
new file mode 100644
index 0000000..727afde
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/light.h
@@ -0,0 +1,82 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * light.h - this file includes declarations and defines for light sources.
+ *
+ *  $Id: light.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector ctr;
+  flt rad;
+} point_light; 
+
+point_light * newlight(void *, vector, flt);
+
+#ifdef LIGHT_PRIVATE
+static int light_bbox(void * obj, vector * min, vector * max);
+static void light_intersect(point_light *, ray *);
+static void light_normal(point_light *, vector *, ray *, vector *);
+#endif
diff --git a/examples/parallel_for/tacheon/src/machine.h b/examples/parallel_for/tacheon/src/machine.h
new file mode 100644
index 0000000..74623b1
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/machine.h
@@ -0,0 +1,75 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * machine.h - This is the machine specific include file
+ *
+ *  $Id: machine.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#define STDTIME
diff --git a/examples/parallel_for/tacheon/src/macros.h b/examples/parallel_for/tacheon/src/macros.h
new file mode 100644
index 0000000..8dd01e2
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/macros.h
@@ -0,0 +1,90 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * macros.h - This file contains macro versions of functions that would be best 
+ * used as inlined code rather than function calls.
+ *
+ *  $Id: macros.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#define MYMAX(a , b) ((a) > (b) ? (a) : (b))
+#define MYMIN(a , b) ((a) < (b) ? (a) : (b))
+
+#define VDOT(return, a, b) 				\
+ return=(a.x * b.x  +  a.y * b.y  +  a.z * b.z); 	\
+
+#define RAYPNT(c, a, b)		\
+c.x = a.o.x + ( a.d.x * b );	\
+c.y = a.o.y + ( a.d.y * b );	\
+c.z = a.o.z + ( a.d.z * b );	\
+
+
+#define VSUB(a, b, c)		\
+c.x = (a.x - b.x);		\
+c.y = (a.y - b.y);		\
+c.z = (a.z - b.z);		\
+
+
+#define VCROSS(a, b, c) 				\
+ c->x = (a->y * b->z) - (a->z * b->y);			\
+ c->y = (a->z * b->x) - (a->x * b->z);			\
+ c->z = (a->x * b->y) - (a->y * b->x);			\
+
diff --git a/examples/parallel_for/tacheon/src/objbound.cpp b/examples/parallel_for/tacheon/src/objbound.cpp
new file mode 100644
index 0000000..30a1210
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/objbound.cpp
@@ -0,0 +1,349 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * objbound.c - This file contains the functions to find bounding boxes
+ *              for the various primitives 
+ *
+ *  $Id: objbound.cpp,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "bndbox.h"
+
+#define OBJBOUND_PRIVATE
+#include "objbound.h"
+
+static void globalbound(object ** rootlist, vector * gmin, vector * gmax) {
+  vector min, max; 
+  object * cur;
+
+  if (*rootlist == NULL)  /* don't bound non-existant objects */
+    return;
+
+  gmin->x =  FHUGE;   gmin->y =  FHUGE;   gmin->z =  FHUGE;
+  gmax->x = -FHUGE;   gmax->y = -FHUGE;   gmax->z = -FHUGE;
+
+  cur=*rootlist;
+  while (cur != NULL)  {  /* Go! */ 
+    min.x = -FHUGE; min.y = -FHUGE; min.z = -FHUGE;
+    max.x =  FHUGE; max.y =  FHUGE; max.z =  FHUGE;
+
+    cur->methods->bbox((void *) cur, &min, &max);
+
+    gmin->x = MYMIN( gmin->x , min.x); 
+    gmin->y = MYMIN( gmin->y , min.y); 
+    gmin->z = MYMIN( gmin->z , min.z); 
+  
+    gmax->x = MYMAX( gmax->x , max.x); 
+    gmax->y = MYMAX( gmax->y , max.y); 
+    gmax->z = MYMAX( gmax->z , max.z); 
+
+    cur=(object *)cur->nextobj;
+  }
+}
+
+static int objinside(object * obj, vector * min, vector * max) {
+  vector omin, omax;
+
+  if (obj == NULL)  /* non-existant object, shouldn't get here */
+    return 0;
+
+  if (obj->methods->bbox((void *) obj, &omin, &omax)) {
+    if ((min->x <= omin.x) && (min->y <= omin.y) && (min->z <= omin.z) &&
+        (max->x >= omax.x) && (max->y >= omax.y) && (max->z >= omax.z)) { 
+      return 1;
+    }
+  }
+  return 0;
+}
+
+static int countobj(object * root) {
+  object * cur;     /* counts the number of objects on a list */
+  int numobj;
+
+  numobj=0;
+  cur=root;
+
+  while (cur != NULL) {
+    cur=(object *)cur->nextobj;
+    numobj++;
+  } 
+  return numobj;
+}
+
+static void movenextobj(object * thisobj, object ** root) {
+  object * cur, * tmp;
+
+  /* move the object after thisobj to the front of the object list  */
+  /*   headed by root */
+  if (thisobj != NULL) {
+    if (thisobj->nextobj != NULL) {
+      cur=(object *)thisobj->nextobj;            /* the object to be moved    */
+      thisobj->nextobj = cur->nextobj; /* link around the moved obj */
+      tmp=*root;                       /* store the root node       */
+      cur->nextobj=tmp;                /* attach root to cur        */ 
+      *root=cur;                       /* make cur, the new root    */
+    }
+  }
+}
+
+static void octreespace(object ** rootlist, int maxoctnodes) {
+  object * cur;
+  vector gmin, gmax, gctr;
+  vector cmin1, cmin2, cmin3, cmin4, cmin5, cmin6, cmin7, cmin8;
+  vector cmax1, cmax2, cmax3, cmax4, cmax5, cmax6, cmax7, cmax8;
+  bndbox * box1, * box2, * box3, * box4;
+  bndbox * box5, * box6, * box7, * box8;
+  int skipobj;
+
+  if (*rootlist == NULL)  /* don't subdivide non-existant data */
+    return;
+
+  skipobj=0;
+  globalbound(rootlist, &gmin, &gmax);  /* find global min and max */
+
+  gctr.x = ((gmax.x - gmin.x) / 2.0) + gmin.x;
+  gctr.y = ((gmax.y - gmin.y) / 2.0) + gmin.y;
+  gctr.z = ((gmax.z - gmin.z) / 2.0) + gmin.z;
+
+  cmin1=gmin;
+  cmax1=gctr;
+  box1 = newbndbox(cmin1, cmax1); 
+
+  cmin2=gmin;
+  cmin2.x=gctr.x;
+  cmax2=gmax;
+  cmax2.y=gctr.y;
+  cmax2.z=gctr.z;
+  box2 = newbndbox(cmin2, cmax2); 
+
+  cmin3=gmin;
+  cmin3.y=gctr.y;
+  cmax3=gmax;
+  cmax3.x=gctr.x;
+  cmax3.z=gctr.z;
+  box3 = newbndbox(cmin3, cmax3); 
+
+  cmin4=gmin;
+  cmin4.x=gctr.x;
+  cmin4.y=gctr.y;
+  cmax4=gmax;
+  cmax4.z=gctr.z;
+  box4 = newbndbox(cmin4, cmax4); 
+
+  cmin5=gmin;
+  cmin5.z=gctr.z;
+  cmax5=gctr;
+  cmax5.z=gmax.z;
+  box5 = newbndbox(cmin5, cmax5); 
+
+  cmin6=gctr;
+  cmin6.y=gmin.y;
+  cmax6=gmax;
+  cmax6.y=gctr.y;
+  box6 = newbndbox(cmin6, cmax6); 
+
+  cmin7=gctr;
+  cmin7.x=gmin.x;
+  cmax7=gctr;
+  cmax7.y=gmax.y;
+  cmax7.z=gmax.z;
+  box7 = newbndbox(cmin7, cmax7); 
+
+  cmin8=gctr;
+  cmax8=gmax;
+  box8 = newbndbox(cmin8, cmax8); 
+
+  cur = *rootlist;
+  while (cur != NULL)  {  
+    if (objinside((object *)cur->nextobj, &cmin1, &cmax1)) {
+      movenextobj(cur, &box1->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin2, &cmax2)) {
+      movenextobj(cur, &box2->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin3, &cmax3)) {
+      movenextobj(cur, &box3->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin4, &cmax4)) {
+      movenextobj(cur, &box4->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin5, &cmax5)) {
+      movenextobj(cur, &box5->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin6, &cmax6)) {
+      movenextobj(cur, &box6->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin7, &cmax7)) {
+      movenextobj(cur, &box7->objlist);  
+    }  
+    else if (objinside((object *)cur->nextobj, &cmin8, &cmax8)) {
+      movenextobj(cur, &box8->objlist);  
+    }  
+    else {
+      skipobj++; 
+      cur=(object *)cur->nextobj;
+    }
+  }     
+
+/* new scope, for redefinition of cur, and old */
+  { bndbox * cur, * old;
+  old=box1;
+  cur=box2; 
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+  cur=box3;
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+  cur=box4;
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+  cur=box5;
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+  cur=box6;
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+  cur=box7;
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+  cur=box8;
+  if (countobj(cur->objlist) > 0) {
+     old->nextobj=cur;
+     globalbound(&cur->objlist, &cur->min, &cur->max); 
+     old=cur; 
+  }      
+
+  old->nextobj=*rootlist;
+
+  if (countobj(box1->objlist) > 0) {
+    globalbound(&box1->objlist, &box1->min, &box1->max); 
+    *rootlist=(object *) box1;
+  }
+  else {
+    *rootlist=(object *) box1->nextobj;
+  }
+
+  } /**** end of special cur and old scope */
+
+  if (countobj(box1->objlist) > maxoctnodes) {
+    octreespace(&box1->objlist, maxoctnodes);
+  }
+  if (countobj(box2->objlist) > maxoctnodes) {
+    octreespace(&box2->objlist, maxoctnodes);
+  }
+  if (countobj(box3->objlist) > maxoctnodes) {
+    octreespace(&box3->objlist, maxoctnodes);
+  }
+  if (countobj(box4->objlist) > maxoctnodes) {
+    octreespace(&box4->objlist, maxoctnodes);
+  }
+  if (countobj(box5->objlist) > maxoctnodes) {
+    octreespace(&box5->objlist, maxoctnodes);
+  }
+  if (countobj(box6->objlist) > maxoctnodes) {
+    octreespace(&box6->objlist, maxoctnodes);
+  }
+  if (countobj(box7->objlist) > maxoctnodes) {
+    octreespace(&box7->objlist, maxoctnodes);
+  }
+  if (countobj(box8->objlist) > maxoctnodes) {
+    octreespace(&box8->objlist, maxoctnodes);
+  }
+}
+
+void dividespace(int maxoctnodes, object **toplist) {
+  bndbox * gbox;
+  vector gmin, gmax;
+
+  if (countobj(*toplist) > maxoctnodes) {
+    globalbound(toplist, &gmin, &gmax);  
+
+    octreespace(toplist, maxoctnodes); 
+
+    gbox = newbndbox(gmin, gmax);
+    gbox->objlist = NULL;
+    gbox->tex = NULL; 
+    gbox->nextobj=NULL;
+    gbox->objlist=*toplist;
+    *toplist=(object *) gbox;  
+  }
+}
diff --git a/examples/parallel_for/tacheon/src/objbound.h b/examples/parallel_for/tacheon/src/objbound.h
new file mode 100644
index 0000000..88f0a5e
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/objbound.h
@@ -0,0 +1,77 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*  
+ * objbound.h - defines for object bounding code.
+ *
+ *  $Id: objbound.h,v 1.2 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+void dividespace(int, object **);
+
+#ifdef OBJBOUND_PRIVATE
+
+static void globalbound(object **, vector *, vector *);
+static int objinside(object * obj, vector * min, vector * max);
+static int countobj(object *);
+static void movenextobj(object *, object **);
+static void octreespace(object **, int);
+
+#endif
diff --git a/examples/parallel_for/tacheon/src/parse.cpp b/examples/parallel_for/tacheon/src/parse.cpp
new file mode 100644
index 0000000..7127e22
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/parse.cpp
@@ -0,0 +1,860 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * parse.c - an UltraLame (tm) parser for simple data files...
+ *
+ *  $Id: parse.cpp,v 1.3 2007/02/22 17:54:15 dpoulsen Exp $
+ */
+
+#include <stdio.h>
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h> /* needed for toupper(), macro.. */
+
+#include "types.h"
+#include "api.h"      /* rendering API */
+
+#define PARSE_INTERNAL
+#include "parse.h" /* self protos */
+#undef PARSE_INTERNAL
+
+static texentry textable[NUMTEXS]; /* texture lookup table */
+static texentry defaulttex;     /* The default texture when a lookup fails */
+static int numtextures;         /* number of TEXDEF textures               */
+static int numobjectsparsed;    /* total number of objects parsed so far   */
+static color scenebackcol;   /* scene background color                  */
+
+static int stringcmp(char * a, char * b) {
+  int i, s, l;
+
+  s=strlen(a);
+  l=strlen(b);
+
+  if (s != l) 
+    return 1;
+
+  for (i=0; i<s; i++) {
+    if (toupper(a[i]) != toupper(b[i])) {
+      return 1;
+    }
+  }
+  return 0;
+}
+
+static void reset_tex_table(void) {
+  apitexture apitex;
+  
+  numtextures=0; 
+  memset(&textable, 0, sizeof(textable));
+
+  apitex.col.r=1.0;
+  apitex.col.g=1.0; 
+  apitex.col.b=1.0; 
+  apitex.ambient=0.1;
+  apitex.diffuse=0.9;
+  apitex.specular=0.0;
+  apitex.opacity=1.0;
+  apitex.texturefunc=0;
+
+  defaulttex.tex=rt_texture(&apitex);
+}
+
+static errcode add_texture(void * tex, char name[TEXNAMELEN]) {
+  textable[numtextures].tex=tex;
+  strcpy(textable[numtextures].name, name); 
+
+  numtextures++;
+  if (numtextures > NUMTEXS) {
+    fprintf(stderr, "Parse: %d textures allocated, texture slots full!\n", numtextures);
+    numtextures--; /* keep writing over last texture if we've run out.. */
+    return PARSEALLOCERR;
+  }
+
+  return PARSENOERR;
+}
+
+static void * find_texture(char name[TEXNAMELEN]) {
+  int i;
+  
+  for (i=0; i<numtextures; i++) {
+    if (strcmp(name, textable[i].name) == 0) 
+	return textable[i].tex;	
+  }
+  fprintf(stderr, "Undefined texture '%s', using default. \n",name);
+  return(defaulttex.tex); 
+}
+
+apiflt degtorad(apiflt deg) {
+  apiflt tmp;
+  tmp=deg * 3.1415926 / 180.0;
+  return tmp;
+}
+
+static void degvectoradvec(vector * degvec) {
+  vector tmp;
+
+  tmp.x=degtorad(degvec->x);
+  tmp.y=degtorad(degvec->y);
+  tmp.z=degtorad(degvec->z);
+  *degvec=tmp;
+}
+
+static void InitRot3d(RotMat * rot, apiflt x, apiflt y, apiflt z) {
+  rot->rx1=cos(y)*cos(z);
+  rot->rx2=sin(x)*sin(y)*cos(z) - cos(x)*sin(z);
+  rot->rx3=sin(x)*sin(z) + cos(x)*cos(z)*sin(y);
+  
+  rot->ry1=cos(y)*sin(z);
+  rot->ry2=cos(x)*cos(z) + sin(x)*sin(y)*sin(z);
+  rot->ry3=cos(x)*sin(y)*sin(z) - sin(x)*cos(z);
+
+  rot->rz1=sin(y);
+  rot->rz2=sin(x)*cos(y);
+  rot->rz3=cos(x)*cos(y);
+}
+
+static void Rotate3d(RotMat * rot, vector * vec) {
+  vector tmp;
+  tmp.x=(vec->x*(rot->rx1) + vec->y*(rot->rx2) + vec->z*(rot->rx3));
+  tmp.y=(vec->x*(rot->ry1) + vec->y*(rot->ry2) + vec->z*(rot->ry3));
+  tmp.z=(vec->x*(rot->rz1) + vec->y*(rot->rz2) + vec->z*(rot->rz3));
+  *vec=tmp; 
+}
+
+static void Scale3d(vector * scale, vector * vec) {
+  vec->x=vec->x * scale->x;
+  vec->y=vec->y * scale->y;
+  vec->z=vec->z * scale->z;
+}
+
+static void Trans3d(vector * trans, vector * vec) {
+  vec->x+=trans->x;
+  vec->y+=trans->y;
+  vec->z+=trans->z;
+}
+
+static errcode GetString(FILE * dfile, char * string) {
+  char data[255];
+
+  fscanf(dfile,"%s",data);
+  if (stringcmp(data, string) != 0) {
+    fprintf(stderr, "parse: Expected %s, got %s \n",string, data);
+    fprintf(stderr, "parse: Error while parsing object: %d \n",numobjectsparsed);
+    return PARSEBADSYNTAX;
+  }
+
+  return PARSENOERR;
+}
+
+unsigned int readmodel(char * modelfile, SceneHandle scene) {
+  FILE * dfile;
+  errcode rc;
+ 
+  reset_tex_table(); 
+  dfile=NULL;
+
+  dfile=fopen(modelfile,"r");
+  if (dfile==NULL) {
+    return PARSEBADFILE;
+  }
+
+  rc = GetScenedefs(dfile, scene); 
+  if (rc != PARSENOERR)
+    return rc;
+
+  scenebackcol.r = 0.0; /* default background is black */
+  scenebackcol.g = 0.0;
+  scenebackcol.b = 0.0;
+
+  numobjectsparsed=0;
+  while ((rc = GetObject(dfile, scene)) == PARSENOERR) {
+    numobjectsparsed++;
+  } 
+  fclose(dfile);
+
+  if (rc == PARSEEOF)
+    rc = PARSENOERR;
+
+  rt_background(scene, scenebackcol);
+
+  return rc;
+}
+
+
+static errcode GetScenedefs(FILE * dfile, SceneHandle scene) {
+  vector Ccenter, Cview, Cup;
+  apiflt zoom, aspectratio;
+  int raydepth, antialiasing;
+  char outfilename[200];
+  int xres, yres, verbose;
+  float a,b,c;
+  errcode rc = PARSENOERR;
+
+  rc |= GetString(dfile, "BEGIN_SCENE"); 
+
+  rc |= GetString(dfile, "OUTFILE");
+  fscanf(dfile, "%s", outfilename); 
+#ifdef _WIN32
+  if (strcmp (outfilename, "/dev/null") == 0) {
+    strcpy (outfilename, "NUL:");
+  }
+#endif
+ 
+  rc |= GetString(dfile, "RESOLUTION");
+  fscanf(dfile, "%d %d", &xres, &yres);
+
+  rc |= GetString(dfile, "VERBOSE");
+  fscanf(dfile, "%d", &verbose);
+
+  rt_scenesetup(scene, outfilename, xres, yres, verbose);
+
+  rc |= GetString(dfile, "CAMERA");
+
+  rc |= GetString(dfile, "ZOOM");
+  fscanf(dfile, "%f", &a);
+  zoom=a;
+
+  rc |= GetString(dfile, "ASPECTRATIO");
+  fscanf(dfile, "%f", &b);  
+  aspectratio=b;
+
+  rc |= GetString(dfile, "ANTIALIASING");
+  fscanf(dfile, "%d", &antialiasing);
+
+  rc |= GetString(dfile, "RAYDEPTH");
+  fscanf(dfile, "%d", &raydepth);
+
+  rc |= GetString(dfile, "CENTER");
+  fscanf(dfile,"%f %f %f", &a, &b, &c);
+  Ccenter.x = a;
+  Ccenter.y = b;
+  Ccenter.z = c;
+
+  rc |= GetString(dfile, "VIEWDIR");
+  fscanf(dfile,"%f %f %f", &a, &b, &c);
+  Cview.x = a;
+  Cview.y = b;
+  Cview.z = c;
+
+  rc |= GetString(dfile, "UPDIR");
+  fscanf(dfile,"%f %f %f", &a, &b, &c);
+  Cup.x = a;
+  Cup.y = b;
+  Cup.z = c;
+
+  rc |= GetString(dfile, "END_CAMERA");   
+
+  rt_camerasetup(scene, zoom, aspectratio, antialiasing, raydepth,
+              Ccenter, Cview, Cup);
+
+
+  return rc;
+}
+
+static errcode GetObject(FILE * dfile, SceneHandle scene) {
+  char objtype[80];
+ 
+  fscanf(dfile, "%s", objtype);
+  if (!stringcmp(objtype, "END_SCENE")) {
+    return PARSEEOF; /* end parsing */
+  }
+  if (!stringcmp(objtype, "TEXDEF")) {
+    return GetTexDef(dfile);
+  }	
+  if (!stringcmp(objtype, "TEXALIAS")) {
+    return GetTexAlias(dfile);
+  }
+  if (!stringcmp(objtype, "BACKGROUND")) {
+    return GetBackGnd(dfile);
+  }
+  if (!stringcmp(objtype, "CYLINDER")) {
+    return GetCylinder(dfile);
+  }
+  if (!stringcmp(objtype, "FCYLINDER")) {
+    return GetFCylinder(dfile);
+  }
+  if (!stringcmp(objtype, "POLYCYLINDER")) {
+    return GetPolyCylinder(dfile);
+  }
+  if (!stringcmp(objtype, "SPHERE")) {
+    return GetSphere(dfile);
+  }
+  if (!stringcmp(objtype, "PLANE")) {
+    return GetPlane(dfile);
+  }
+  if (!stringcmp(objtype, "RING")) {
+    return GetRing(dfile);
+  }
+  if (!stringcmp(objtype, "BOX")) {
+    return GetBox(dfile);
+  }
+  if (!stringcmp(objtype, "SCALARVOL")) {
+    return GetVol(dfile);
+  }
+  if (!stringcmp(objtype, "TRI")) {
+    return GetTri(dfile);
+  }
+  if (!stringcmp(objtype, "STRI")) {
+    return GetSTri(dfile);
+  }
+  if (!stringcmp(objtype, "LIGHT")) {
+    return GetLight(dfile);
+  }
+  if (!stringcmp(objtype, "SCAPE")) {
+    return GetLandScape(dfile);
+  }
+  if (!stringcmp(objtype, "TPOLYFILE")) {
+    return GetTPolyFile(dfile);
+  }
+
+  fprintf(stderr, "Found bad token: %s expected an object type\n", objtype);
+  return PARSEBADSYNTAX;
+}
+
+static errcode GetVector(FILE * dfile, vector * v1) {
+  float a, b, c;
+  
+  fscanf(dfile, "%f %f %f", &a, &b, &c); 
+  v1->x=a;
+  v1->y=b;
+  v1->z=c;
+
+  return PARSENOERR;
+}
+
+static errcode GetColor(FILE * dfile, color * c1) {
+  float r, g, b;
+  int rc; 
+
+  rc = GetString(dfile, "COLOR"); 
+  fscanf(dfile, "%f %f %f", &r, &g, &b);
+  c1->r=r;
+  c1->g=g;
+  c1->b=b;
+
+  return rc;
+}
+
+static errcode GetTexDef(FILE * dfile) {
+  char texname[TEXNAMELEN];
+
+  fscanf(dfile, "%s", texname);
+  add_texture(GetTexBody(dfile), texname); 
+
+  return PARSENOERR;
+}
+
+static errcode GetTexAlias(FILE * dfile) {
+  char texname[TEXNAMELEN];
+  char aliasname[TEXNAMELEN];
+
+  fscanf(dfile, "%s", texname);
+  fscanf(dfile, "%s", aliasname);
+  add_texture(find_texture(aliasname), texname); 
+
+  return PARSENOERR;
+}
+
+
+static errcode GetTexture(FILE * dfile, void ** tex) {
+  char tmp[255];
+  errcode rc = PARSENOERR;
+
+  fscanf(dfile, "%s", tmp);
+  if (!stringcmp("TEXTURE", tmp)) {	
+    *tex = GetTexBody(dfile);
+  }
+  else
+    *tex = find_texture(tmp);
+
+  return rc;
+}
+
+void * GetTexBody(FILE * dfile) {
+  char tmp[255];
+  float a,b,c,d, phong, phongexp, phongtype;
+  apitexture tex;
+  void * voidtex; 
+  errcode rc;
+
+  rc = GetString(dfile, "AMBIENT");
+  fscanf(dfile, "%f", &a); 
+  tex.ambient=a;
+
+  rc |= GetString(dfile, "DIFFUSE");
+  fscanf(dfile, "%f", &b);
+  tex.diffuse=b;
+
+  rc |= GetString(dfile, "SPECULAR");
+  fscanf(dfile, "%f", &c);
+  tex.specular=c;
+
+  rc |= GetString(dfile, "OPACITY");
+  fscanf(dfile, "%f", &d);  
+  tex.opacity=d;
+
+  fscanf(dfile, "%s", tmp);
+  if (!stringcmp("PHONG", tmp)) {
+    fscanf(dfile, "%s", tmp);
+    if (!stringcmp("METAL", tmp)) {
+      phongtype = RT_PHONG_METAL;
+    }
+    else if (!stringcmp("PLASTIC", tmp)) {
+      phongtype = RT_PHONG_PLASTIC;
+    }
+    else {
+      phongtype = RT_PHONG_PLASTIC;
+    } 
+
+    fscanf(dfile, "%f", &phong);
+    GetString(dfile, "PHONG_SIZE");
+    fscanf(dfile, "%f", &phongexp);
+    fscanf(dfile, "%s", tmp);
+  }     
+  else { 
+    phong = 0.0;
+    phongexp = 100.0;
+    phongtype = RT_PHONG_PLASTIC;
+  }
+  
+  fscanf(dfile, "%f %f %f", &a, &b, &c);
+  tex.col.r = a;
+  tex.col.g = b;
+  tex.col.b = c;
+ 
+  rc |= GetString(dfile, "TEXFUNC");
+  fscanf(dfile, "%d", &tex.texturefunc);
+  if (tex.texturefunc >= 7) {    /* if its an image map, we need a filename */
+    fscanf(dfile, "%s", tex.imap);
+  }
+  if (tex.texturefunc != 0) {
+    rc |= GetString(dfile, "CENTER");
+    rc |= GetVector(dfile, &tex.ctr);
+    rc |= GetString(dfile, "ROTATE");
+    rc |= GetVector(dfile, &tex.rot);
+    rc |= GetString(dfile, "SCALE");
+    rc |= GetVector(dfile, &tex.scale);
+  }
+  if (tex.texturefunc == 9) {
+    rc |= GetString(dfile, "UAXIS");
+    rc |= GetVector(dfile, &tex.uaxs);
+    rc |= GetString(dfile, "VAXIS");
+    rc |= GetVector(dfile, &tex.vaxs);
+  }
+
+  voidtex = rt_texture(&tex);
+  rt_tex_phong(voidtex, phong, phongexp, (int) phongtype);
+
+  return voidtex;
+}
+
+static errcode GetLight(FILE * dfile) {
+  apiflt rad;
+  vector ctr;
+  apitexture tex;
+  float a; 
+  errcode rc;
+
+  memset(&tex, 0, sizeof(apitexture)); 
+
+  rc = GetString(dfile,"CENTER"); 
+  rc |= GetVector(dfile, &ctr); 
+  rc |= GetString(dfile,"RAD");
+  fscanf(dfile,"%f",&a);  /* read in radius */ 
+  rad=a;
+
+  rc |= GetColor(dfile, &tex.col);
+  
+  rt_light(rt_texture(&tex), ctr, rad);
+
+  return rc;
+}
+
+static errcode GetBackGnd(FILE * dfile) {
+  float r,g,b;
+  
+  fscanf(dfile, "%f %f %f", &r, &g, &b);
+
+  scenebackcol.r=r;
+  scenebackcol.g=g;
+  scenebackcol.b=b;
+
+  return PARSENOERR;
+}
+
+static errcode GetCylinder(FILE * dfile) {
+  apiflt rad;
+  vector ctr, axis;
+  void * tex;
+  float a;
+  errcode rc;
+
+  rc = GetString(dfile, "CENTER");
+  rc |= GetVector(dfile, &ctr);
+  rc |= GetString(dfile, "AXIS");
+  rc |= GetVector(dfile, &axis);
+  rc |= GetString(dfile, "RAD");
+  fscanf(dfile, "%f", &a);
+  rad=a;
+
+  rc |= GetTexture(dfile, &tex);
+  rt_cylinder(tex, ctr, axis, rad); 
+
+  return rc;
+}
+
+static errcode GetFCylinder(FILE * dfile) {
+  apiflt rad;
+  vector ctr, axis;
+  vector pnt1, pnt2;
+  void * tex;
+  float a;
+  errcode rc;
+
+  rc = GetString(dfile, "BASE");
+  rc |= GetVector(dfile, &pnt1);
+  rc |= GetString(dfile, "APEX");
+  rc |= GetVector(dfile, &pnt2);
+
+  ctr=pnt1;
+  axis.x=pnt2.x - pnt1.x; 
+  axis.y=pnt2.y - pnt1.y;
+  axis.z=pnt2.z - pnt1.z;
+
+  rc |= GetString(dfile, "RAD");
+  fscanf(dfile, "%f", &a);
+  rad=a;
+
+  rc |= GetTexture(dfile, &tex);
+  rt_fcylinder(tex, ctr, axis, rad); 
+
+  return rc;
+}
+ 
+static errcode GetPolyCylinder(FILE * dfile) {
+  apiflt rad;
+  vector * temp;
+  void * tex;
+  float a;
+  int numpts, i;
+  errcode rc;
+
+  rc = GetString(dfile, "POINTS");
+  fscanf(dfile, "%d", &numpts);
+
+  temp = (vector *) malloc(numpts * sizeof(vector));
+
+  for (i=0; i<numpts; i++) {
+    rc |= GetVector(dfile, &temp[i]);
+  }         
+
+  rc |= GetString(dfile, "RAD");
+  fscanf(dfile, "%f", &a);
+  rad=a;
+
+  rc |= GetTexture(dfile, &tex);
+  rt_polycylinder(tex, temp, numpts, rad); 
+
+  free(temp);
+
+  return rc;
+}
+ 
+
+static errcode GetSphere(FILE * dfile) {
+  apiflt rad;
+  vector ctr;
+  void * tex;
+  float a;
+  errcode rc;
+ 
+  rc = GetString(dfile,"CENTER");
+  rc |= GetVector(dfile, &ctr); 
+  rc |= GetString(dfile, "RAD");
+  fscanf(dfile,"%f",&a); 
+  rad=a;
+
+  rc |= GetTexture(dfile, &tex); 
+ 
+  rt_sphere(tex, ctr, rad);
+
+  return rc;
+}
+
+static errcode GetPlane(FILE * dfile) {
+  vector normal;
+  vector ctr;
+  void * tex;
+  errcode rc;
+
+  rc = GetString(dfile, "CENTER");
+  rc |= GetVector(dfile, &ctr);
+  rc |= GetString(dfile, "NORMAL");
+  rc |= GetVector(dfile, &normal);
+  rc |= GetTexture(dfile, &tex);
+
+  rt_plane(tex, ctr, normal);
+
+  return rc;
+}
+
+static errcode GetVol(FILE * dfile) {
+  vector min, max;
+  int x,y,z;  
+  char fname[255];
+  void * tex;
+  errcode rc;
+ 
+  rc = GetString(dfile, "MIN");
+  rc |= GetVector(dfile, &min);
+  rc |= GetString(dfile, "MAX");
+  rc |= GetVector(dfile, &max);
+  rc |= GetString(dfile, "DIM");
+  fscanf(dfile, "%d %d %d ", &x, &y, &z);
+  rc |= GetString(dfile, "FILE");
+  fscanf(dfile, "%s", fname);  
+  rc |= GetTexture(dfile, &tex);
+ 
+  rt_scalarvol(tex, min, max, x, y, z, fname, NULL); 
+
+  return rc;
+}
+
+static errcode GetBox(FILE * dfile) {
+  vector min, max;
+  void * tex;
+  errcode rc;
+
+  rc = GetString(dfile, "MIN");
+  rc |= GetVector(dfile, &min);
+  rc |= GetString(dfile, "MAX");
+  rc |= GetVector(dfile, &max);
+  rc |= GetTexture(dfile, &tex);
+
+  rt_box(tex, min, max);
+
+  return rc;
+}
+
+static errcode GetRing(FILE * dfile) {
+  vector normal;
+  vector ctr;
+  void * tex;
+  float a,b;
+  errcode rc;
+ 
+  rc = GetString(dfile, "CENTER");
+  rc |= GetVector(dfile, &ctr);
+  rc |= GetString(dfile, "NORMAL");
+  rc |= GetVector(dfile, &normal);
+  rc |= GetString(dfile, "INNER");
+  fscanf(dfile, " %f ", &a);
+  rc |= GetString(dfile, "OUTER");
+  fscanf(dfile, " %f ", &b);
+  rc |= GetTexture(dfile, &tex);
+ 
+  rt_ring(tex, ctr, normal, a, b);
+
+  return rc;
+}
+
+static errcode GetTri(FILE * dfile) {
+  vector v0,v1,v2;
+  void * tex;
+  errcode rc;
+
+  rc = GetString(dfile, "V0");
+  rc |= GetVector(dfile, &v0);
+
+  rc |= GetString(dfile, "V1");
+  rc |= GetVector(dfile, &v1);
+
+  rc |= GetString(dfile, "V2");
+  rc |= GetVector(dfile, &v2);
+
+  rc |= GetTexture(dfile, &tex);
+
+  rt_tri(tex, v0, v1, v2);
+
+  return rc;
+}
+
+static errcode GetSTri(FILE * dfile) {
+  vector v0,v1,v2,n0,n1,n2;
+  void * tex;
+  errcode rc;
+
+  rc = GetString(dfile, "V0");
+  rc |= GetVector(dfile, &v0);
+
+  rc |= GetString(dfile, "V1");
+  rc |= GetVector(dfile, &v1);
+
+  rc |= GetString(dfile, "V2");
+  rc |= GetVector(dfile, &v2);
+  
+  rc |= GetString(dfile, "N0");
+  rc |= GetVector(dfile, &n0);
+
+  rc |= GetString(dfile, "N1");
+  rc |= GetVector(dfile, &n1);
+
+  rc |= GetString(dfile, "N2");
+  rc |= GetVector(dfile, &n2);
+
+  rc |= GetTexture(dfile, &tex);
+  
+  rt_stri(tex, v0, v1, v2, n0, n1, n2);
+
+  return rc;
+}
+
+static errcode GetLandScape(FILE * dfile) {
+  void * tex;
+  vector ctr;
+  apiflt wx, wy;
+  int m, n;
+  float a,b;
+  errcode rc;
+
+  rc = GetString(dfile, "RES");
+  fscanf(dfile, "%d %d", &m, &n);
+
+  rc |= GetString(dfile, "SCALE");
+  fscanf(dfile, "%f %f", &a, &b);   
+  wx=a;
+  wy=b;
+
+  rc |= GetString(dfile, "CENTER");
+  rc |= GetVector(dfile, &ctr);
+
+  rc |= GetTexture(dfile, &tex);
+
+  rt_landscape(tex, m, n, ctr, wx, wy);
+
+  return rc;
+}
+
+static errcode GetTPolyFile(FILE * dfile) {
+  void * tex;
+  vector ctr, rot, scale;
+  vector v1, v2, v0;
+  char ifname[255];
+  FILE *ifp;
+  int v, totalpolys;
+  RotMat RotA;
+  errcode rc;
+
+  totalpolys=0;
+
+  rc = GetString(dfile, "SCALE"); 
+  rc |= GetVector(dfile, &scale);
+
+  rc |= GetString(dfile, "ROT");
+  rc |= GetVector(dfile, &rot);
+
+  degvectoradvec(&rot); 
+  InitRot3d(&RotA, rot.x, rot.y, rot.z);
+
+  rc |= GetString(dfile, "CENTER");
+  rc |= GetVector(dfile, &ctr);
+
+  rc |= GetString(dfile, "FILE");
+  fscanf(dfile, "%s", ifname);
+
+  rc |= GetTexture(dfile, &tex);
+
+  if ((ifp=fopen(ifname, "r")) == NULL) {
+    fprintf(stderr, "Can't open data file %s for input!! Aborting...\n", ifname);
+    return PARSEBADSUBFILE;
+  }
+
+  while (!feof(ifp)) {
+    fscanf(ifp, "%d", &v);
+    if (v != 3) { break; }
+
+    totalpolys++;
+    v=0; 
+     
+    rc |= GetVector(ifp, &v0);
+    rc |= GetVector(ifp, &v1);
+    rc |= GetVector(ifp, &v2);
+
+    Scale3d(&scale, &v0);
+    Scale3d(&scale, &v1);
+    Scale3d(&scale, &v2);
+
+    Rotate3d(&RotA, &v0); 
+    Rotate3d(&RotA, &v1); 
+    Rotate3d(&RotA, &v2); 
+
+    Trans3d(&ctr, &v0);
+    Trans3d(&ctr, &v1);
+    Trans3d(&ctr, &v2);
+
+    rt_tri(tex, v1, v0, v2);
+  }
+
+  fclose(ifp);
+
+  return rc;
+}
diff --git a/examples/parallel_for/tacheon/src/parse.h b/examples/parallel_for/tacheon/src/parse.h
new file mode 100644
index 0000000..73cdd63
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/parse.h
@@ -0,0 +1,122 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * parse.h - this file contains defines for model file reading.
+ *
+ *  $Id: parse.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#define PARSENOERR       0
+#define PARSEBADFILE     1
+#define PARSEBADSUBFILE  2
+#define PARSEBADSYNTAX   4
+#define PARSEEOF         8
+#define PARSEALLOCERR    16
+ 
+unsigned int readmodel(char *, SceneHandle);
+
+#ifdef PARSE_INTERNAL
+#define NUMTEXS 32768
+#define TEXNAMELEN 24
+
+typedef struct {
+   double rx1; double rx2; double rx3;
+   double ry1; double ry2; double ry3;
+   double rz1; double rz2; double rz3;
+} RotMat;
+
+typedef struct {
+        char name[TEXNAMELEN];
+        void * tex;
+} texentry;
+
+#ifdef _ERRCODE_DEFINED
+#define errcode errcode_t
+#endif//_ERRCODE_DEFINED
+typedef unsigned int errcode;
+
+static errcode add_texture(void * tex, char name[TEXNAMELEN]);
+static errcode GetString(FILE *, char *);
+static errcode GetScenedefs(FILE *, SceneHandle);
+static errcode GetColor(FILE *, color *);
+static errcode GetVector(FILE *, vector *);
+static errcode GetTexDef(FILE *);
+static errcode GetTexAlias(FILE *);
+static errcode GetTexture(FILE *, void **);
+void * GetTexBody(FILE *);
+static errcode GetBackGnd(FILE *);
+static errcode GetCylinder(FILE *);
+static errcode GetFCylinder(FILE *);
+static errcode GetPolyCylinder(FILE *);
+static errcode GetSphere(FILE *);
+static errcode GetPlane(FILE *);
+static errcode GetRing(FILE *);
+static errcode GetBox(FILE *);
+static errcode GetVol(FILE *);
+static errcode GetTri(FILE *);
+static errcode GetSTri(FILE *);
+static errcode GetLight(FILE *);
+static errcode GetLandScape(FILE *);
+static errcode GetTPolyFile(FILE *);
+static errcode GetMGFFile(FILE *, SceneHandle);
+static errcode GetObject(FILE *, SceneHandle);
+
+#endif
diff --git a/examples/parallel_for/tacheon/src/plane.cpp b/examples/parallel_for/tacheon/src/plane.cpp
new file mode 100644
index 0000000..a627c6b
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/plane.cpp
@@ -0,0 +1,118 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * plane.c - This file contains the functions for dealing with planes.
+ *
+ *  $Id: plane.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define PLANE_PRIVATE
+#include "plane.h"
+
+static object_methods plane_methods = {
+  (void (*)(void *, void *))(plane_intersect),
+  (void (*)(void *, void *, void *, void *))(plane_normal),
+  plane_bbox, 
+  free 
+};
+
+object * newplane(void * tex, vector ctr, vector norm) {
+  plane * p;
+  
+  p=(plane *) rt_getmem(sizeof(plane));
+  memset(p, 0, sizeof(plane));
+  p->methods = &plane_methods;
+
+  p->tex = (texture *)tex;
+  p->norm = norm;
+  VNorm(&p->norm);
+  p->d = -VDot(&ctr, &p->norm);
+
+  return (object *) p;
+}
+
+static int plane_bbox(void * obj, vector * min, vector * max) {
+  return 0;
+}
+
+static void plane_intersect(plane * pln, ray * ry) {
+  flt t,td;
+   
+  t=-(pln->d + VDot(&pln->norm, &ry->o));
+  td=VDot(&pln->norm, &ry->d); 
+  if (td != 0.0) {
+    t /= td;
+    if (t > 0.0)
+      add_intersection(t,(object *) pln, ry);
+  }
+}
+
+static void plane_normal(plane * pln, vector  * pnt, ray * incident, vector * N) {
+  *N=pln->norm;
+}
+
diff --git a/examples/parallel_for/tacheon/src/plane.h b/examples/parallel_for/tacheon/src/plane.h
new file mode 100644
index 0000000..ce677ca
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/plane.h
@@ -0,0 +1,83 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * plane.h - This file contains the defines for planes etc.
+ *
+ *  $Id: plane.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+ 
+object * newplane(void * tex, vector ctr, vector norm);
+
+#ifdef PLANE_PRIVATE
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  flt d;
+  vector norm;
+} plane; 
+
+static void plane_intersect(plane *, ray *);
+static int plane_bbox(void * obj, vector * min, vector * max);
+static void plane_normal(plane *, vector *, ray * incident, vector *);
+#endif
diff --git a/examples/parallel_for/tacheon/src/ppm.cpp b/examples/parallel_for/tacheon/src/ppm.cpp
new file mode 100644
index 0000000..b2a5bb9
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/ppm.cpp
@@ -0,0 +1,127 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ *  ppm.c - This file deals with PPM format image files (reading/writing)
+ *
+ *  $Id: ppm.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */ 
+
+/* For our puposes, we're interested only in the 3 byte per pixel 24 bit
+   truecolor sort of file..  Probably won't implement any decent checking
+   at this point, probably choke on things like the # comments.. */
+
+#include <stdio.h>
+#include "machine.h"
+#include "types.h"
+#include "util.h"
+#include "imageio.h" /* error codes etc */
+#include "ppm.h"
+
+static int getint(FILE * dfile) {
+  char ch[200];
+  int i;
+  int num;
+
+  num=0; 
+  while (num==0) {
+    fscanf(dfile, "%s", ch);
+      while (ch[0]=='#') {
+        fgets(ch, 200, dfile);
+      }
+    num=sscanf(ch, "%d", &i);
+  }
+  return i;
+}
+
+int readppm(char * name, int * xres, int * yres, unsigned char **imgdata) {
+  char data[200];  
+  FILE * ifp;
+  int i, bytesread;
+  int datasize;
+ 
+  ifp=fopen(name, "r");  
+  if (ifp==NULL) {
+    return IMAGEBADFILE; /* couldn't open the file */
+  }
+  fscanf(ifp, "%s", data);
+ 
+  if (strcmp(data, "P6")) {
+     fclose(ifp);
+     return IMAGEUNSUP; /* not a format we support */
+  }
+
+  *xres=getint(ifp);
+  *yres=getint(ifp);
+      i=getint(ifp); /* eat the maxval number */
+  fread(&i, 1, 1, ifp); /* eat the newline */ 
+  datasize = 3 * (*xres) * (*yres);
+
+  *imgdata=(unsigned char *)rt_getmem(datasize); 
+
+  bytesread=fread(*imgdata, 1, datasize, ifp);   
+
+  fclose(ifp);
+
+  if (bytesread != datasize) 
+    return IMAGEREADERR;
+  
+  return IMAGENOERR;
+}
diff --git a/examples/parallel_for/tacheon/src/ppm.h b/examples/parallel_for/tacheon/src/ppm.h
new file mode 100644
index 0000000..156f72a
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/ppm.h
@@ -0,0 +1,71 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ *  ppm.h - This file deals with PPM format image files (reading/writing)
+ *
+ *  $Id: ppm.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */ 
+
+/* For our puposes, we're interested only in the 3 byte per pixel 24 bit
+   truecolor sort of file..  Probably won't implement any decent checking
+   at this point, probably choke on things like the # comments.. */
+
+int readppm(char * name, int * xres, int * yres, unsigned char **imgdata);
diff --git a/examples/parallel_for/tacheon/src/pthread.cpp b/examples/parallel_for/tacheon/src/pthread.cpp
new file mode 100644
index 0000000..b21eeb2
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/pthread.cpp
@@ -0,0 +1,167 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#ifdef EMULATE_PTHREADS
+
+#include <assert.h>
+#include "pthread.h"
+
+/*
+    Basics
+*/
+
+int
+pthread_create (pthread_t *thread, pthread_attr_t *attr, void *(*start_routine) (void *), void *arg)
+{
+    pthread_t th;
+
+    if (thread == NULL) return EINVAL;
+    *thread = NULL;
+
+    if (start_routine == NULL) return EINVAL;
+
+    th = (pthread_t) malloc (sizeof (pthread_s));
+    memset (th, 0, sizeof (pthread_s));
+
+    th->winthread_handle = CreateThread (
+        NULL,
+        0,
+        (LPTHREAD_START_ROUTINE) start_routine,
+        arg,
+        0,
+        &th->winthread_id);
+    if (th->winthread_handle == NULL) return EAGAIN;  /*  GetLastError()  */
+
+    *thread = th;
+    return 0;
+}
+
+int
+pthread_join (pthread_t th, void **thread_return)
+{
+    BOOL b_ret;
+    DWORD dw_ret;
+
+    if (thread_return) *thread_return = NULL;
+
+    if ((th == NULL) || (th->winthread_handle == NULL)) return EINVAL;
+
+    dw_ret = WaitForSingleObject (th->winthread_handle, INFINITE);
+    if (dw_ret != WAIT_OBJECT_0) return ERROR_PTHREAD;  /*  dw_ret == WAIT_FAILED; GetLastError()  */
+
+    if (thread_return) {
+        BOOL e_ret;
+        DWORD exit_val;
+        e_ret = GetExitCodeThread (th->winthread_handle, &exit_val);
+        if (!e_ret) return ERROR_PTHREAD;  /*  GetLastError()  */
+        *thread_return = (void *)(size_t) exit_val;
+    }
+
+    b_ret = CloseHandle (th->winthread_handle);
+    if (!b_ret) return ERROR_PTHREAD;  /*  GetLastError()  */
+    memset (th, 0, sizeof (pthread_s));
+    free (th);
+    th = NULL;
+
+    return 0;
+}
+
+void
+pthread_exit (void *retval)
+{
+    /*  specific to PTHREAD_TO_WINTHREAD  */
+
+    ExitThread ((DWORD) ((size_t) retval));  /*  thread becomes signalled so its death can be waited upon  */
+    /*NOTREACHED*/
+    assert (0); return;  /*  void fnc; can't return an error code  */
+}
+
+/*
+    Mutex
+*/
+
+int
+pthread_mutex_init (pthread_mutex_t *mutex, pthread_mutexattr_t *mutex_attr)
+{
+    InitializeCriticalSection (&mutex->critsec);
+    return 0;
+}
+
+int
+pthread_mutex_destroy (pthread_mutex_t *mutex)
+{
+    return 0;
+}
+
+int
+pthread_mutex_lock (pthread_mutex_t *mutex)
+{
+    EnterCriticalSection (&mutex->critsec);
+    return 0;
+}
+
+int
+pthread_mutex_unlock (pthread_mutex_t *mutex)
+{
+    LeaveCriticalSection (&mutex->critsec);
+    return 0;
+}
+
+#endif  /*  EMULATE_PTHREADS  */
diff --git a/examples/parallel_for/tacheon/src/pthread.h b/examples/parallel_for/tacheon/src/pthread.h
new file mode 100644
index 0000000..088a973
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/pthread.h
@@ -0,0 +1,120 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#ifdef EMULATE_PTHREADS
+
+#ifndef _PTHREAD_H_DEFINED
+#define _PTHREAD_H_DEFINED
+
+#include <windows.h>
+#include <errno.h>
+#ifndef ENOTSUP
+#define ENOTSUP EPERM
+#endif
+
+/*  just need <stddef.h> on Windows to get size_t defined  */
+#include <stddef.h>
+
+#define ERROR_PTHREAD 1000
+#define ERROR_MODE 1001
+#define ERROR_UNIMPL 1002
+
+/*
+    Basics
+*/
+
+struct pthread_s {
+    HANDLE winthread_handle;
+    DWORD winthread_id;
+};
+typedef struct pthread_s *pthread_t;  /*  one of the few types that's pointer, not struct  */
+
+typedef struct {
+    int i;  /*  not yet defined...  */
+} pthread_attr_t;
+
+/*
+    Mutex
+*/
+
+typedef struct {
+    int i;  /*  not yet defined...  */
+} pthread_mutexattr_t;
+
+typedef struct {
+    CRITICAL_SECTION critsec;
+} pthread_mutex_t;
+
+/*
+    Function prototypes
+*/
+
+extern int pthread_create (pthread_t *thread, pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
+extern int pthread_join (pthread_t th, void **thread_return);
+extern void pthread_exit (void *retval);
+
+extern int pthread_mutex_init (pthread_mutex_t *mutex, pthread_mutexattr_t *mutex_attr);
+extern int pthread_mutex_destroy (pthread_mutex_t *mutex);
+extern int pthread_mutex_lock (pthread_mutex_t *mutex);
+extern int pthread_mutex_unlock (pthread_mutex_t *mutex);
+
+#endif  /*  _PTHREAD_H_DEFINED  */
+
+#endif  /*  EMULATE_PTHREADS  */
diff --git a/examples/parallel_for/tacheon/src/quadric.cpp b/examples/parallel_for/tacheon/src/quadric.cpp
new file mode 100644
index 0000000..908a3b2
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/quadric.cpp
@@ -0,0 +1,183 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * quadric.c - This file contains the functions for dealing with quadrics.
+ *
+ *  $Id: quadric.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "quadric.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+int quadric_bbox(void * obj, vector * min, vector * max) {
+  return 0;
+}
+
+static object_methods quadric_methods = {
+  (void (*)(void *, void *))(quadric_intersect),
+  (void (*)(void *, void *, void *, void *))(quadric_normal),
+  quadric_bbox, 
+  free 
+};
+ 
+quadric * newquadric() {
+  quadric * q;
+ 
+  q=(quadric *) rt_getmem(sizeof(quadric));
+  memset(q, 0, sizeof(quadric));
+  q->ctr.x=0.0;
+  q->ctr.y=0.0;
+  q->ctr.z=0.0;
+  q->methods = &quadric_methods;
+ 
+  return q;
+}
+
+void quadric_intersect(quadric * q, ray * ry) {
+  flt Aq, Bq, Cq;
+  flt t1, t2;
+  flt disc;
+  vector rd;
+  vector ro;
+ 
+  rd=ry->d;
+  VNorm(&rd);
+
+  ro.x =  ry->o.x - q->ctr.x;
+  ro.y =  ry->o.y - q->ctr.y;
+  ro.z =  ry->o.z - q->ctr.z;
+
+
+  Aq = (q->mat.a*(rd.x * rd.x)) +
+        (2.0 * q->mat.b * rd.x * rd.y) +
+        (2.0 * q->mat.c * rd.x * rd.z) +
+        (q->mat.e * (rd.y * rd.y)) +
+        (2.0 * q->mat.f * rd.y * rd.z) +
+        (q->mat.h * (rd.z * rd.z));
+
+  Bq = 2.0 * (
+        (q->mat.a * ro.x * rd.x) +
+        (q->mat.b * ((ro.x * rd.y) + (rd.x * ro.y))) +
+        (q->mat.c * ((ro.x * rd.z) + (rd.x * ro.z))) +
+        (q->mat.d * rd.x) +
+        (q->mat.e * ro.y * rd.y) +
+        (q->mat.f * ((ro.y * rd.z) + (rd.y * ro.z))) +
+        (q->mat.g * rd.y) +
+        (q->mat.h * ro.z * rd.z) +
+        (q->mat.i * rd.z)
+        );
+
+  Cq = (q->mat.a * (ro.x * ro.x)) +
+        (2.0 * q->mat.b * ro.x * ro.y) +
+        (2.0 * q->mat.c * ro.x * ro.z) +
+        (2.0 * q->mat.d * ro.x) +
+        (q->mat.e * (ro.y * ro.y)) +
+        (2.0 * q->mat.f * ro.y * ro.z) +
+        (2.0 * q->mat.g * ro.y) +
+        (q->mat.h * (ro.z * ro.z)) +
+        (2.0 * q->mat.i * ro.z) +
+        q->mat.j;
+
+  if (Aq == 0.0) {
+          t1 = - Cq / Bq;
+          add_intersection(t1, (object *) q, ry);
+          }
+  else {
+    disc=(Bq*Bq - 4.0 * Aq * Cq);
+    if (disc > 0.0) {
+          disc=sqrt(disc);
+          t1 = (-Bq + disc) / (2.0 * Aq);
+          t2 = (-Bq - disc) / (2.0 * Aq);
+          add_intersection(t1, (object *) q, ry);
+          add_intersection(t2, (object *) q, ry); 
+          }
+  }
+}
+
+void quadric_normal(quadric * q, vector * pnt, ray * incident, vector * N) {
+
+  N->x = (q->mat.a*(pnt->x - q->ctr.x) + 
+	  q->mat.b*(pnt->y - q->ctr.y) + 
+	  q->mat.c*(pnt->z - q->ctr.z) + q->mat.d);
+
+  N->y = (q->mat.b*(pnt->x - q->ctr.x) + 
+	  q->mat.e*(pnt->y - q->ctr.y) + 
+	  q->mat.f*(pnt->z - q->ctr.z) + q->mat.g);
+
+  N->z = (q->mat.c*(pnt->x - q->ctr.x) + 
+	  q->mat.f*(pnt->y - q->ctr.y) + 
+	  q->mat.h*(pnt->z - q->ctr.z) + q->mat.i);
+
+  VNorm(N);
+
+  if (VDot(N, &(incident->d)) > 0.0)  {
+    N->x=-N->x;
+    N->y=-N->y;
+    N->z=-N->z;
+  } 
+}
+ 
+
diff --git a/examples/parallel_for/tacheon/src/quadric.h b/examples/parallel_for/tacheon/src/quadric.h
new file mode 100644
index 0000000..1083daf
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/quadric.h
@@ -0,0 +1,86 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * quadric.h - This file contains the defines for quadrics.
+ *
+ *  $Id: quadric.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+typedef struct {
+  flt a; flt b; flt c;
+  flt d; flt e; flt f;
+  flt g; flt h; flt i; flt j;
+} quadmatrix;
+
+ 
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector ctr;
+  quadmatrix mat;
+} quadric; 
+
+
+quadric * newquadric(void);
+void quadric_intersect(quadric *, ray *);
+void quadric_normal(quadric *, vector *, ray *, vector *);
diff --git a/examples/parallel_for/tacheon/src/render.cpp b/examples/parallel_for/tacheon/src/render.cpp
new file mode 100644
index 0000000..a1fbff1
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/render.cpp
@@ -0,0 +1,106 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * render.c - This file contains the main program and driver for the raytracer.
+ *
+ *  $Id: render.cpp,v 1.5.2.1 2007/06/04 19:23:39 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "tgafile.h"
+#include "trace.h"
+#include "render.h"
+#include "util.h"
+#include "light.h"
+#include "global.h"
+#include "ui.h"
+#include "video.h"
+#include "objbound.h"
+#include "grid.h"
+
+/* how many pieces to divide each scanline into */
+#define NUMHORZDIV 1  
+
+void renderscene(scenedef scene) {
+  //char msgtxt[2048];
+  //void * outfile;
+  /* Grid based accerlation scheme */
+  if (scene.boundmode == RT_BOUNDING_ENABLED) 
+    engrid_scene(&rootobj); /* grid */
+  /* Not used now
+  if (scene.verbosemode) { 
+    sprintf(msgtxt, "Opening %s for output.", scene.outfilename); 
+    rt_ui_message(MSG_0, msgtxt);
+  }
+
+  createtgafile(scene.outfilename,  
+                  (unsigned short) scene.hres, 
+                  (unsigned short) scene.vres);
+  outfile = opentgafile(scene.outfilename);
+  */
+
+  timerstart();
+
+  trace_region (scene, 0/*outfile*/, 0, 0, scene.hres, scene.vres);
+  //fclose((FILE *)outfile);
+} /* end of renderscene() */
diff --git a/examples/parallel_for/tacheon/src/render.h b/examples/parallel_for/tacheon/src/render.h
new file mode 100644
index 0000000..fac56e9
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/render.h
@@ -0,0 +1,68 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * render.h - This file contains the defines for the top level functions 
+ *
+ *  $Id: render.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+
+void renderscene(scenedef); 
diff --git a/examples/parallel_for/tacheon/src/ring.cpp b/examples/parallel_for/tacheon/src/ring.cpp
new file mode 100644
index 0000000..dcaa994
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/ring.cpp
@@ -0,0 +1,144 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * ring.c - This file contains the functions for dealing with rings.
+ *
+ *  $Id: ring.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define RING_PRIVATE
+#include "ring.h"
+
+static object_methods ring_methods = {
+  (void (*)(void *, void *))(ring_intersect),
+  (void (*)(void *, void *, void *, void *))(ring_normal),
+  ring_bbox, 
+  free 
+};
+
+object * newring(void * tex, vector ctr, vector norm, flt inrad, flt outrad) {
+  ring * r;
+  
+  r=(ring *) rt_getmem(sizeof(ring));
+  memset(r, 0, sizeof(ring));
+  r->methods = &ring_methods;
+
+  r->tex = (texture *)tex;
+  r->ctr = ctr;
+  r->norm = norm;
+  r->inrad = inrad;
+  r->outrad= outrad;
+
+  return (object *) r;
+}
+
+static int ring_bbox(void * obj, vector * min, vector * max) {
+  ring * r = (ring *) obj;
+
+  min->x = r->ctr.x - r->outrad;
+  min->y = r->ctr.y - r->outrad;
+  min->z = r->ctr.z - r->outrad;
+  max->x = r->ctr.x + r->outrad;
+  max->y = r->ctr.y + r->outrad;
+  max->z = r->ctr.z + r->outrad;
+
+  return 1;
+}
+
+static void ring_intersect(ring * rng, ray * ry) {
+  flt d;
+  flt t,td;
+  vector hit, pnt;
+  
+  d = -VDot(&(rng->ctr), &(rng->norm));
+   
+  t=-(d+VDot(&(rng->norm), &(ry->o)));
+  td=VDot(&(rng->norm),&(ry->d)); 
+  if (td != 0.0) {
+    t= t / td;
+    if (t>=0.0) {
+      hit=Raypnt(ry, t);
+      VSUB(hit, rng->ctr, pnt);
+      VDOT(td, pnt, pnt);
+      td=sqrt(td);
+      if ((td > rng->inrad) && (td < rng->outrad)) 
+        add_intersection(t,(object *) rng, ry);
+    }
+  }
+}
+
+static void ring_normal(ring * rng, vector  * pnt, ray * incident, vector * N) {
+  *N=rng->norm;
+  VNorm(N);
+  if (VDot(N, &(incident->d)) > 0.0)  {
+    N->x=-N->x;
+    N->y=-N->y;
+    N->z=-N->z;
+  } 
+}
+
diff --git a/examples/parallel_for/tacheon/src/ring.h b/examples/parallel_for/tacheon/src/ring.h
new file mode 100644
index 0000000..df2037a
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/ring.h
@@ -0,0 +1,84 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * ring.h - This file contains the defines for rings etc.
+ *
+ *  $Id: ring.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+object * newring(void * tex, vector ctr, vector norm, flt in, flt out);
+
+#ifdef RING_PRIVATE 
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector ctr;
+  vector norm;
+  flt inrad;
+  flt outrad;
+} ring; 
+
+static int ring_bbox(void * obj, vector * min, vector * max);
+static void ring_intersect(ring *, ray *);
+static void ring_normal(ring *, vector *, ray * incident, vector *);
+#endif
diff --git a/examples/parallel_for/tacheon/src/shade.cpp b/examples/parallel_for/tacheon/src/shade.cpp
new file mode 100644
index 0000000..a453ae5
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/shade.cpp
@@ -0,0 +1,271 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * shade.c - This file contains the functions that perform surface shading.
+ *
+ *  $Id: shade.cpp,v 1.3 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "light.h"
+#include "intersect.h"
+#include "vector.h"
+#include "trace.h"
+#include "global.h"
+#include "shade.h"
+
+void reset_lights(void) {
+  numlights=0;
+}
+
+void add_light(point_light * li) {
+  lightlist[numlights]=li;
+  numlights++;
+}
+
+color shader(ray * incident) {
+  color col, diffuse, phongcol; 
+  vector N, L, hit;
+  ray shadowray;
+  flt inten, t, Llen;
+  object * obj;
+  int numints, i;
+  point_light * li;
+
+
+  numints=closest_intersection(&t, &obj, incident->intstruct);  
+		/* find the number of intersections */
+                /* and return the closest one.      */
+
+  if (numints < 1) {         
+    /* if there weren't any object intersections then return the */
+    /* background color for the pixel color.                     */
+    return incident->scene->background;
+  }
+
+  if (obj->tex->islight) {  /* if the current object is a light, then we  */
+    return obj->tex->col;   /* will only use the objects ambient color    */
+  }
+
+  RAYPNT(hit, (*incident), t)       /* find the point of intersection from t */ 
+  obj->methods->normal(obj, &hit, incident, &N);  /* find the surface normal */
+
+  /* execute the object's texture function */
+  col = obj->tex->texfunc(&hit, obj->tex, incident); 
+
+  diffuse.r = 0.0; 
+  diffuse.g = 0.0; 
+  diffuse.b = 0.0; 
+  phongcol = diffuse;
+
+  if ((obj->tex->diffuse > 0.0) || (obj->tex->phong > 0.0)) {  
+    for (i=0; i<numlights; i++) {   /* loop for light contributions */
+      li=lightlist[i];              /* set li=to the current light  */
+      VSUB(li->ctr, hit, L)         /* find the light vector        */
+
+      /* calculate the distance to the light from the hit point */
+      Llen = sqrt(L.x*L.x + L.y*L.y + L.z*L.z) + EPSILON;
+
+      L.x /= Llen; /* normalize the light direction vector */
+      L.y /= Llen;
+      L.z /= Llen;
+
+      VDOT(inten, N, L)             /* light intensity              */
+
+      /* add in diffuse lighting for this light if we're facing it */ 
+      if (inten > 0.0) {            
+        /* test for a shadow */
+        shadowray.intstruct = incident->intstruct;
+        shadowray.flags = RT_RAY_SHADOW | RT_RAY_BOUNDED; 
+        incident->serial++;
+        shadowray.serial = incident->serial;
+        shadowray.mbox = incident->mbox;
+        shadowray.o   = hit;
+        shadowray.d   = L;      
+        shadowray.maxdist = Llen;
+        shadowray.s   = hit;
+        shadowray.e = li->ctr;
+        shadowray.scene = incident->scene;
+        reset_intersection(incident->intstruct);
+        intersect_objects(&shadowray);
+
+        if (!shadow_intersection(incident->intstruct, Llen)) {
+          /* XXX now that opacity is in the code, have to be more careful */
+          ColorAddS(&diffuse, &li->tex->col, inten);
+
+          /* phong type specular highlights */
+          if (obj->tex->phong > 0.0) {
+            flt phongval;
+            phongval = shade_phong(incident, &hit, &N, &L, obj->tex->phongexp); 
+            if (obj->tex->phongtype) 
+              ColorAddS(&phongcol, &col, phongval);
+            else
+              ColorAddS(&phongcol, &(li->tex->col), phongval);
+          }
+        }
+      }  
+    } 
+  }
+
+  ColorScale(&diffuse, obj->tex->diffuse);
+
+  col.r *= (diffuse.r + obj->tex->ambient); /* do a product of the */
+  col.g *= (diffuse.g + obj->tex->ambient); /* diffuse intensity with  */
+  col.b *= (diffuse.b + obj->tex->ambient); /* object color + ambient  */
+
+  if (obj->tex->phong > 0.0) {
+    ColorAccum(&col, &phongcol);
+  }
+
+  /* spawn reflection rays if necessary */
+  /* note: this will overwrite the old intersection list */
+  if (obj->tex->specular > 0.0) {    
+    color specol;
+    specol = shade_reflection(incident, &hit, &N, obj->tex->specular);
+    ColorAccum(&col, &specol);
+  }
+
+  /* spawn transmission rays / refraction */
+  /* note: this will overwrite the old intersection list */
+  if (obj->tex->opacity < 1.0) {      
+    color transcol;
+    transcol = shade_transmission(incident, &hit, 1.0 - obj->tex->opacity);
+    ColorAccum(&col, &transcol);
+  }
+
+  return col;    /* return the color of the shaded pixel... */
+}
+
+
+color shade_reflection(ray * incident, vector * hit, vector * N, flt specular) {
+  ray specray;
+  color col;
+  vector R;
+ 
+  VAddS(-2.0 * (incident->d.x * N->x + 
+                incident->d.y * N->y + 
+                incident->d.z * N->z), N, &incident->d, &R);
+
+  specray.intstruct=incident->intstruct; /* what thread are we   */
+  specray.depth=incident->depth - 1;   /* go up a level in recursion depth */
+  specray.flags = RT_RAY_REGULAR;      /* infinite ray, to start with */
+  specray.serial = incident->serial + 1; /* next serial number */
+  specray.mbox = incident->mbox; 
+  specray.o=*hit; 
+  specray.d=R;			       /* reflect incident ray about normal */
+  specray.o=Raypnt(&specray, EPSILON); /* avoid numerical precision bugs */
+  specray.maxdist = FHUGE;             /* take any intersection */
+  specray.scene=incident->scene;       /* global scenedef info */
+  col=trace(&specray);                 /* trace specular reflection ray */ 
+
+  incident->serial = specray.serial;    /* update the serial number */
+
+  ColorScale(&col, specular);
+
+  return col;
+}
+
+
+color shade_transmission(ray * incident, vector * hit, flt trans) {
+  ray transray;
+  color col;
+
+  transray.intstruct=incident->intstruct; /* what thread are we   */
+  transray.depth=incident->depth - 1;    /* go up a level in recursion depth */
+  transray.flags = RT_RAY_REGULAR;       /* infinite ray, to start with */
+  transray.serial = incident->serial + 1; /* update serial number */
+  transray.mbox = incident->mbox;
+  transray.o=*hit; 
+  transray.d=incident->d;                /* ray continues along incident path */
+  transray.o=Raypnt(&transray, EPSILON); /* avoid numerical precision bugs */
+  transray.maxdist = FHUGE;              /* take any intersection */
+  transray.scene=incident->scene;        /* global scenedef info */
+  col=trace(&transray);                  /* trace transmission ray */  
+
+  incident->serial = transray.serial;
+
+  ColorScale(&col, trans);
+
+  return col;
+}
+
+flt shade_phong(ray * incident, vector * hit, 
+  vector * N, vector * L, flt specpower){
+  vector H, V;
+  flt inten;
+
+  V = incident->d;
+  VScale(&V, -1.0);
+  VAdd(&V, L, &H);
+  VScale(&H, 0.5);   
+  VNorm(&H);
+  inten = VDot(N, &H);
+  if (inten > 0.0) 
+    inten = pow(inten, specpower);
+  else 
+    inten = 0.0;
+
+  return inten;
+} 
+
+
diff --git a/examples/parallel_for/tacheon/src/shade.h b/examples/parallel_for/tacheon/src/shade.h
new file mode 100644
index 0000000..5d5da20
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/shade.h
@@ -0,0 +1,73 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * shade.h - This file contains declarations and definitions for the shader.
+ *
+ *  $Id: shade.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+ 
+void reset_lights(void);
+void add_light(point_light *);
+
+color shader(ray *);
+color shade_reflection(ray *, vector *, vector *, flt);
+color shade_transmission(ray *, vector *, flt);
+flt shade_phong(ray * incident, vector * hit, vector * N, vector * L, flt specpower);
diff --git a/examples/parallel_for/tacheon/src/sphere.cpp b/examples/parallel_for/tacheon/src/sphere.cpp
new file mode 100644
index 0000000..8296b3a
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/sphere.cpp
@@ -0,0 +1,146 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * sphere.c - This file contains the functions for dealing with spheres.
+ *
+ *  $Id: sphere.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "intersect.h"
+#include "util.h"
+
+#define SPHERE_PRIVATE
+#include "sphere.h"
+
+static object_methods sphere_methods = {
+  (void (*)(void *, void *))(sphere_intersect),
+  (void (*)(void *, void *, void *, void *))(sphere_normal),
+  sphere_bbox, 
+  free 
+};
+
+object * newsphere(void * tex, vector ctr, flt rad) {
+  sphere * s;
+  
+  s=(sphere *) rt_getmem(sizeof(sphere));
+  memset(s, 0, sizeof(sphere));
+  s->methods = &sphere_methods;
+
+  s->tex=(texture *)tex;
+  s->ctr=ctr;
+  s->rad=rad;
+
+  return (object *) s;
+}
+
+static int sphere_bbox(void * obj, vector * min, vector * max) {
+  sphere * s = (sphere *) obj;
+
+  min->x = s->ctr.x - s->rad;
+  min->y = s->ctr.y - s->rad;
+  min->z = s->ctr.z - s->rad;
+  max->x = s->ctr.x + s->rad;
+  max->y = s->ctr.y + s->rad;
+  max->z = s->ctr.z + s->rad;
+
+  return 1;
+}
+
+static void sphere_intersect(sphere * spr, ray * ry) {
+  flt b, disc, t1, t2, temp;
+  vector V;
+
+  VSUB(spr->ctr, ry->o, V);
+  VDOT(b, V, ry->d); 
+  VDOT(temp, V, V);  
+
+  disc=b*b + spr->rad*spr->rad - temp;
+
+  if (disc<=0.0) return;
+  disc=sqrt(disc);
+
+  t2=b+disc;
+  if (t2 <= SPEPSILON) 
+    return;
+  add_intersection(t2, (object *) spr, ry);  
+
+  t1=b-disc;
+  if (t1 > SPEPSILON) 
+    add_intersection(t1, (object *) spr, ry);  
+}
+
+static void sphere_normal(sphere * spr, vector * pnt, ray * incident, vector * N) {
+  VSub((vector *) pnt, &(spr->ctr), N);
+
+  VNorm(N);
+
+  if (VDot(N, &(incident->d)) > 0.0)  {
+    N->x=-N->x;
+    N->y=-N->y;
+    N->z=-N->z;
+  } 
+}
+
+
diff --git a/examples/parallel_for/tacheon/src/sphere.h b/examples/parallel_for/tacheon/src/sphere.h
new file mode 100644
index 0000000..282e499
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/sphere.h
@@ -0,0 +1,84 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * sphere.h - This file contains the defines for spheres etc.
+ *
+ *  $Id: sphere.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+object * newsphere(void *, vector, flt);
+
+#ifdef SPHERE_PRIVATE
+
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector ctr;
+  flt rad;
+} sphere;
+
+static int sphere_bbox(void * obj, vector * min, vector * max);
+static void sphere_intersect(sphere *, ray *);
+static void sphere_normal(sphere *, vector *, ray *, vector *);
+
+#endif /* SPHERE_PRIVATE */
diff --git a/examples/parallel_for/tacheon/src/texture.cpp b/examples/parallel_for/tacheon/src/texture.cpp
new file mode 100644
index 0000000..70b7e0d
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/texture.cpp
@@ -0,0 +1,398 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * texture.c - This file contains functions for implementing textures.
+ * 
+ *  $Id: texture.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $ 
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "texture.h"
+#include "coordsys.h"
+#include "imap.h"
+#include "vector.h"
+#include "box.h"
+
+/* plain vanilla texture solely based on object color */
+color standard_texture(vector * hit, texture * tex, ray * ry) {
+  return tex->col;
+}
+
+/* cylindrical image map */
+color image_cyl_texture(vector * hit, texture * tex, ray * ry) {
+  vector rh;
+  flt u,v;
+ 
+  rh.x=hit->x - tex->ctr.x;
+  rh.z=hit->y - tex->ctr.y;
+  rh.y=hit->z - tex->ctr.z;
+ 
+  xyztocyl(rh, 1.0, &u, &v);
+
+  u = u * tex->scale.x;  
+  u = u + tex->rot.x;
+  u=fmod(u, 1.0);
+  if (u < 0.0) u+=1.0; 
+
+  v = v * tex->scale.y; 
+  v = v + tex->rot.y;
+  v=fmod(v, 1.0);
+  if (v < 0.0) v+=1.0; 
+
+  return ImageMap((rawimage *)tex->img, u, v); 
+}  
+
+/* spherical image map */
+color image_sphere_texture(vector * hit, texture * tex, ray * ry) {
+  vector rh;
+  flt u,v;
+ 
+  rh.x=hit->x - tex->ctr.x;
+  rh.y=hit->y - tex->ctr.y;
+  rh.z=hit->z - tex->ctr.z;
+ 
+  xyztospr(rh, &u, &v);
+
+  u = u * tex->scale.x;
+  u = u + tex->rot.x;
+  u=fmod(u, 1.0);
+  if (u < 0.0) u+=1.0;
+ 
+  v = v * tex->scale.y;
+  v = v + tex->rot.y;
+  v=fmod(v, 1.0);
+  if (v < 0.0) v+=1.0;
+ 
+  return ImageMap((rawimage *)tex->img, u, v);
+}
+
+/* planar image map */
+color image_plane_texture(vector * hit, texture * tex, ray * ry) {
+  vector pnt;
+  flt u,v;
+ 
+  pnt.x=hit->x - tex->ctr.x;
+  pnt.y=hit->y - tex->ctr.y;
+  pnt.z=hit->z - tex->ctr.z;
+
+  VDOT(u, tex->uaxs, pnt);
+/*  VDOT(len, tex->uaxs, tex->uaxs);
+  u = u / sqrt(len); */
+
+  VDOT(v, tex->vaxs, pnt); 
+/*  VDOT(len, tex->vaxs, tex->vaxs);
+  v = v / sqrt(len); */
+    
+
+  u = u * tex->scale.x;
+  u = u + tex->rot.x;
+  u = fmod(u, 1.0);
+  if (u < 0.0) u += 1.0;
+
+  v = v * tex->scale.y;
+  v = v + tex->rot.y;
+  v = fmod(v, 1.0);
+  if (v < 0.0) v += 1.0;
+
+  return ImageMap((rawimage *)tex->img, u, v);
+}
+
+color grit_texture(vector * hit, texture * tex, ray * ry) {
+  int rnum;
+  flt fnum;
+  color col;
+
+  rnum=rand() % 4096;
+  fnum=(rnum / 4096.0 * 0.2) + 0.8;
+
+  col.r=tex->col.r * fnum;
+  col.g=tex->col.g * fnum;
+  col.b=tex->col.b * fnum;
+
+  return col;
+}
+
+color checker_texture(vector * hit, texture * tex, ray * ry) {
+  long x,y,z;
+  flt xh,yh,zh;
+  color col;
+
+  xh=hit->x - tex->ctr.x; 
+  x=(long) ((fabs(xh) * 3) + 0.5);
+  x=x % 2;
+  yh=hit->y - tex->ctr.y;
+  y=(long) ((fabs(yh) * 3) + 0.5);
+  y=y % 2;
+  zh=hit->z - tex->ctr.z;
+  z=(long) ((fabs(zh) * 3) + 0.5);
+  z=z % 2;
+
+  if (((x + y + z) % 2)==1) {
+    col.r=1.0;
+    col.g=0.2;
+    col.b=0.0;
+  }
+  else {
+    col.r=0.0;
+    col.g=0.2;
+    col.b=1.0;
+  }
+
+  return col;
+}
+
+color cyl_checker_texture(vector * hit, texture * tex, ray * ry) {
+  long x,y;
+  vector rh;
+  flt u,v;
+  color col;
+ 
+  rh.x=hit->x - tex->ctr.x;
+  rh.y=hit->y - tex->ctr.y;
+  rh.z=hit->z - tex->ctr.z;
+
+  xyztocyl(rh, 1.0, &u, &v); 
+
+  x=(long) (fabs(u) * 18.0);
+  x=x % 2;
+  y=(long) (fabs(v) * 10.0);
+  y=y % 2;
+ 
+  if (((x + y) % 2)==1) {
+    col.r=1.0;
+    col.g=0.2;
+    col.b=0.0;
+  }
+  else {
+    col.r=0.0;
+    col.g=0.2;
+    col.b=1.0;
+  }
+ 
+  return col;
+}
+
+
+color wood_texture(vector * hit, texture * tex, ray * ry) {
+  flt radius, angle;
+  int grain;
+  color col;
+  flt x,y,z;
+
+  x=(hit->x - tex->ctr.x) * 1000;
+  y=(hit->y - tex->ctr.y) * 1000;
+  z=(hit->z - tex->ctr.z) * 1000;
+
+  radius=sqrt(x*x + z*z);
+  if (z == 0.0) 
+    angle=3.1415926/2.0;
+  else 
+    angle=atan(x / z);
+
+  radius=radius + 3.0 * sin(20 * angle + y / 150.0);
+  grain=((int) (radius + 0.5)) % 60;
+  if (grain < 40) {
+    col.r=0.8;
+    col.g=1.0;
+    col.b=0.2;
+  }
+  else {
+    col.r=0.0;
+    col.g=0.0;
+    col.b=0.0;
+  }     
+
+  return col;
+} 
+
+
+
+#define NMAX 28
+short int NoiseMatrix[NMAX][NMAX][NMAX];
+
+void InitNoise(void) {
+  byte x,y,z,i,j,k;
+
+  for (x=0; x<NMAX; x++) {
+    for (y=0; y<NMAX; y++) {
+      for (z=0; z<NMAX; z++) {
+        NoiseMatrix[x][y][z]=rand() % 12000;
+
+        if (x==NMAX-1) i=0; 
+        else i=x;
+
+        if (y==NMAX-1) j=0;
+        else j=y;
+
+        if (z==NMAX-1) k=0;
+        else k=z;
+
+        NoiseMatrix[x][y][z]=NoiseMatrix[i][j][k];
+      }
+    }
+  }
+}
+
+int Noise(flt x, flt y, flt z) {
+  byte ix, iy, iz;
+  flt ox, oy, oz;
+  int p000, p001, p010, p011;
+  int p100, p101, p110, p111;
+  int p00, p01, p10, p11;
+  int p0, p1;
+  int d00, d01, d10, d11;
+  int d0, d1, d;
+
+  x=fabs(x);
+  y=fabs(y);
+  z=fabs(z);
+
+  ix=((int) x) % NMAX;
+  iy=((int) y) % NMAX;
+  iz=((int) z) % NMAX;
+
+  ox=(x - ((int) x));
+  oy=(y - ((int) y));
+  oz=(z - ((int) z));
+
+  p000=NoiseMatrix[ix][iy][iz];
+  p001=NoiseMatrix[ix][iy][iz+1];
+  p010=NoiseMatrix[ix][iy+1][iz];
+  p011=NoiseMatrix[ix][iy+1][iz+1];
+  p100=NoiseMatrix[ix+1][iy][iz];
+  p101=NoiseMatrix[ix+1][iy][iz+1];
+  p110=NoiseMatrix[ix+1][iy+1][iz];
+  p111=NoiseMatrix[ix+1][iy+1][iz+1];
+
+  d00=p100-p000;
+  d01=p101-p001;
+  d10=p110-p010;
+  d11=p111-p011;
+
+  p00=(int) ((int) d00*ox) + p000;
+  p01=(int) ((int) d01*ox) + p001;
+  p10=(int) ((int) d10*ox) + p010;
+  p11=(int) ((int) d11*ox) + p011;
+  d0=p10-p00;
+  d1=p11-p01;
+  p0=(int) ((int) d0*oy) + p00;
+  p1=(int) ((int) d1*oy) + p01;
+  d=p1-p0;
+
+  return (int) ((int) d*oz) + p0;
+}
+
+color marble_texture(vector * hit, texture * tex, ray * ry) {
+  flt i,d;
+  flt x,y,z;
+  color col;
+ 
+  x=hit->x;
+  y=hit->y; 
+  z=hit->z;
+
+  x=x * 1.0;
+
+  d=x + 0.0006 * Noise(x, (y * 1.0), (z * 1.0));
+  d=d*(((int) d) % 25);
+  i=0.0 + 0.10 * fabs(d - 10.0 - 20.0 * ((int) d * 0.05));
+  if (i > 1.0) i=1.0;
+  if (i < 0.0) i=0.0;  
+
+/*
+  col.r=i * tex->col.r;
+  col.g=i * tex->col.g;
+  col.b=i * tex->col.b;
+*/
+
+  col.r = (1.0 + sin(i * 6.28)) / 2.0;
+  col.g = (1.0 + sin(i * 16.28)) / 2.0;
+  col.b = (1.0 + cos(i * 30.28)) / 2.0;
+
+  return col;      
+}
+
+
+color gnoise_texture(vector * hit, texture * tex, ray * ry) {
+  color col;
+  flt f;
+
+  f=Noise((hit->x - tex->ctr.x), 
+          (hit->y - tex->ctr.y), 
+	  (hit->z - tex->ctr.z));
+
+  if (f < 0.01) f=0.01;
+  if (f > 1.0) f=1.0;
+
+  col.r=tex->col.r * f;
+  col.g=tex->col.g * f;
+  col.b=tex->col.b * f;
+
+  return col;
+}
+
+void InitTextures(void) {
+  InitNoise();
+  ResetImages();
+}
+
diff --git a/examples/parallel_for/tacheon/src/texture.h b/examples/parallel_for/tacheon/src/texture.h
new file mode 100644
index 0000000..f0ffc52
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/texture.h
@@ -0,0 +1,80 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * texture.h This file contains all of the includes and defines for the texture 
+ * mapping part of the shader.
+ *
+ *  $Id: texture.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+void InitTextures(void);
+color     standard_texture(vector *, texture *, ray *);
+color    image_cyl_texture(vector *, texture *, ray *);
+color image_sphere_texture(vector *, texture *, ray *);
+color  image_plane_texture(vector *, texture *, ray *);
+color      checker_texture(vector *, texture *, ray *);
+color  cyl_checker_texture(vector *, texture *, ray *);
+color         grit_texture(vector *, texture *, ray *);
+color         wood_texture(vector *, texture *, ray *);
+color       marble_texture(vector *, texture *, ray *);
+color       gnoise_texture(vector *, texture *, ray *);
+int Noise(flt, flt, flt);
+void InitTextures(void);
diff --git a/examples/parallel_for/tacheon/src/tgafile.cpp b/examples/parallel_for/tacheon/src/tgafile.cpp
new file mode 100644
index 0000000..c00aab7
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/tgafile.cpp
@@ -0,0 +1,248 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * tgafile.c - This file contains the code to write 24 bit targa files...
+ *
+ *  $Id: tgafile.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "util.h"
+#include "ui.h"
+#include "imageio.h"
+#include "tgafile.h"
+
+void createtgafile(char *name, unsigned short width, unsigned short height) {
+  int filesize;
+  FILE * ofp;
+
+  filesize = 3*width*height + 18 - 10;
+  
+  if (name==NULL) 
+    exit(1);
+  else {
+    ofp=fopen(name, "w+b");
+    if (ofp == NULL) {
+      char msgtxt[2048];
+      sprintf(msgtxt, "Cannot create %s for output!", name);
+      rt_ui_message(MSG_ERR, msgtxt);
+      rt_ui_message(MSG_ABORT, "Rendering Aborted.");
+      exit(1);
+    } 
+
+    fputc(0, ofp); /* IdLength      */
+    fputc(0, ofp); /* ColorMapType  */
+    fputc(2, ofp); /* ImageTypeCode */
+    fputc(0, ofp); /* ColorMapOrigin, low byte */
+    fputc(0, ofp); /* ColorMapOrigin, high byte */
+    fputc(0, ofp); /* ColorMapLength, low byte */
+    fputc(0, ofp); /* ColorMapLength, high byte */
+    fputc(0, ofp); /* ColorMapEntrySize */
+    fputc(0, ofp); /* XOrigin, low byte */
+    fputc(0, ofp); /* XOrigin, high byte */
+    fputc(0, ofp); /* YOrigin, low byte */
+    fputc(0, ofp); /* YOrigin, high byte */
+    fputc((width & 0xff),         ofp); /* Width, low byte */
+    fputc(((width >> 8) & 0xff),  ofp); /* Width, high byte */
+    fputc((height & 0xff),        ofp); /* Height, low byte */
+    fputc(((height >> 8) & 0xff), ofp); /* Height, high byte */
+    fputc(24, ofp);   /* ImagePixelSize */
+    fputc(0x20, ofp); /* ImageDescriptorByte 0x20 == flip vertically */
+
+    fseek(ofp, filesize, 0);
+    fprintf(ofp, "9876543210"); 
+
+    fclose(ofp);
+  } 
+}    
+
+void * opentgafile(char * filename) {
+  FILE * ofp;
+
+  ofp=fopen(filename, "r+b");
+  if (ofp == NULL) {
+    char msgtxt[2048];
+    sprintf(msgtxt, "Cannot open %s for output!", filename);
+    rt_ui_message(MSG_ERR, msgtxt);
+    rt_ui_message(MSG_ABORT, "Rendering Aborted.");
+    exit(1);
+  } 
+
+  return ofp;
+} 
+
+void writetgaregion(void * voidofp, 
+                    int iwidth, int iheight,
+                    int startx, int starty, 
+                    int stopx, int stopy, char * buffer) {
+  int y, totalx, totaly;
+  char * bufpos;
+  int filepos, numbytes;
+  FILE * ofp = (FILE *) voidofp;
+ 
+  totalx = stopx - startx + 1;
+  totaly = stopy - starty + 1;
+
+  for (y=0; y<totaly; y++) {
+    bufpos=buffer + (totalx*3)*(totaly-y-1);
+    filepos=18 + iwidth*3*(iheight - starty - totaly + y + 1) + (startx - 1)*3; 
+
+    if (filepos >= 18) {
+      fseek(ofp, filepos, 0); 
+      numbytes = fwrite(bufpos, 3, totalx, ofp);
+
+      if (numbytes != totalx) {
+        char msgtxt[256];
+	sprintf(msgtxt, "File write problem, %d bytes written.", numbytes);  
+        rt_ui_message(MSG_ERR, msgtxt);
+      }
+    }
+    else {
+      rt_ui_message(MSG_ERR, "writetgaregion: file ptr out of range!!!\n");
+      return;  /* don't try to continue */
+    }
+  }
+}
+
+
+int readtga(char * name, int * xres, int * yres, unsigned char **imgdata) {
+  int format, width, height, w1, w2, h1, h2, depth, flags;
+  int imgsize, bytesread, i, tmp;
+  FILE * ifp;
+
+  ifp=fopen(name, "r");  
+  if (ifp==NULL) {
+    return IMAGEBADFILE; /* couldn't open the file */
+  }
+
+  /* read the targa header */
+  getc(ifp); /* ID length */
+  getc(ifp); /* colormap type */
+  format = getc(ifp); /* image type */
+  getc(ifp); /* color map origin */
+  getc(ifp); /* color map origin */
+  getc(ifp); /* color map length */
+  getc(ifp); /* color map length */
+  getc(ifp); /* color map entry size */
+  getc(ifp); /* x origin */
+  getc(ifp); /* x origin */
+  getc(ifp); /* y origin */
+  getc(ifp); /* y origin */
+  w1 = getc(ifp); /* width (low) */
+  w2 = getc(ifp); /* width (hi) */
+  h1 = getc(ifp); /* height (low) */
+  h2 = getc(ifp); /* height (hi) */
+  depth = getc(ifp); /* image pixel size */
+  flags = getc(ifp); /* image descriptor byte */
+
+  if ((format != 2) || (depth != 24)) {
+    fclose(ifp);
+    return IMAGEUNSUP; /* unsupported targa format */
+  }
+    
+
+  width = ((w2 << 8) | w1);
+  height = ((h2 << 8) | h1);
+
+  imgsize = 3 * width * height;
+  *imgdata = (unsigned char *)rt_getmem(imgsize);
+  bytesread = fread(*imgdata, 1, imgsize, ifp);
+  fclose(ifp);
+
+  /* flip image vertically */
+  if (flags == 0x20) {
+    int rowsize = 3 * width;
+    unsigned char * copytmp;
+
+    copytmp = (unsigned char *)malloc(rowsize);
+
+    for (i=0; i<height / 2; i++) {
+      memcpy(copytmp, &((*imgdata)[rowsize*i]), rowsize);
+      memcpy(&(*imgdata)[rowsize*i], &(*imgdata)[rowsize*(height - 1 - i)], rowsize);
+      memcpy(&(*imgdata)[rowsize*(height - 1 - i)], copytmp, rowsize);
+    }
+
+    free(copytmp);       
+  }
+
+
+  /* convert from BGR order to RGB order */
+  for (i=0; i<imgsize; i+=3) {
+    tmp = (*imgdata)[i]; /* Blue */
+    (*imgdata)[i] = (*imgdata)[i+2]; /* Red */
+    (*imgdata)[i+2] = tmp; /* Blue */    
+  }
+
+  *xres = width;
+  *yres = height;
+
+  if (bytesread != imgsize) 
+    return IMAGEREADERR;
+
+  return IMAGENOERR;
+}
+
+
+
+
+
+
diff --git a/examples/parallel_for/tacheon/src/tgafile.h b/examples/parallel_for/tacheon/src/tgafile.h
new file mode 100644
index 0000000..71aeb5b
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/tgafile.h
@@ -0,0 +1,72 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * tgafile.h - this file contains defines and structures for tgafile.c
+ *
+ *  $Id: tgafile.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+/* declare other functions */
+void createtgafile(char *, unsigned short, unsigned short);
+void * opentgafile(char *);
+void writetgaregion(void *, int, int, int, int, int, int, char *);
+
+int readtga(char * name, int * xres, int * yres, unsigned char **imgdata);
diff --git a/examples/parallel_for/tacheon/src/trace.h b/examples/parallel_for/tacheon/src/trace.h
new file mode 100644
index 0000000..fccf8e9
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/trace.h
@@ -0,0 +1,109 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * trace.h - This file contains the declarations and defines for the trace module
+ *
+ *   $Id: trace.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+extern char *global_buffer;
+
+typedef struct {
+        int tid;
+        int nthr;
+        scenedef scene;
+        char * buffer;
+        int startx;
+        int stopx;
+        int starty;
+        int stopy;
+        } thr_parms;
+
+typedef struct {
+        int startx;
+        int stopx;
+        int starty;
+        int stopy;
+        } patch;
+
+typedef struct {
+	void * tga;
+	int iwidth;
+	int iheight;
+	int startx;
+	int starty;
+	int stopx;
+	int stopy;
+	char * buffer;
+	} thr_io_parms;
+
+color trace(ray *);
+
+void * thread_trace(thr_parms * parms);
+
+void thread_trace1(thr_parms *, patch *, int depth); 
+void thread_trace2(thr_parms *, patch *); 
+
+void * thread_io(void *);
+
+void trace_shm(scenedef, /*char *,*/ int, int, int, int);
+
+void trace_region(scenedef, void *, int, int, int, int);
diff --git a/examples/parallel_for/tacheon/src/trace.serial.cpp b/examples/parallel_for/tacheon/src/trace.serial.cpp
new file mode 100644
index 0000000..b026f9a
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/trace.serial.cpp
@@ -0,0 +1,188 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "tgafile.h"
+#include "trace.h"
+#include "light.h"
+#include "shade.h"
+#include "camera.h"
+#include "util.h"
+#include "intersect.h"
+#include "global.h"
+#include "ui.h"
+#include "video.h"
+
+// shared but read-only so could be private too
+static thr_parms *all_parms;
+static scenedef scene;
+static int startx;
+static int stopx;
+static int starty;
+static int stopy;
+static flt jitterscale;
+static int totaly;
+
+static color_t render_one_pixel (int x, int y, unsigned int *local_mbox, unsigned int &serial,
+                                 int startx, int stopx, int starty, int stopy)
+{
+    /* private vars moved inside loop */
+    ray primary, sample;
+    color col, avcol;
+    int R,G,B;
+    intersectstruct local_intersections;    
+    int alias;
+    /* end private */
+
+    primary=camray(&scene, x, y);
+    primary.intstruct = &local_intersections;
+    primary.flags = RT_RAY_REGULAR;
+
+    serial++;
+    primary.serial = serial;  
+    primary.mbox = local_mbox;
+    primary.maxdist = FHUGE;
+    primary.scene = &scene;
+    col=trace(&primary);  
+
+    serial = primary.serial;
+
+    /* perform antialiasing if enabled.. */
+    if (scene.antialiasing > 0) {
+        for (alias=0; alias < scene.antialiasing; alias++) {
+
+            serial++; /* increment serial number */
+            sample=primary;  /* copy the regular primary ray to start with */
+            sample.serial = serial; 
+
+            {
+                sample.d.x+=((rand() % 100) - 50) / jitterscale;
+                sample.d.y+=((rand() % 100) - 50) / jitterscale;
+                sample.d.z+=((rand() % 100) - 50) / jitterscale;
+            }
+
+            avcol=trace(&sample);  
+
+            serial = sample.serial; /* update our overall serial # */
+
+            col.r += avcol.r;
+            col.g += avcol.g;
+            col.b += avcol.b;
+        }
+
+        col.r /= (scene.antialiasing + 1.0);
+        col.g /= (scene.antialiasing + 1.0);
+        col.b /= (scene.antialiasing + 1.0);
+    }
+
+    /* Handle overexposure and underexposure here... */
+    R=(int) (col.r*255);
+    if (R > 255) R = 255;
+    else if (R < 0) R = 0;
+
+    G=(int) (col.g*255);
+    if (G > 255) G = 255;
+    else if (G < 0) G = 0;
+
+    B=(int) (col.b*255);
+    if (B > 255) B = 255;
+    else if (B < 0) B = 0;
+
+    return video->get_color(R, G, B);
+
+}
+
+static void parallel_thread (void)
+{
+    // thread-local storage
+    unsigned int serial = 1;
+    unsigned int mboxsize = sizeof(unsigned int)*(max_objectid() + 20);
+    unsigned int * local_mbox = (unsigned int *) alloca(mboxsize);
+    memset(local_mbox,0,mboxsize);
+
+    for (int y = starty; y < stopy; y++) { {
+        drawing_area drawing(startx, totaly-y, stopx-startx, 1);
+        for (int x = startx; x < stopx; x++) {
+            color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy);
+            drawing.put_pixel(c);
+        } }
+        if(!video->next_frame()) return;
+    }
+}
+
+void * thread_trace(thr_parms * parms)
+{
+    // shared but read-only so could be private too
+    all_parms = parms;
+    scene = parms->scene;
+    startx = parms->startx;
+    stopx = parms->stopx;
+    starty = parms->starty;
+    stopy = parms->stopy;
+    jitterscale = 40.0*(scene.hres + scene.vres);
+    totaly = parms->scene.vres-1;
+
+    parallel_thread ();
+
+    return(NULL);  
+}
diff --git a/examples/parallel_for/tacheon/src/trace.tbb.cpp b/examples/parallel_for/tacheon/src/trace.tbb.cpp
new file mode 100644
index 0000000..a0a2a24
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/trace.tbb.cpp
@@ -0,0 +1,210 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "tgafile.h"
+#include "trace.h"
+#include "light.h"
+#include "shade.h"
+#include "camera.h"
+#include "util.h"
+#include "intersect.h"
+#include "global.h"
+#include "ui.h"
+#include "video.h"
+
+// shared but read-only so could be private too
+static thr_parms *all_parms;
+static scenedef scene;
+static int startx;
+static int stopx;
+static int starty;
+static int stopy;
+static flt jitterscale;
+static int totaly;
+
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_for.h"
+#include "tbb/spin_mutex.h"
+#include "tbb/blocked_range2d.h"
+
+static tbb::spin_mutex MyMutex, MyMutex2;
+
+static color_t render_one_pixel (int x, int y, unsigned int *local_mbox, unsigned int &serial,
+                                 int startx, int stopx, int starty, int stopy)
+{
+    /* private vars moved inside loop */
+    ray primary, sample;
+    color col, avcol;
+    int R,G,B;
+    intersectstruct local_intersections;    
+    int alias;
+    /* end private */
+
+    primary=camray(&scene, x, y);
+    primary.intstruct = &local_intersections;
+    primary.flags = RT_RAY_REGULAR;
+
+    serial++;
+    primary.serial = serial;  
+    primary.mbox = local_mbox;
+    primary.maxdist = FHUGE;
+    primary.scene = &scene;
+    col=trace(&primary);  
+
+    serial = primary.serial;
+
+    /* perform antialiasing if enabled.. */
+    if (scene.antialiasing > 0) {
+        for (alias=0; alias < scene.antialiasing; alias++) {
+
+            serial++; /* increment serial number */
+            sample=primary;  /* copy the regular primary ray to start with */
+            sample.serial = serial; 
+
+            {
+                tbb::spin_mutex::scoped_lock lock (MyMutex);
+                sample.d.x+=((rand() % 100) - 50) / jitterscale;
+                sample.d.y+=((rand() % 100) - 50) / jitterscale;
+                sample.d.z+=((rand() % 100) - 50) / jitterscale;
+            }
+
+            avcol=trace(&sample);  
+
+            serial = sample.serial; /* update our overall serial # */
+
+            col.r += avcol.r;
+            col.g += avcol.g;
+            col.b += avcol.b;
+        }
+
+        col.r /= (scene.antialiasing + 1.0);
+        col.g /= (scene.antialiasing + 1.0);
+        col.b /= (scene.antialiasing + 1.0);
+    }
+
+    /* Handle overexposure and underexposure here... */
+    R=(int) (col.r*255);
+    if (R > 255) R = 255;
+    else if (R < 0) R = 0;
+
+    G=(int) (col.g*255);
+    if (G > 255) G = 255;
+    else if (G < 0) G = 0;
+
+    B=(int) (col.b*255);
+    if (B > 255) B = 255;
+    else if (B < 0) B = 0;
+
+    return video->get_color(R, G, B);
+}
+
+class parallel_task {
+public:
+    void operator() (const tbb::blocked_range2d<int> &r) const
+    {
+        // task-local storage
+        unsigned int serial = 1;
+        unsigned int mboxsize = sizeof(unsigned int)*(max_objectid() + 20);
+        unsigned int * local_mbox = (unsigned int *) alloca(mboxsize);
+        memset(local_mbox,0,mboxsize);
+        if(video->next_frame())
+        {
+            drawing_area drawing(r.cols().begin(), totaly-r.rows().end(), r.cols().end() - r.cols().begin(), r.rows().end()-r.rows().begin());
+            for (int i = 1, y = r.rows().begin(); y != r.rows().end(); ++y, i++) {
+                drawing.set_pos(0, drawing.size_y-i);
+                for (int x = r.cols().begin(); x != r.cols().end(); x++) {
+                    color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy);
+                    drawing.put_pixel(c);
+                }
+            }
+        }
+    }
+
+    parallel_task () {}
+};
+
+void * thread_trace(thr_parms * parms)
+{
+    int n, nthreads = tbb::task_scheduler_init::automatic;
+    char *nthreads_str = getenv ("TBB_NUM_THREADS");
+    if (nthreads_str && (sscanf (nthreads_str, "%d", &n) > 0) && (n > 0)) nthreads = n;
+    tbb::task_scheduler_init init (nthreads);
+
+    // shared but read-only so could be private too
+    all_parms = parms;
+    scene = parms->scene;
+    startx = parms->startx;
+    stopx = parms->stopx;
+    starty = parms->starty;
+    stopy = parms->stopy;
+    jitterscale = 40.0*(scene.hres + scene.vres);
+    totaly = parms->scene.vres;
+
+    int g, grain_size = 50;
+    char *grain_str = getenv ("TBB_GRAINSIZE");
+    if (grain_str && (sscanf (grain_str, "%d", &g) > 0) && (g > 0)) grain_size = g;
+    tbb::parallel_for (tbb::blocked_range2d<int> (starty, stopy, grain_size, startx, stopx, grain_size), parallel_task ());
+
+    return(NULL);  
+}
diff --git a/examples/parallel_for/tacheon/src/trace.tbb1d.cpp b/examples/parallel_for/tacheon/src/trace.tbb1d.cpp
new file mode 100644
index 0000000..4fa7be2
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/trace.tbb1d.cpp
@@ -0,0 +1,212 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "tgafile.h"
+#include "trace.h"
+#include "light.h"
+#include "shade.h"
+#include "camera.h"
+#include "util.h"
+#include "intersect.h"
+#include "global.h"
+#include "ui.h"
+#include "video.h"
+
+// shared but read-only so could be private too
+static thr_parms *all_parms;
+static scenedef scene;
+static int startx;
+static int stopx;
+static int starty;
+static int stopy;
+static flt jitterscale;
+static int totaly;
+
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_for.h"
+#include "tbb/spin_mutex.h"
+#include "tbb/blocked_range.h"
+
+static tbb::spin_mutex MyMutex, MyMutex2;
+
+static color_t render_one_pixel (int x, int y, unsigned int *local_mbox, unsigned int &serial,
+                                 int startx, int stopx, int starty, int stopy)
+{
+    /* private vars moved inside loop */
+    ray primary, sample;
+    color col, avcol;
+    int R,G,B;
+    intersectstruct local_intersections;    
+    int alias;
+    /* end private */
+
+    primary=camray(&scene, x, y);
+    primary.intstruct = &local_intersections;
+    primary.flags = RT_RAY_REGULAR;
+
+    serial++;
+    primary.serial = serial;  
+    primary.mbox = local_mbox;
+    primary.maxdist = FHUGE;
+    primary.scene = &scene;
+    col=trace(&primary);  
+
+    serial = primary.serial;
+
+    /* perform antialiasing if enabled.. */
+    if (scene.antialiasing > 0) {
+        for (alias=0; alias < scene.antialiasing; alias++) {
+
+            serial++; /* increment serial number */
+            sample=primary;  /* copy the regular primary ray to start with */
+            sample.serial = serial; 
+
+            {
+                tbb::spin_mutex::scoped_lock lock (MyMutex);
+                sample.d.x+=((rand() % 100) - 50) / jitterscale;
+                sample.d.y+=((rand() % 100) - 50) / jitterscale;
+                sample.d.z+=((rand() % 100) - 50) / jitterscale;
+            }
+
+            avcol=trace(&sample);  
+
+            serial = sample.serial; /* update our overall serial # */
+
+            col.r += avcol.r;
+            col.g += avcol.g;
+            col.b += avcol.b;
+        }
+
+        col.r /= (scene.antialiasing + 1.0);
+        col.g /= (scene.antialiasing + 1.0);
+        col.b /= (scene.antialiasing + 1.0);
+    }
+
+    /* Handle overexposure and underexposure here... */
+    R=(int) (col.r*255);
+    if (R > 255) R = 255;
+    else if (R < 0) R = 0;
+
+    G=(int) (col.g*255);
+    if (G > 255) G = 255;
+    else if (G < 0) G = 0;
+
+    B=(int) (col.b*255);
+    if (B > 255) B = 255;
+    else if (B < 0) B = 0;
+
+    return video->get_color(R, G, B);
+
+}
+
+class parallel_task {
+public:
+    void operator() (const tbb::blocked_range<int> &r) const
+    {
+        // task-local storage
+        unsigned int serial = 1;
+        unsigned int mboxsize = sizeof(unsigned int)*(max_objectid() + 20);
+        unsigned int * local_mbox = (unsigned int *) alloca(mboxsize);
+        memset(local_mbox,0,mboxsize);
+
+        for (int y = r.begin(); y != r.end(); ++y) { {
+            drawing_area drawing(startx, totaly-y, stopx-startx, 1);
+            for (int x = startx; x < stopx; x++) {
+                color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy);
+                drawing.put_pixel(c);
+            } }
+            if(!video->next_frame()) return;
+        }
+    }
+
+    parallel_task () {}
+};
+
+void * thread_trace(thr_parms * parms)
+{
+    int n, nthreads = tbb::task_scheduler_init::automatic;
+    char *nthreads_str = getenv ("TBB_NUM_THREADS");
+    if (nthreads_str && (sscanf (nthreads_str, "%d", &n) > 0) && (n > 0)) nthreads = n;
+    tbb::task_scheduler_init init (nthreads);
+
+    // shared but read-only so could be private too
+    all_parms = parms;
+    scene = parms->scene;
+    startx = parms->startx;
+    stopx = parms->stopx;
+    starty = parms->starty;
+    stopy = parms->stopy;
+    jitterscale = 40.0*(scene.hres + scene.vres);
+    totaly = parms->scene.vres-1;
+
+    int g, grain_size = 50;
+    char *grain_str = getenv ("TBB_GRAINSIZE");
+    if (grain_str && (sscanf (grain_str, "%d", &g) > 0) && (g > 0)) grain_size = g;
+  
+    // Uses the preview feature: auto_partitioner.
+    // Note that no grainsize is provided to the blocked_range object.
+    tbb::parallel_for (tbb::blocked_range<int> (starty, stopy), parallel_task (), tbb::auto_partitioner() );
+
+    return(NULL);  
+}
diff --git a/examples/parallel_for/tacheon/src/trace_rest.cpp b/examples/parallel_for/tacheon/src/trace_rest.cpp
new file mode 100644
index 0000000..38a3c4f
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/trace_rest.cpp
@@ -0,0 +1,151 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * trace.c - This file contains the functions for firing primary rays
+ *           and handling subsequent calculations
+ *
+ *   $Id: trace_rest.cpp,v 1.4 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "tgafile.h"
+#include "trace.h"
+#include "light.h"
+#include "shade.h"
+#include "camera.h"
+#include "util.h"
+#include "intersect.h"
+#include "global.h"
+#include "ui.h"
+#include "video.h"
+
+color trace(ray * primary) {
+  if (primary->depth > 0) {
+    VNorm(&primary->d);
+    reset_intersection(primary->intstruct);
+    intersect_objects(primary);
+    return shader(primary);
+  }
+
+  /* if ray is truncated, return the background as its color */
+  return primary->scene->background;
+}
+
+void * thread_io(void * parms) {
+  thr_io_parms p;
+
+  p= *((thr_io_parms *) parms);
+  writetgaregion(p.tga, p.iwidth, p.iheight, p.startx, p.starty, 
+		p.stopx, p.stopy, p.buffer);
+  free(p.buffer); /* free the buffer once we are done with it.. */
+  free(parms);
+
+  return(NULL);
+}
+
+void trace_shm(scenedef scene, /*char * buffer,  */ int startx, int stopx, int starty, int stopy) {
+
+  thr_parms * parms;
+
+  parms = (thr_parms *) rt_getmem(sizeof(thr_parms));  
+
+  parms->tid=0;
+  parms->nthr=1;
+  parms->scene=scene;
+  parms->startx=startx;
+  parms->stopx=stopx;
+  parms->starty=starty;
+  parms->stopy=stopy;
+
+  thread_trace(parms);
+
+  rt_freemem(parms);
+}
+
+void trace_region(scenedef scene, void * tga, int startx, int starty, int stopx, int stopy) {
+
+  if (scene.verbosemode) {
+    char msgtxt[2048];
+    sprintf(msgtxt, "Node %3d tracing region  %4d, %4d  --->  %4d, %4d \n", 0, startx,starty,stopx,stopy);
+    rt_ui_message(MSG_0, msgtxt);
+  }
+
+  trace_shm(scene, /*buffer,*/ startx, stopx, starty, stopy);
+/* not used now
+  writetgaregion(tga, scene.hres, scene.vres, 
+                 startx, starty, stopx, stopy, global_buffer);
+
+  if (scene.rawimage != NULL) {
+    int x, y;
+    int totalx = stopx - startx + 1;
+    for (y=starty; y<=stopy; y++) {
+      for (x=0; x<scene.hres; x++) {
+        scene.rawimage[(scene.vres-y)*scene.hres*3 + x*3] = global_buffer[(y-starty)*totalx*3 + x*3 + 2];
+        scene.rawimage[(scene.vres-y)*scene.hres*3 + x*3 +1] = global_buffer[(y-starty)*totalx*3 + x*3 + 1];
+        scene.rawimage[(scene.vres-y)*scene.hres*3 + x*3 +2] = global_buffer[(y-starty)*totalx*3 + x*3];
+      }
+    }
+  }
+*/
+}
diff --git a/examples/parallel_for/tacheon/src/triangle.cpp b/examples/parallel_for/tacheon/src/triangle.cpp
new file mode 100644
index 0000000..fd0c8d5
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/triangle.cpp
@@ -0,0 +1,258 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * triangle.c - This file contains the functions for dealing with triangles.
+ *
+ *  $Id: triangle.cpp,v 1.3.2.1 2007/06/04 19:23:39 dpoulsen Exp $
+ */
+ 
+#include "machine.h"
+#include "types.h"
+#include "vector.h"
+#include "macros.h"
+#include "intersect.h"
+#include "util.h"
+
+#define TRIANGLE_PRIVATE
+#include "triangle.h"
+
+static object_methods tri_methods = {
+  (void (*)(void *, void *))(tri_intersect),
+  (void (*)(void *, void *, void *, void *))(tri_normal),
+  tri_bbox, 
+  free 
+};
+
+static object_methods stri_methods = {
+  (void (*)(void *, void *))(tri_intersect),
+  (void (*)(void *, void *, void *, void *))(stri_normal),
+  tri_bbox, 
+  free 
+};
+
+object * newtri(void * tex, vector v0, vector v1, vector v2) {
+  tri * t;
+  vector edge1, edge2, edge3;
+
+  VSub(&v1, &v0, &edge1);
+  VSub(&v2, &v0, &edge2);
+  VSub(&v2, &v1, &edge3);
+
+  /* check to see if this will be a degenerate triangle before creation */
+  if ((VLength(&edge1) >= EPSILON) && 
+      (VLength(&edge2) >= EPSILON) && 
+      (VLength(&edge3) >= EPSILON)) {
+
+    t=(tri *) rt_getmem(sizeof(tri));
+
+    t->nextobj = NULL;
+    t->methods = &tri_methods;
+
+    t->tex = (texture *)tex;
+    t->v0 = v0;
+    t->edge1 = edge1;
+    t->edge2 = edge2;
+ 
+    return (object *) t;
+  }
+  
+  return NULL; /* was a degenerate triangle */
+}
+
+
+object * newstri(void * tex, vector v0, vector v1, vector v2,
+                           vector n0, vector n1, vector n2) {
+  stri * t;
+  vector edge1, edge2, edge3;
+
+  VSub(&v1, &v0, &edge1);
+  VSub(&v2, &v0, &edge2);
+  VSub(&v2, &v1, &edge3);
+
+  /* check to see if this will be a degenerate triangle before creation */
+  if ((VLength(&edge1) >= EPSILON) && 
+      (VLength(&edge2) >= EPSILON) &&
+      (VLength(&edge3) >= EPSILON)) {
+
+    t=(stri *) rt_getmem(sizeof(stri));
+
+    t->nextobj = NULL;
+    t->methods = &stri_methods;
+ 
+    t->tex = (texture *)tex;
+    t->v0 = v0;
+    t->edge1 = edge1;
+    t->edge2 = edge2;
+    t->n0 = n0;
+    t->n1 = n1;
+    t->n2 = n2;
+
+    return (object *) t;
+  }
+
+  return NULL; /* was a degenerate triangle */
+}
+
+#define CROSS(dest,v1,v2) \
+          dest.x=v1.y*v2.z-v1.z*v2.y; \
+          dest.y=v1.z*v2.x-v1.x*v2.z; \
+          dest.z=v1.x*v2.y-v1.y*v2.x;
+
+#define DOT(v1,v2) (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z)
+
+#define SUB(dest,v1,v2) \
+          dest.x=v1.x-v2.x; \
+          dest.y=v1.y-v2.y; \
+          dest.z=v1.z-v2.z;
+
+static int tri_bbox(void * obj, vector * min, vector * max) {
+  tri * t = (tri *) obj;
+  vector v1, v2;
+
+  VAdd(&t->v0, &t->edge1, &v1); 
+  VAdd(&t->v0, &t->edge2, &v2); 
+
+  min->x = MYMIN( t->v0.x , MYMIN( v1.x , v2.x ));
+  min->y = MYMIN( t->v0.y , MYMIN( v1.y , v2.y ));
+  min->z = MYMIN( t->v0.z , MYMIN( v1.z , v2.z ));
+
+  max->x = MYMAX( t->v0.x , MYMAX( v1.x , v2.x ));
+  max->y = MYMAX( t->v0.y , MYMAX( v1.y , v2.y ));
+  max->z = MYMAX( t->v0.z , MYMAX( v1.z , v2.z ));
+
+  return 1;
+}
+
+static void tri_intersect(tri * trn, ray * ry) {
+  vector tvec, pvec, qvec;
+  flt det, inv_det, t, u, v;
+
+  /* begin calculating determinant - also used to calculate U parameter */
+  CROSS(pvec, ry->d, trn->edge2);
+
+  /* if determinant is near zero, ray lies in plane of triangle */
+  det = DOT(trn->edge1, pvec);
+
+   if (det > -EPSILON && det < EPSILON)
+     return;
+
+   inv_det = 1.0 / det;
+
+   /* calculate distance from vert0 to ray origin */
+   SUB(tvec, ry->o, trn->v0);
+
+   /* calculate U parameter and test bounds */
+   u = DOT(tvec, pvec) * inv_det;
+   if (u < 0.0 || u > 1.0)
+     return;
+
+   /* prepare to test V parameter */
+   CROSS(qvec, tvec, trn->edge1);
+
+   /* calculate V parameter and test bounds */
+   v = DOT(ry->d, qvec) * inv_det;
+   if (v < 0.0 || u + v > 1.0)
+     return;
+
+   /* calculate t, ray intersects triangle */
+   t = DOT(trn->edge2, qvec) * inv_det;
+
+  add_intersection(t,(object *) trn, ry);
+}
+
+
+static void tri_normal(tri * trn, vector  * pnt, ray * incident, vector * N) {
+
+  CROSS((*N), trn->edge1, trn->edge2);
+
+  VNorm(N);
+
+  if (VDot(N, &(incident->d)) > 0.0)  {
+    N->x=-N->x;
+    N->y=-N->y;
+    N->z=-N->z;
+  }
+}
+
+static void stri_normal(stri * trn, vector  * pnt, ray * incident, vector * N) {
+  flt U, V, W, lensqr;
+  vector P, tmp, norm;
+  
+  CROSS(norm, trn->edge1, trn->edge2);
+  lensqr = DOT(norm, norm); 
+
+  VSUB((*pnt), trn->v0, P);
+
+  CROSS(tmp, P, trn->edge2);
+  U = DOT(tmp, norm) / lensqr;   
+
+  CROSS(tmp, trn->edge1, P);
+  V = DOT(tmp, norm) / lensqr;   
+
+  W = 1.0 - (U + V);
+
+  N->x = W*trn->n0.x + U*trn->n1.x + V*trn->n2.x;
+  N->y = W*trn->n0.y + U*trn->n1.y + V*trn->n2.y;
+  N->z = W*trn->n0.z + U*trn->n1.z + V*trn->n2.z;
+
+  VNorm(N);
+}
+
diff --git a/examples/parallel_for/tacheon/src/triangle.h b/examples/parallel_for/tacheon/src/triangle.h
new file mode 100644
index 0000000..d0e4ac5
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/triangle.h
@@ -0,0 +1,105 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * triangle.h - This file contains the defines for triangles etc.
+ *
+ *  $Id: triangle.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+object * newtri(void *, vector, vector, vector);
+object * newstri(void *, vector, vector, vector, vector, vector, vector);
+
+#ifdef TRIANGLE_PRIVATE
+
+#define TRIXMAJOR 0
+#define TRIYMAJOR 1
+#define TRIZMAJOR 2
+ 
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector edge2;
+  vector edge1;
+  vector v0;
+} tri; 
+
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+  vector edge2;
+  vector edge1;
+  vector v0;
+  vector n0;
+  vector n1;
+  vector n2;
+} stri; 
+
+static int tri_bbox(void * obj, vector * min, vector * max);
+
+static void tri_intersect(tri *, ray *);
+
+static void tri_normal(tri *, vector *, ray *, vector *);
+static void stri_normal(stri *, vector *, ray *, vector *);
+#endif
diff --git a/examples/parallel_for/tacheon/src/types.h b/examples/parallel_for/tacheon/src/types.h
new file mode 100644
index 0000000..b462e71
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/types.h
@@ -0,0 +1,233 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#ifdef _WIN32
+#include <malloc.h>
+#define alloca _alloca
+#else
+#include <alloca.h>
+#endif
+
+/* 
+ * types.h - This file contains all of the type definitions for the raytracer
+ *
+ *  $Id: types.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#define MAXOCTNODES 25       /* subdivide octants /w > # of children */
+#define SPEPSILON 0.000001   /* amount to crawl down a ray           */
+#define EPSILON   0.000001   /* amount to crawl down a ray           */
+#define TWOPI 6.2831853      /* guess                                */
+#define FHUGE 1e18           /* biggest fp number we can represent   */
+
+/* Maximum internal table sizes */
+/* Use prime numbers for best memory system performance */
+#define INTTBSIZE 1024       /* maximum intersections we can hold    */ 
+#define MAXLIGHTS 39         /* maximum number of lights in a scene  */
+#define MAXIMGS   39         /* maxiumum number of distinct images   */
+#define RPCQSIZE  113	     /* number of RPC messages to queue      */
+
+/* Parameter values for rt_boundmode() */
+#define RT_BOUNDING_DISABLED 0  /* spatial subdivision/bounding disabled */
+#define RT_BOUNDING_ENABLED  1  /* spatial subdivision/bounding enabled  */
+
+/* Parameter values for rt_displaymode() */
+#define RT_DISPLAY_DISABLED  0  /* video output enabled  */
+#define RT_DISPLAY_ENABLED   1  /* video output disabled */
+
+/* Ray flags */
+#define RT_RAY_REGULAR   1
+#define RT_RAY_SHADOW    2
+#define RT_RAY_BOUNDED   4
+#define RT_RAY_FINISHED  8
+
+#ifdef USESINGLEFLT
+typedef float flt;   /* generic floating point number, using float */
+#else
+typedef double flt;  /* generic floating point number, using double */
+#endif
+
+typedef unsigned char byte; /* 1 byte */
+typedef signed int word;    /* 32 bit integer */
+
+typedef struct {
+   flt x;        /* X coordinate value */
+   flt y;        /* Y coordinate value */
+   flt z;        /* Z coordinate value */
+} vector;
+
+typedef struct {
+   flt r;        /* Red component   */
+   flt g;        /* Green component */
+   flt b;        /* Blue component  */
+} color;
+
+typedef struct {
+   byte r;       /* Red component   */
+   byte g;       /* Green component */
+   byte b;       /* Blue component  */
+} bytecolor;
+
+typedef struct {         /* Raw 24 bit image structure, for tga, ppm etc */
+  int loaded;            /* image memory residence flag    */
+  int xres;              /* image X axis size              */
+  int yres;              /* image Y axis size              */
+  int bpp;               /* image bits per pixel           */
+  char name[96];         /* image filename (with path)     */
+  unsigned char * data;  /* pointer to raw byte image data */
+} rawimage;
+
+typedef struct {         /* Scalar Volume Data */
+  int loaded;            /* Volume data memory residence flag */
+  int xres;		 /* volume X axis size                */
+  int yres;		 /* volume Y axis size                */
+  int zres;		 /* volume Z axis size                */
+  flt opacity;		 /* opacity per unit length           */
+  char name[96];         /* Volume data filename              */
+  unsigned char * data;  /* pointer to raw byte volume data   */
+} scalarvol;
+ 
+typedef struct {
+  color (* texfunc)(void *, void *, void *);
+  int shadowcast;  /* does the object cast a shadow */
+  int islight;	   /* light flag... */
+  color col;       /* base object color */
+  flt ambient;     /* ambient lighting */
+  flt diffuse; 	   /* diffuse reflection */
+  flt phong;       /* phong specular highlights */
+  flt phongexp;    /* phong exponent/shininess factor */
+  int phongtype;   /* phong type: 0 == plastic, nonzero == metal */
+  flt specular;    /* specular reflection */
+  flt opacity;     /* how opaque the object is */ 
+  vector ctr;      /* origin of texture */
+  vector rot;      /* rotation of texture about origin */
+  vector scale;    /* scale of texture in x,y,z */
+  vector uaxs;	   /* planar map U axis */
+  vector vaxs;	   /* planar map V axis */
+  void * img;      /* pointer to image for image mapping */
+  void * obj;      /* object ptr, hack for volume shaders for now */
+} texture;
+
+typedef struct {
+  void (* intersect)(void *, void *);              /* intersection func ptr  */
+  void (* normal)(void *, void *, void *, void *); /* normal function ptr    */
+  int (* bbox)(void *, vector *, vector *);        /* return the object bbox */
+  void (* free)(void *);                           /* free the object        */
+} object_methods;
+ 
+typedef struct {
+  unsigned int id;                      /* Unique Object serial number    */
+  void * nextobj;                       /* pointer to next object in list */ 
+  object_methods * methods;             /* this object's methods          */
+  texture * tex;                        /* object texture                 */
+} object; 
+
+typedef struct {
+  object * obj;  /* to object we hit                        */ 
+  flt t;         /* distance along the ray to the hit point */
+} intersection;
+
+typedef struct {
+  int num;                      /* number of intersections    */
+  intersection closest;         /* closest intersection > 0.0 */
+  intersection list[INTTBSIZE]; /* list of all intersections  */ 
+} intersectstruct;
+
+typedef struct {
+  char outfilename[200];     /* name of the output image                */
+  unsigned char * rawimage;  /* pointer to a raw rgb image to be stored */
+  int hres;                  /* horizontal output image resolution      */
+  int vres;                  /* vertical output image resolution        */
+  flt aspectratio;           /* aspect ratio of output image            */
+  int raydepth;              /* maximum recursion depth                 */
+  int antialiasing;          /* number of antialiasing rays to fire     */
+  int verbosemode;           /* verbose reporting flag                  */
+  int boundmode;             /* automatic spatial subdivision flag      */
+  int boundthresh;           /* threshold number of subobjects          */
+  int displaymode;           /* run-time X11 display flag               */
+  vector camcent;            /* center of the camera in world coords    */
+  vector camviewvec;         /* view direction of the camera  (Z axis)  */
+  vector camrightvec;        /* right axis for the camera     (X axis)  */
+  vector camupvec;           /* up axis for the camera        (Y axis)  */
+  flt camzoom;               /* zoom factor for the camera              */
+  color background;          /* scene background color                  */
+} scenedef;
+
+typedef struct {
+   intersectstruct * intstruct; /* ptr to thread's intersection data       */ 
+   unsigned int depth;   /* levels left to recurse.. (maxdepth - curdepth) */
+   unsigned int flags;   /* ray flags, any special treatment needed etc    */
+   unsigned int serial;  /* serial number of the ray                       */
+   unsigned int * mbox;  /* mailbox array for optimizing intersections     */
+   vector o;             /* origin of the ray X,Y,Z                        */
+   vector d;             /* normalized direction of the ray                */
+   flt maxdist;          /* maximum distance to search for intersections   */
+   vector s;		 /* startpoint of the ray (may differ from origin  */
+   vector e;             /* endpoint of the ray if bounded                 */
+   scenedef * scene;     /* pointer to the scene, for global parms such as */
+                         /* background colors etc                          */
+} ray;
+
+typedef struct {
+  int type;      /* RPC call type            */
+  int from;      /* Sending processor        */
+  int len;       /* length of parms in bytes */
+  void * parms;  /* Parameters to RPC        */
+} rpcmsg;
diff --git a/examples/parallel_for/tacheon/src/ui.cpp b/examples/parallel_for/tacheon/src/ui.cpp
new file mode 100644
index 0000000..23526ad
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/ui.cpp
@@ -0,0 +1,122 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * ui.c - Contains functions for dealing with user interfaces
+ *
+ *  $Id: ui.cpp,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "util.h"
+#include "ui.h"
+
+static void (* rt_static_ui_message) (int, char *) = NULL;
+static void (* rt_static_ui_progress) (int) = NULL;
+static int (* rt_static_ui_checkaction) (void) = NULL;
+
+void set_rt_ui_message(void (* func) (int, char *)) {
+  rt_static_ui_message = func;
+}
+
+void set_rt_ui_progress(void (* func) (int)) {
+  rt_static_ui_progress = func;
+}
+
+void rt_ui_message(int level, char * msg) {
+  if (rt_static_ui_message == NULL) {
+    fprintf(stderr, "%s\n", msg);
+    fflush (stderr);
+  } else {
+    rt_static_ui_message(level, msg);
+  }
+}
+
+void rt_ui_progress(int percent) {
+  if (rt_static_ui_progress != NULL)
+    rt_static_ui_progress(percent);
+  else {
+    fprintf(stderr, "\r %3d%% Complete            \r", percent);
+    fflush(stderr);
+  }
+}
+
+int rt_ui_checkaction(void) {
+  if (rt_static_ui_checkaction != NULL) 
+    return rt_static_ui_checkaction();
+  else
+    return 0;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/parallel_for/tacheon/src/ui.h b/examples/parallel_for/tacheon/src/ui.h
new file mode 100644
index 0000000..303991f
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/ui.h
@@ -0,0 +1,79 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * ui.h - defines for user interface functions
+ *
+ *  $Id: ui.h,v 1.2 2007/02/22 17:54:16 dpoulsen Exp $
+ */
+
+/* Different types of message, for levels of verbosity etc */
+#define MSG_0      100
+#define MSG_1      101
+#define MSG_2      102
+#define MSG_3      103
+#define MSG_4      104
+#define MSG_5      105
+#define MSG_ERR    200
+#define MSG_ABORT  300
+
+void rt_ui_message(int, char *);
+void rt_ui_progress(int);
+int  rt_ui_checkaction(void);
diff --git a/examples/parallel_for/tacheon/src/util.cpp b/examples/parallel_for/tacheon/src/util.cpp
new file mode 100644
index 0000000..f5998f5
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/util.cpp
@@ -0,0 +1,204 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * util.c - Contains all of the timing functions for various platforms.
+ *
+ *  $Id: util.cpp,v 1.6 2007/02/22 18:17:51 amalakho Exp $ 
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "util.h"
+#include "light.h"
+#include "global.h"
+#include "ui.h"
+
+void rt_finalize(void);
+
+#ifndef _WIN32
+#include <sys/time.h>
+#include <unistd.h>
+
+void rt_sleep(int msec) {
+    usleep(msec*1000);
+}
+
+#else //_WIN32
+
+#undef OLDUNIXTIME
+#undef STDTIME
+
+#include <windows.h>
+
+void rt_sleep(int msec) {
+    Sleep(msec);
+}
+
+DWORD starttime;
+DWORD stoptime;
+
+void timerstart(void) {
+    starttime = GetTickCount ();
+}
+
+void timerstop(void) {
+    stoptime = GetTickCount ();
+}
+
+flt timertime(void) {
+   double ttime, start, end;
+
+   start = ((double) starttime) / ((double) 1000.00);
+     end = ((double) stoptime) / ((double) 1000.00);
+   ttime = end - start;
+
+   return ttime;
+}
+#endif  /*  _WIN32  */
+
+/* if we're on a Unix with gettimeofday() we'll use newer timers */
+#ifdef STDTIME 
+  struct timeval starttime, endtime;
+  struct timezone tz;
+ 
+void timerstart(void) {
+  gettimeofday(&starttime, &tz);
+} 
+  
+void timerstop(void) {
+  gettimeofday(&endtime, &tz);
+} 
+  
+flt timertime(void) {
+   double ttime, start, end;
+
+   start = (starttime.tv_sec+1.0*starttime.tv_usec / 1000000.0);
+     end = (endtime.tv_sec+1.0*endtime.tv_usec / 1000000.0);
+   ttime = end - start;
+
+   return ttime;
+}  
+#endif  /*  STDTIME  */
+
+
+
+/* use the old fashioned Unix time functions */
+#ifdef OLDUNIXTIME
+time_t starttime;
+time_t stoptime;
+
+void timerstart(void) {
+  starttime=time(NULL);
+}
+
+void timerstop(void) {
+  stoptime=time(NULL);
+}
+
+flt timertime(void) {
+  flt a;
+  a = difftime(stoptime, starttime);
+  return a;
+}
+#endif  /*  OLDUNIXTIME  */
+
+
+
+/* random other helper utility functions */
+int rt_meminuse(void) {
+  return rt_mem_in_use;
+}  
+
+void * rt_getmem(unsigned int bytes) {
+  void * mem;
+
+  mem=malloc( bytes );
+  if (mem!=NULL) { 
+    rt_mem_in_use += bytes;
+  } 
+  else {
+    rtbomb("No more memory!!!!");
+  }
+  return mem;
+}
+
+unsigned int rt_freemem(void * addr) {
+  unsigned int bytes;
+
+  free(addr);
+
+  bytes=0;
+  rt_mem_in_use -= bytes; 
+  return bytes;
+}
+
+void rtbomb(char * msg) {
+    rt_ui_message(MSG_ERR, msg);
+    rt_ui_message(MSG_ABORT, "Rendering Aborted.");
+
+  rt_finalize();
+  exit(1);
+}
+
+void rtmesg(char * msg) {
+    rt_ui_message(MSG_0, msg);
+}
diff --git a/examples/parallel_for/tacheon/src/util.h b/examples/parallel_for/tacheon/src/util.h
new file mode 100644
index 0000000..abcbf9c
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/util.h
@@ -0,0 +1,75 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * util.h - This file contains defines for the timer functions...
+ *
+ *  $Id: util.h,v 1.3 2007/02/22 17:54:17 dpoulsen Exp $
+ */
+
+void timerstart(void);
+void timerstop(void);
+flt timertime(void);
+void rt_sleep(int);
+int rt_meminuse(void);
+void * rt_getmem(unsigned int);
+unsigned int rt_freemem(void *); 
+void rtbomb(char *);
+void rtmesg(char *);
diff --git a/examples/parallel_for/tacheon/src/vector.cpp b/examples/parallel_for/tacheon/src/vector.cpp
new file mode 100644
index 0000000..84b2ed8
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/vector.cpp
@@ -0,0 +1,147 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/* 
+ * vector.c - This file contains all of the vector arithmetic functions.
+ *
+ *  $Id: vector.cpp,v 1.2 2007/02/22 17:54:17 dpoulsen Exp $
+ */
+
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+
+flt VDot(vector *a, vector *b) {
+  return (a->x*b->x + a->y*b->y + a->z*b->z);
+}
+
+void VCross(vector * a, vector * b, vector * c) {
+  c->x = (a->y * b->z) - (a->z * b->y);
+  c->y = (a->z * b->x) - (a->x * b->z);
+  c->z = (a->x * b->y) - (a->y * b->x);
+}
+
+flt VLength(vector * a) {
+  return (flt) sqrt((a->x * a->x) + (a->y * a->y) + (a->z * a->z));
+}
+
+void VNorm(vector * a) {
+  flt len;
+
+  len=sqrt((a->x * a->x) + (a->y * a->y) + (a->z * a->z));
+  if (len != 0.0) {
+    a->x /= len;
+    a->y /= len;
+    a->z /= len;
+  }
+}
+
+void VAdd(vector * a, vector * b, vector * c) {
+  c->x = (a->x + b->x);
+  c->y = (a->y + b->y);
+  c->z = (a->z + b->z);
+}
+    
+void VSub(vector * a, vector * b, vector * c) {
+  c->x = (a->x - b->x);
+  c->y = (a->y - b->y);
+  c->z = (a->z - b->z);
+}
+
+void VAddS(flt a, vector * A, vector * B, vector * C) {
+  C->x = (a * A->x) + B->x;
+  C->y = (a * A->y) + B->y;
+  C->z = (a * A->z) + B->z;
+}
+
+vector Raypnt(ray * a, flt t) {
+  vector temp;
+
+  temp.x=a->o.x + (a->d.x * t);
+  temp.y=a->o.y + (a->d.y * t);
+  temp.z=a->o.z + (a->d.z * t);
+
+  return temp;
+}
+
+void VScale(vector * a, flt s) {
+  a->x *= s;
+  a->y *= s;
+  a->z *= s;
+}
+
+void ColorAddS(color * a, color * b, flt s) {
+  a->r += b->r * s;
+  a->g += b->g * s;
+  a->b += b->b * s;
+}
+
+void ColorAccum(color * a, color * b) {
+  a->r += b->r;
+  a->g += b->g;
+  a->b += b->b;
+}
+
+void ColorScale(color * a, flt s) {
+  a->r *= s;
+  a->g *= s;
+  a->b *= s;
+}
+
diff --git a/examples/parallel_for/tacheon/src/vector.h b/examples/parallel_for/tacheon/src/vector.h
new file mode 100644
index 0000000..cf32ccf
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/vector.h
@@ -0,0 +1,79 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * vector.h - This file contains declarations of vector functions
+ *
+ *  $Id: vector.h,v 1.2 2007/02/22 17:54:17 dpoulsen Exp $
+ */
+
+flt VDot(vector *, vector *);
+void VCross(vector *, vector *, vector *);
+flt VLength(vector *);
+void VNorm(vector *);
+void VAdd(vector *, vector *, vector *);
+void VSub(vector *, vector *, vector *);
+void VAddS(flt, vector *, vector *, vector *);
+vector Raypnt(ray *, flt);
+void VScale(vector * a, flt s); 
+
+void ColorAddS(color * a, color * b, flt s); 
+void ColorAccum(color * a, color * b); 
+void ColorScale(color * a, flt s); 
diff --git a/examples/parallel_for/tacheon/src/video.cpp b/examples/parallel_for/tacheon/src/video.cpp
new file mode 100644
index 0000000..76eb9fd
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/video.cpp
@@ -0,0 +1,221 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * video.c - routines for putting pixels on a screen if one is available.
+ *
+ *  $Id: video.cpp,v 1.20 2007/02/28 18:35:22 amalakho Exp $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define VIDEO_WINMAIN_ARGS
+#include "types.h"
+#include "api.h"       /* The ray tracing library API */
+#include "getargs.h"   /* command line argument/option parsing */
+#include "parse.h"     /* Support for my own file format */
+#include "ui.h"
+#include "util.h"
+#include "video.h"
+
+static SceneHandle global_scene;
+static int global_xsize;     /*  size of graphic image rendered in window (from hres, vres)  */
+static int global_ysize;
+static int global_xwinsize;  /*  size of window (may be larger than above)  */
+static int global_ywinsize;
+static char *global_window_title;
+static bool global_usegraphics;
+
+static char *window_title_string (int argc, char **argv)
+{
+    int i;
+    char *name;
+
+    name = (char *) malloc (8192);
+    
+    if(strrchr(argv[0], '\\')) strcpy (name, strrchr(argv[0], '\\')+1);
+    else if(strrchr(argv[0], '/')) strcpy (name, strrchr(argv[0], '/')+1);
+    else strcpy (name, *argv[0]?argv[0]:"Tacheon");
+    for (i = 1; i < argc; i++) {
+        strcat (name, " ");
+        strcat (name, argv[i]);
+    }
+#ifdef _DEBUG
+    strcat (name, " (DEBUG BUILD)");
+#endif
+    return name;
+}
+
+static int main_init_parts (int argc, char **argv)
+{
+    int rc;
+    argoptions opt;
+    char * filename;
+
+    global_window_title = window_title_string (argc, argv);
+
+    global_scene = rt_newscene();
+
+    rt_initialize(&argc, &argv);
+
+    if ((rc = getargs(argc, argv, &opt)) == -1) {
+#if _WIN32||_WIN64
+        rt_sleep(10000);
+#endif
+        exit(rc);
+    }
+
+#ifdef DEFAULT_MODELFILE
+#if  _WIN32||_WIN64
+#define _GLUE_FILENAME(x) "..\\dat\\" #x
+#else
+#define _GLUE_FILENAME(x) #x
+#endif
+#define GLUE_FILENAME(x) _GLUE_FILENAME(x)
+    if(opt.foundfilename == -1)
+        filename = GLUE_FILENAME(DEFAULT_MODELFILE);
+    else
+#endif//DEFAULT_MODELFILE
+        filename = opt.filename;
+
+    rc = readmodel(filename, global_scene);
+
+    if (rc != 0) {
+        fprintf(stderr, "Parser returned a non-zero error code reading %s\n", filename);
+        fprintf(stderr, "Aborting Render...\n");
+        rt_finalize();
+        return -1;
+    }
+
+    /* process command line overrides */
+    useoptions(&opt, global_scene);
+
+    // need these early for create_graphics_window() so grab these here...
+    scenedef *scene = (scenedef *) global_scene;
+    global_xsize = scene->hres;
+    global_ysize = scene->vres;
+    global_xwinsize = global_xsize;
+    global_ywinsize = global_ysize;  // add some here to leave extra blank space on bottom for status etc.
+    global_usegraphics = (scene->displaymode == RT_DISPLAY_ENABLED);
+
+    rt_ui_message (MSG_0, "\nIncludes software developed by John E. Stone.\n");
+
+    return 0;
+}
+
+class tacheon_video : public video
+{
+    void on_process()
+    {
+        char buf[128];
+        flt runtime;
+        timerstart();
+        rt_renderscene(global_scene);
+        timerstop();
+        runtime=timertime();
+        sprintf(buf, "\nCPU Time: %.3f seconds.", runtime);
+        rt_ui_message(MSG_0, buf); buf[0] = ' ';
+        strcat(global_window_title, buf);
+        title = global_window_title; updating = true;
+        show_title();
+        rt_finalize();
+    }
+    void on_key(int key) {
+        key &= 0xff; if(key == 27) running = false;
+    }
+};
+class video *video = 0;
+
+void rt_finalize(void) {
+    timerstart();
+    if(global_usegraphics)
+        do { rt_sleep(10); timerstop(); }
+        while(timertime() < 10 && video->next_frame());
+#ifdef _WINDOWS
+    else rt_sleep(10000);
+#endif
+}
+
+int main (int argc, char **argv)
+{
+    int rc;
+
+    tacheon_video tacheon;
+    tacheon.threaded = true;
+    tacheon.init_console();
+
+    rc = main_init_parts (argc, argv);
+    if (rc) return rc;
+
+    tacheon.title = global_window_title;
+    tacheon.updating = global_usegraphics;
+    // always using window even if(!global_usegraphics)
+    global_usegraphics = 
+        tacheon.init_window(global_xwinsize, global_ywinsize);
+    if(!tacheon.running)
+        return -1;
+
+    video = &tacheon;
+    tacheon.main_loop();
+
+    return 0;
+}
diff --git a/examples/parallel_for/tacheon/src/video.h b/examples/parallel_for/tacheon/src/video.h
new file mode 100644
index 0000000..c878fce
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/video.h
@@ -0,0 +1,62 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+#include "../../../common/gui/video.h"
+extern class video *video;
diff --git a/examples/parallel_for/tacheon/src/vol.cpp b/examples/parallel_for/tacheon/src/vol.cpp
new file mode 100644
index 0000000..b506cb1
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/vol.cpp
@@ -0,0 +1,315 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * vol.c - Volume rendering helper routines etc.
+ *
+ *
+ *  $Id: vol.cpp,v 1.3 2007/02/22 18:17:51 amalakho Exp $
+ */
+
+#include<stdio.h>
+#include "machine.h"
+#include "types.h"
+#include "macros.h"
+#include "vector.h"
+#include "util.h"
+#include "vol.h"
+#include "box.h"
+#include "trace.h"
+#include "ui.h"
+#include "light.h"
+#include "shade.h"
+
+int scalarvol_bbox(void * obj, vector * min, vector * max) {
+  box * b = (box *) obj;
+
+  *min = b->min;
+  *max = b->max;
+
+  return 1;
+}
+
+void * newscalarvol(void * intex, vector min, vector max, 
+                    int xs, int ys, int zs, char * fname, scalarvol * invol) {
+  box * bx;
+  texture * tx, * tex;
+  scalarvol * vol;
+
+  tex=(texture *)intex;
+  tex->shadowcast = 0; /* doesn't cast a shadow */
+
+  tx=(texture *)rt_getmem(sizeof(texture));
+
+  /* is the volume data already loaded? */
+  if (invol==NULL) {
+    vol=(scalarvol *)rt_getmem(sizeof(scalarvol));
+    vol->loaded=0;
+    vol->data=NULL;
+  }
+  else
+    vol=invol;
+
+  vol->opacity=tex->opacity;
+  vol->xres=xs;
+  vol->yres=ys;
+  vol->zres=zs;
+  strcpy(vol->name, fname);
+
+  tx->ctr.x = 0.0;
+  tx->ctr.y = 0.0;
+  tx->ctr.z = 0.0;
+  tx->rot   = tx->ctr;
+  tx->scale = tx->ctr;
+  tx->uaxs  = tx->ctr;
+  tx->vaxs  = tx->ctr;
+
+  tx->islight = 0;
+  tx->shadowcast = 0; /* doesn't cast a shadow */
+
+  tx->col = tex->col;
+  tx->ambient  = 1.0;
+  tx->diffuse  = 0.0;
+  tx->specular = 0.0;
+  tx->opacity  = 1.0;
+  tx->img = vol;
+  tx->texfunc = (color(*)(void *, void *, void *))(scalar_volume_texture);
+
+  bx=newbox(tx, min, max);
+  tx->obj = (void *) bx; /* XXX hack! */
+
+  return (void *) bx;
+}
+
+
+color VoxelColor(flt scalar) {
+  color col;
+
+  if (scalar > 1.0) 
+    scalar = 1.0;
+
+  if (scalar < 0.0)
+    scalar = 0.0;
+
+  if (scalar < 0.25) {
+    col.r = scalar * 4.0;
+    col.g = 0.0;
+    col.b = 0.0;
+  }
+  else {
+    if (scalar < 0.75) {
+      col.r = 1.0;
+      col.g = (scalar - 0.25) * 2.0;
+      col.b = 0.0;
+    }
+    else {
+      col.r = 1.0;
+      col.g = 1.0;
+      col.b = (scalar - 0.75) * 4.0;
+    }
+  }
+
+  return col;
+} 
+
+color scalar_volume_texture(vector * hit, texture * tex, ray * ry) {
+  color col, col2;
+  box * bx;
+  flt a, tx1, tx2, ty1, ty2, tz1, tz2;
+  flt tnear, tfar;
+  flt t, tdist, dt, sum, tt; 
+  vector pnt, bln;
+  scalarvol * vol;
+  flt scalar, transval; 
+  int x, y, z;
+  unsigned char * ptr;
+
+  bx=(box *) tex->obj;
+  vol=(scalarvol *)bx->tex->img;
+   
+  col.r=0.0;
+  col.g=0.0;
+  col.b=0.0;
+ 
+  tnear= -FHUGE;
+  tfar= FHUGE;
+ 
+  if (ry->d.x == 0.0) {
+    if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return col;
+  }
+  else {
+    tx1 = (bx->min.x - ry->o.x) / ry->d.x;
+    tx2 = (bx->max.x - ry->o.x) / ry->d.x;
+    if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; }
+    if (tx1 > tnear) tnear=tx1;
+    if (tx2 < tfar)   tfar=tx2;
+  }
+  if (tnear > tfar) return col;
+  if (tfar < 0.0) return col;
+ 
+ if (ry->d.y == 0.0) {
+    if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return col;
+  }
+  else {
+    ty1 = (bx->min.y - ry->o.y) / ry->d.y;
+    ty2 = (bx->max.y - ry->o.y) / ry->d.y;
+    if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; }
+    if (ty1 > tnear) tnear=ty1;
+    if (ty2 < tfar)   tfar=ty2;
+  }
+  if (tnear > tfar) return col;
+  if (tfar < 0.0) return col;
+ 
+  if (ry->d.z == 0.0) {
+    if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return col;
+  }
+  else {
+    tz1 = (bx->min.z - ry->o.z) / ry->d.z;
+    tz2 = (bx->max.z - ry->o.z) / ry->d.z;
+    if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; }
+    if (tz1 > tnear) tnear=tz1;
+    if (tz2 < tfar)   tfar=tz2;
+  }
+  if (tnear > tfar) return col;
+  if (tfar < 0.0) return col;
+ 
+  if (tnear < 0.0) tnear=0.0;
+ 
+  tdist=sqrt((flt) (vol->xres*vol->xres + vol->yres*vol->yres + vol->zres*vol->zres));
+  tt = (vol->opacity / tdist); 
+
+  bln.x=fabs(bx->min.x - bx->max.x);
+  bln.y=fabs(bx->min.y - bx->max.y);
+  bln.z=fabs(bx->min.z - bx->max.z);
+  
+  dt=sqrt(bln.x*bln.x + bln.y*bln.y + bln.z*bln.z) / tdist; 
+  sum=0.0;
+
+  /* move the volume residency check out of loop.. */
+  if (!vol->loaded) {
+    LoadVol(vol);
+    vol->loaded=1;
+  }
+ 
+  for (t=tnear; t<=tfar; t+=dt) {
+    pnt.x=((ry->o.x + (ry->d.x * t)) - bx->min.x) / bln.x;
+    pnt.y=((ry->o.y + (ry->d.y * t)) - bx->min.y) / bln.y;
+    pnt.z=((ry->o.z + (ry->d.z * t)) - bx->min.z) / bln.z;
+ 
+    x=(int) ((vol->xres - 1.5) * pnt.x + 0.5);
+    y=(int) ((vol->yres - 1.5) * pnt.y + 0.5);
+    z=(int) ((vol->zres - 1.5) * pnt.z + 0.5);
+   
+    ptr = vol->data + ((vol->xres * vol->yres * z) + (vol->xres * y) + x);
+   
+    scalar = (flt) ((flt) 1.0 * ((int) ptr[0])) / 255.0;
+
+    sum += tt * scalar; 
+
+    transval = tt * scalar; 
+
+    col2 = VoxelColor(scalar);
+
+    if (sum < 1.0) {
+      col.r += transval * col2.r;
+      col.g += transval * col2.g;
+      col.b += transval * col2.b;
+      if (sum < 0.0) sum=0.0;
+    }  
+    else { 
+      sum=1.0;
+    }
+  }
+
+  if (sum < 1.0) {      /* spawn transmission rays / refraction */    
+    color transcol;
+
+    transcol = shade_transmission(ry, hit, 1.0 - sum);
+
+    col.r += transcol.r; /* add the transmitted ray  */    
+    col.g += transcol.g; /* to the diffuse and       */
+    col.b += transcol.b; /* transmission total..     */  
+  }
+
+  return col;
+}
+
+void LoadVol(scalarvol * vol) { 
+  FILE * dfile;
+  int status;
+  char msgtxt[2048];
+ 
+  dfile=fopen(vol->name, "r");
+  if (dfile==NULL) {
+    char msgtxt[2048];
+    sprintf(msgtxt, "Vol: can't open %s for input!!! Aborting\n",vol->name); 
+    rt_ui_message(MSG_ERR, msgtxt);
+    rt_ui_message(MSG_ABORT, "Rendering Aborted.");
+    exit(1);
+  }  
+ 
+  sprintf(msgtxt, "loading %dx%dx%d volume set from %s",
+      vol->xres, vol->yres, vol->zres, vol->name);
+  rt_ui_message(MSG_0, msgtxt);
+
+  vol->data = (unsigned char *)rt_getmem(vol->xres * vol->yres * vol->zres);
+
+  status=fread(vol->data, 1, (vol->xres * vol->yres * vol->zres), dfile);
+}
diff --git a/examples/parallel_for/tacheon/src/vol.h b/examples/parallel_for/tacheon/src/vol.h
new file mode 100644
index 0000000..66b93f6
--- /dev/null
+++ b/examples/parallel_for/tacheon/src/vol.h
@@ -0,0 +1,74 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/*
+    The original source for this example is
+    Copyright (c) 1994, 1995, 1996, 1997  John E. Stone
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+	 This product includes software developed by John E. Stone
+    4. The name of the author may not be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+*/
+
+/*
+ * vol.h - Volume rendering definitions etc.
+ *
+ *
+ *  $Id: vol.h,v 1.2 2007/02/22 17:54:17 dpoulsen Exp $
+ */
+
+
+void * newscalarvol(void * intex, vector min, vector max, 
+                    int xs, int ys, int zs, 
+                    char * fname, scalarvol * invol);
+
+void  LoadVol(scalarvol *);
+color scalar_volume_texture(vector *, texture *, ray *);
diff --git a/examples/parallel_for/tacheon/vc7.1/gui.ico b/examples/parallel_for/tacheon/vc7.1/gui.ico
new file mode 100644
index 0000000..d551aa3
Binary files /dev/null and b/examples/parallel_for/tacheon/vc7.1/gui.ico differ
diff --git a/examples/parallel_for/tacheon/vc7.1/gui.rc b/examples/parallel_for/tacheon/vc7.1/gui.rc
new file mode 100644
index 0000000..5a13d04
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/gui.rc
@@ -0,0 +1,90 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_GUI   ICON                    "gui.ico"
+IDI_SMALL               ICON                    "small.ico"
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "#include ""windows.h""\r\n"
+    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_APP_TITLE           "gui"
+    IDC_GUI   "GUI"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/examples/parallel_for/tacheon/vc7.1/resource.h b/examples/parallel_for/tacheon/vc7.1/resource.h
new file mode 100644
index 0000000..5f70f0c
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/resource.h
@@ -0,0 +1,8 @@
+#define IDC_MYICON                      2
+#define IDD_GUI    			102
+#define IDS_APP_TITLE                   103
+#define IDI_GUI           		107
+#define IDI_SMALL                       108
+#define IDC_GUI           		109
+#define IDR_MAINFRAME                   128
+#define IDC_STATIC                      -1
diff --git a/examples/parallel_for/tacheon/vc7.1/small.ico b/examples/parallel_for/tacheon/vc7.1/small.ico
new file mode 100644
index 0000000..d551aa3
Binary files /dev/null and b/examples/parallel_for/tacheon/vc7.1/small.ico differ
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.serial.vcproj b/examples/parallel_for/tacheon/vc7.1/tacheon.serial.vcproj
new file mode 100644
index 0000000..8a77053
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/tacheon.serial.vcproj
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="tacheon.serial"
+	ProjectGUID="{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}"
+	RootNamespace="tacheon.serial"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}"
+			Name="tacheon.common"/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.serial.cpp">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.sln b/examples/parallel_for/tacheon/vc7.1/tacheon.sln
new file mode 100644
index 0000000..c657856
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/tacheon.sln
@@ -0,0 +1,63 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.common", "tacheon.vcproj", "{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.serial", "tacheon.serial.vcproj", "{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.tbb1d", "tacheon.tbb1d.vcproj", "{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.tbb", "tacheon.tbb.vcproj", "{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		DD Debug = DD Debug
+		DD Release = DD Release
+		GDI Debug = GDI Debug
+		GDI Release = GDI Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.DD Debug.ActiveCfg = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.DD Debug.Build.0 = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.DD Release.ActiveCfg = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.DD Release.Build.0 = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.GDI Debug.ActiveCfg = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.GDI Debug.Build.0 = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.GDI Release.ActiveCfg = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}.GDI Release.Build.0 = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.DD Debug.ActiveCfg = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.DD Debug.Build.0 = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.DD Release.ActiveCfg = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.DD Release.Build.0 = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.GDI Debug.ActiveCfg = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.GDI Debug.Build.0 = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.GDI Release.ActiveCfg = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2048C25D}.GDI Release.Build.0 = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.DD Debug.ActiveCfg = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.DD Debug.Build.0 = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.DD Release.ActiveCfg = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.DD Release.Build.0 = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.GDI Debug.ActiveCfg = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.GDI Debug.Build.0 = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.GDI Release.ActiveCfg = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}.GDI Release.Build.0 = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.DD Debug.ActiveCfg = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.DD Debug.Build.0 = DD Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.DD Release.ActiveCfg = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.DD Release.Build.0 = DD Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.GDI Debug.ActiveCfg = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.GDI Debug.Build.0 = Debug|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.GDI Release.ActiveCfg = Release|Win32
+		{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}.GDI Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.suo b/examples/parallel_for/tacheon/vc7.1/tacheon.suo
new file mode 100644
index 0000000..ddc558f
Binary files /dev/null and b/examples/parallel_for/tacheon/vc7.1/tacheon.suo differ
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.tbb.vcproj b/examples/parallel_for/tacheon/vc7.1/tacheon.tbb.vcproj
new file mode 100644
index 0000000..90a9ddb
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/tacheon.tbb.vcproj
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="tacheon.tbb"
+	ProjectGUID="{1D7176EE-63B6-48F2-AB83-FFAD2448C25D}"
+	RootNamespace="tacheon.tbb"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib";"$(DXSDK_DIR)\lib\x86""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib";"$(DXSDK_DIR)\lib\x86""
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}"
+			Name="tacheon.common"/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.tbb.cpp">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.tbb1d.vcproj b/examples/parallel_for/tacheon/vc7.1/tacheon.tbb1d.vcproj
new file mode 100644
index 0000000..f2e1a5f
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/tacheon.tbb1d.vcproj
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="tacheon.tbb1d"
+	ProjectGUID="{1D7176EE-63B6-48F2-AB83-FFAD2348C25D}"
+	RootNamespace="tacheon.tbb1d"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib";"$(DXSDK_DIR)\lib\x86""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib";"$(DXSDK_DIR)\lib\x86""
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}"
+			Name="tacheon.common"/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.tbb1d.cpp">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.threads.vcproj b/examples/parallel_for/tacheon/vc7.1/tacheon.threads.vcproj
new file mode 100644
index 0000000..0b1ea69
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/tacheon.threads.vcproj
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="tacheon.threads"
+	ProjectGUID="{1D7176EE-63B6-48F2-AB83-FFAD2148C25D}"
+	RootNamespace="tacheon.threads"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				PreprocessorDefinitions="EMULATE_PTHREADS;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""
+				PreprocessorDefinitions="EMULATE_PTHREADS;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""
+				PreprocessorDefinitions="EMULATE_PTHREADS;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				PreprocessorDefinitions="EMULATE_PTHREADS;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)/$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+				SubSystem="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}"
+			Name="tacheon.common"/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.threads.cpp">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc7.1/tacheon.vcproj b/examples/parallel_for/tacheon/vc7.1/tacheon.vcproj
new file mode 100644
index 0000000..7c31310
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc7.1/tacheon.vcproj
@@ -0,0 +1,494 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="tacheon.common"
+	ProjectGUID="{1D7176EE-63B6-48F2-AB83-FFAD2149C25E}"
+	RootNamespace="tacheon.common"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				AdditionalOptions="/LTCG"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				AdditionalOptions="/LTCG"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(DXSDK_DIR)\include"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				AdditionalOptions="/LTCG"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="$(DXSDK_DIR)\include"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="TRUE"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				AdditionalOptions="/LTCG"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\src\api.cpp">
+			</File>
+			<File
+				RelativePath="..\src\apigeom.cpp">
+			</File>
+			<File
+				RelativePath="..\src\apitrigeom.cpp">
+			</File>
+			<File
+				RelativePath="..\src\bndbox.cpp">
+			</File>
+			<File
+				RelativePath="..\src\box.cpp">
+			</File>
+			<File
+				RelativePath="..\src\camera.cpp">
+			</File>
+			<File
+				RelativePath="..\src\coordsys.cpp">
+			</File>
+			<File
+				RelativePath="..\src\cylinder.cpp">
+			</File>
+			<File
+				RelativePath="..\src\extvol.cpp">
+			</File>
+			<File
+				RelativePath="..\src\getargs.cpp">
+			</File>
+			<File
+				RelativePath="..\src\global.cpp">
+			</File>
+			<File
+				RelativePath="..\src\grid.cpp">
+			</File>
+			<File
+				RelativePath="..\src\imageio.cpp">
+			</File>
+			<File
+				RelativePath="..\src\imap.cpp">
+			</File>
+			<File
+				RelativePath="..\src\intersect.cpp">
+			</File>
+			<File
+				RelativePath="..\src\jpeg.cpp">
+			</File>
+			<File
+				RelativePath="..\src\light.cpp">
+			</File>
+			<File
+				RelativePath="..\src\objbound.cpp">
+			</File>
+			<File
+				RelativePath="..\src\parse.cpp">
+			</File>
+			<File
+				RelativePath="..\src\plane.cpp">
+			</File>
+			<File
+				RelativePath="..\src\ppm.cpp">
+			</File>
+			<File
+				RelativePath="..\src\pthread.cpp">
+			</File>
+			<File
+				RelativePath="..\src\quadric.cpp">
+			</File>
+			<File
+				RelativePath="..\src\render.cpp">
+			</File>
+			<File
+				RelativePath="..\src\ring.cpp">
+			</File>
+			<File
+				RelativePath="..\src\shade.cpp">
+			</File>
+			<File
+				RelativePath="..\src\sphere.cpp">
+			</File>
+			<File
+				RelativePath="..\src\texture.cpp">
+			</File>
+			<File
+				RelativePath="..\src\tgafile.cpp">
+			</File>
+			<File
+				RelativePath="..\src\trace_rest.cpp">
+			</File>
+			<File
+				RelativePath="..\src\triangle.cpp">
+			</File>
+			<File
+				RelativePath="..\src\ui.cpp">
+			</File>
+			<File
+				RelativePath="..\src\util.cpp">
+			</File>
+			<File
+				RelativePath="..\src\vector.cpp">
+			</File>
+			<File
+				RelativePath="..\src\video.cpp">
+			</File>
+			<File
+				RelativePath="..\src\vol.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File
+				RelativePath="..\src\api.h">
+			</File>
+			<File
+				RelativePath="..\src\apitrigeom.h">
+			</File>
+			<File
+				RelativePath="..\src\bndbox.h">
+			</File>
+			<File
+				RelativePath="..\src\box.h">
+			</File>
+			<File
+				RelativePath="..\src\camera.h">
+			</File>
+			<File
+				RelativePath="..\src\coordsys.h">
+			</File>
+			<File
+				RelativePath="..\src\cylinder.h">
+			</File>
+			<File
+				RelativePath="..\src\extvol.h">
+			</File>
+			<File
+				RelativePath="..\src\getargs.h">
+			</File>
+			<File
+				RelativePath="..\src\global.h">
+			</File>
+			<File
+				RelativePath="..\src\grid.h">
+			</File>
+			<File
+				RelativePath="..\src\imageio.h">
+			</File>
+			<File
+				RelativePath="..\src\imap.h">
+			</File>
+			<File
+				RelativePath="..\src\intersect.h">
+			</File>
+			<File
+				RelativePath="..\src\jpeg.h">
+			</File>
+			<File
+				RelativePath="..\src\light.h">
+			</File>
+			<File
+				RelativePath="..\src\machine.h">
+			</File>
+			<File
+				RelativePath="..\src\macros.h">
+			</File>
+			<File
+				RelativePath="..\src\objbound.h">
+			</File>
+			<File
+				RelativePath="..\src\parse.h">
+			</File>
+			<File
+				RelativePath="..\src\plane.h">
+			</File>
+			<File
+				RelativePath="..\src\ppm.h">
+			</File>
+			<File
+				RelativePath="..\src\pthread.h">
+			</File>
+			<File
+				RelativePath="..\src\quadric.h">
+			</File>
+			<File
+				RelativePath="..\src\render.h">
+			</File>
+			<File
+				RelativePath=".\resource.h">
+			</File>
+			<File
+				RelativePath="..\src\ring.h">
+			</File>
+			<File
+				RelativePath="..\src\shade.h">
+			</File>
+			<File
+				RelativePath="..\src\sphere.h">
+			</File>
+			<File
+				RelativePath="..\src\texture.h">
+			</File>
+			<File
+				RelativePath="..\src\tgafile.h">
+			</File>
+			<File
+				RelativePath="..\src\trace.h">
+			</File>
+			<File
+				RelativePath="..\src\triangle.h">
+			</File>
+			<File
+				RelativePath="..\src\types.h">
+			</File>
+			<File
+				RelativePath="..\src\ui.h">
+			</File>
+			<File
+				RelativePath="..\src\util.h">
+			</File>
+			<File
+				RelativePath="..\src\vector.h">
+			</File>
+			<File
+				RelativePath="..\src\video.h">
+			</File>
+			<File
+				RelativePath="..\src\vol.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+			<File
+				RelativePath=".\gui.ico">
+			</File>
+			<File
+				RelativePath=".\gui.rc">
+			</File>
+			<File
+				RelativePath=".\small.ico">
+			</File>
+		</Filter>
+		<Filter
+			Name="Video Layer"
+			Filter="">
+			<File
+				RelativePath="..\..\..\common\gui\ddvideo.cpp">
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\gdivideo.cpp">
+				<FileConfiguration
+					Name="DD Release|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|Win32"
+					ExcludedFromBuild="TRUE">
+					<Tool
+						Name="VCCLCompilerTool"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\video.h">
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\winvideo.h">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.serial.vcproj b/examples/parallel_for/tacheon/vc8/tacheon.serial.vcproj
new file mode 100644
index 0000000..7934c86
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc8/tacheon.serial.vcproj
@@ -0,0 +1,691 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="tacheon.serial"
+	ProjectGUID="{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}"
+	RootNamespace="tacheon.serial"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x64"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x64"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{924517DF-2B6A-47D5-8A11-CC247CC4D810}"
+			CopyLocal="false"
+			CopyLocalDependencies="false"
+			CopyLocalSatelliteAssemblies="false"
+			RelativePathToProject=".\tacheon.vcproj"
+		/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.serial.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.sln b/examples/parallel_for/tacheon/vc8/tacheon.sln
new file mode 100644
index 0000000..48ab98d
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc8/tacheon.sln
@@ -0,0 +1,92 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.common", "tacheon.vcproj", "{924517DF-2B6A-47D5-8A11-CC247CC4D810}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.serial", "tacheon.serial.vcproj", "{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.tbb1d", "tacheon.tbb1d.vcproj", "{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacheon.tbb", "tacheon.tbb.vcproj", "{6E9B1702-78E0-4D64-B771-8B274D963B58}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		DD Debug|Win32 = DD Debug|Win32
+		DD Debug|x64 = DD Debug|x64
+		DD Release|Win32 = DD Release|Win32
+		DD Release|x64 = DD Release|x64
+		GDI Debug|Win32 = GDI Debug|Win32
+		GDI Debug|x64 = GDI Debug|x64
+		GDI Release|Win32 = GDI Release|Win32
+		GDI Release|x64 = GDI Release|x64
+		Description = Tacheon ray-tracer example
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|Win32.ActiveCfg = DD Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|Win32.Build.0 = DD Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|x64.ActiveCfg = DD Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|x64.Build.0 = DD Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|Win32.ActiveCfg = DD Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|Win32.Build.0 = DD Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|x64.ActiveCfg = DD Release|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|x64.Build.0 = DD Release|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.ActiveCfg = Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.Build.0 = Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.ActiveCfg = Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.Build.0 = Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Release|Win32.ActiveCfg = Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Release|Win32.Build.0 = Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Release|x64.ActiveCfg = Release|x64
+		{924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Release|x64.Build.0 = Release|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|Win32.ActiveCfg = DD Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|Win32.Build.0 = DD Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|x64.ActiveCfg = DD Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|x64.Build.0 = DD Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|Win32.ActiveCfg = DD Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|Win32.Build.0 = DD Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|x64.ActiveCfg = DD Release|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|x64.Build.0 = DD Release|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Release|Win32.ActiveCfg = Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Release|Win32.Build.0 = Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Release|x64.ActiveCfg = Release|x64
+		{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Release|x64.Build.0 = Release|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|Win32.ActiveCfg = DD Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|Win32.Build.0 = DD Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|x64.ActiveCfg = DD Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|x64.Build.0 = DD Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|Win32.ActiveCfg = DD Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|Win32.Build.0 = DD Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|x64.ActiveCfg = DD Release|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|x64.Build.0 = DD Release|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Release|Win32.ActiveCfg = Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Release|Win32.Build.0 = Release|Win32
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Release|x64.ActiveCfg = Release|x64
+		{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Release|x64.Build.0 = Release|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|Win32.ActiveCfg = DD Debug|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|Win32.Build.0 = DD Debug|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|x64.ActiveCfg = DD Debug|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|x64.Build.0 = DD Debug|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|Win32.ActiveCfg = DD Release|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|Win32.Build.0 = DD Release|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|x64.ActiveCfg = DD Release|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|x64.Build.0 = DD Release|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.ActiveCfg = Debug|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.Build.0 = Debug|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.ActiveCfg = Debug|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.Build.0 = Debug|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Release|Win32.ActiveCfg = Release|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Release|Win32.Build.0 = Release|Win32
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Release|x64.ActiveCfg = Release|x64
+		{6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.suo b/examples/parallel_for/tacheon/vc8/tacheon.suo
new file mode 100644
index 0000000..2171ff9
Binary files /dev/null and b/examples/parallel_for/tacheon/vc8/tacheon.suo differ
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.tbb.vcproj b/examples/parallel_for/tacheon/vc8/tacheon.tbb.vcproj
new file mode 100644
index 0000000..5d8c82a
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc8/tacheon.tbb.vcproj
@@ -0,0 +1,727 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="tacheon.tbb"
+	ProjectGUID="{6E9B1702-78E0-4D64-B771-8B274D963B58}"
+	RootNamespace="tacheon.tbb"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib";"$(DXSDK_DIR)\lib\x86""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib";"$(DXSDK_DIR)\lib\x64""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib";"$(DXSDK_DIR)\lib\x86""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib";"$(DXSDK_DIR)\lib\x64""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{924517DF-2B6A-47D5-8A11-CC247CC4D810}"
+			CopyLocal="false"
+			CopyLocalDependencies="false"
+			CopyLocalSatelliteAssemblies="false"
+			RelativePathToProject=".\tacheon.vcproj"
+		/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.tbb.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.tbb1d.vcproj b/examples/parallel_for/tacheon/vc8/tacheon.tbb1d.vcproj
new file mode 100644
index 0000000..6351f0b
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc8/tacheon.tbb1d.vcproj
@@ -0,0 +1,727 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="tacheon.tbb1d"
+	ProjectGUID="{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}"
+	RootNamespace="tacheon.tbb1d"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib";"$(DXSDK_DIR)\lib\x86""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib";"$(DXSDK_DIR)\lib\x64""
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\ia32\vc8\lib";"$(DXSDK_DIR)\lib\x86""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""$(TBB20_INSTALL_DIR)\em64t\vc8\lib";"$(DXSDK_DIR)\lib\x64""
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{924517DF-2B6A-47D5-8A11-CC247CC4D810}"
+			CopyLocal="false"
+			CopyLocalDependencies="false"
+			CopyLocalSatelliteAssemblies="false"
+			RelativePathToProject=".\tacheon.vcproj"
+		/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.tbb1d.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.threads.vcproj b/examples/parallel_for/tacheon/vc8/tacheon.threads.vcproj
new file mode 100644
index 0000000..d92a06e
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc8/tacheon.threads.vcproj
@@ -0,0 +1,691 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="tacheon.threads"
+	ProjectGUID="{924517DF-2B6A-47D5-8A11-CC247CC4D8E9}"
+	RootNamespace="tacheon.threads"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;NDEBUG"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x64"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN32;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x86"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="EMULATE_PTHREADS;_CRT_SECURE_NO_DEPRECATE;WIN64;_WINDOWS;_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				ProgramDataBaseFileName="$(IntDir)\$(InputName).pdb"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(DXSDK_DIR)\lib\x64"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				LinkTimeCodeGeneration="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{924517DF-2B6A-47D5-8A11-CC247CC4D810}"
+			CopyLocal="false"
+			CopyLocalDependencies="false"
+			CopyLocalSatelliteAssemblies="false"
+			RelativePathToProject=".\tacheon.vcproj"
+		/>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\src\trace.threads.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/vc8/tacheon.vcproj b/examples/parallel_for/tacheon/vc8/tacheon.vcproj
new file mode 100644
index 0000000..ee0d20e
--- /dev/null
+++ b/examples/parallel_for/tacheon/vc8/tacheon.vcproj
@@ -0,0 +1,1042 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="tacheon.common"
+	ProjectGUID="{924517DF-2B6A-47D5-8A11-CC247CC4D810}"
+	RootNamespace="tacheon.common"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN64;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN64;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN64;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				EnableEnhancedInstructionSet="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="DD Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="..\..\..\common\gui\dxcheck.bat"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				WholeProgramOptimization="true"
+				PreprocessorDefinitions="DEFAULT_MODELFILE=balls.dat;EMULATE_PTHREADS;WIN64;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="2"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\src\api.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\apigeom.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\apitrigeom.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\bndbox.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\box.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\camera.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\coordsys.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\cylinder.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\extvol.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\getargs.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\global.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\grid.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\imageio.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\imap.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\intersect.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\jpeg.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\light.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\objbound.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\parse.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\plane.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\ppm.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\pthread.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\quadric.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\render.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\ring.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\shade.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\sphere.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\texture.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\tgafile.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\trace_rest.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\triangle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\ui.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\util.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\vector.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\video.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\src\vol.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\src\api.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\apitrigeom.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\bndbox.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\box.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\camera.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\coordsys.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\cylinder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\extvol.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\getargs.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\global.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\grid.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\imageio.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\imap.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\intersect.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\jpeg.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\light.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\machine.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\macros.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\objbound.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\parse.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\plane.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\ppm.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\pthread.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\quadric.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\render.h"
+				>
+			</File>
+			<File
+				RelativePath="..\vc7.1\resource.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\ring.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\shade.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\sphere.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\texture.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\tgafile.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\trace.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\triangle.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\types.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\ui.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\util.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\vector.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\video.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\vol.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+			<File
+				RelativePath="..\vc7.1\gui.ico"
+				>
+			</File>
+			<File
+				RelativePath="..\vc7.1\gui.rc"
+				>
+			</File>
+			<File
+				RelativePath="..\vc7.1\small.ico"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Video Layer"
+			>
+			<File
+				RelativePath="..\..\..\common\gui\ddvideo.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories="$(DXSDK_DIR)\include"
+						PreprocessorDefinitions="_WINDOWS;NDEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Release|x64"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories="$(DXSDK_DIR)\include"
+						PreprocessorDefinitions="_WINDOWS;NDEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories="$(DXSDK_DIR)\include"
+						PreprocessorDefinitions="_WINDOWS;_DEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|x64"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories="$(DXSDK_DIR)\include"
+						PreprocessorDefinitions="_WINDOWS;_DEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\gdivideo.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						PreprocessorDefinitions="_WINDOWS;_DEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|x64"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						PreprocessorDefinitions="_WINDOWS;_DEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						PreprocessorDefinitions="_WINDOWS;NDEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|x64"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						PreprocessorDefinitions="_WINDOWS;NDEBUG;$(NOINHERIT)"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Release|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="DD Debug|x64"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\video.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\gui\winvideo.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_for/tacheon/xcode/English.lproj/InfoPlist.strings b/examples/parallel_for/tacheon/xcode/English.lproj/InfoPlist.strings
new file mode 100644
index 0000000..c0fdfdc
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/English.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Localized versions of Info.plist keys */
+
+NSHumanReadableCopyright = "(C) Intel, 2007";
diff --git a/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/classes.nib b/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/classes.nib
new file mode 100644
index 0000000..ea58db1
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/classes.nib
@@ -0,0 +1,4 @@
+{
+IBClasses = ();
+IBVersion = 1;
+}
diff --git a/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/info.nib b/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/info.nib
new file mode 100644
index 0000000..97a70e1
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/info.nib
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBDocumentLocation</key>
+	<string>662 774 356 240 0 0 1680 1028 </string>
+	<key>IBEditorPositions</key>
+	<dict>
+		<key>29</key>
+		<string>863 618 271 44 0 0 1680 1028 </string>
+	</dict>
+	<key>IBFramework Version</key>
+	<string>446.1</string>
+	<key>IBOldestOS</key>
+	<integer>3</integer>
+	<key>IBOpenObjects</key>
+	<array>
+		<integer>29</integer>
+		<integer>166</integer>
+	</array>
+	<key>IBSystem Version</key>
+	<string>8J2135a</string>
+	<key>targetFramework</key>
+	<string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/objects.xib b/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/objects.xib
new file mode 100644
index 0000000..6cf03e0
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/English.lproj/main.nib/objects.xib
@@ -0,0 +1,183 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+  <string name="targetFramework">IBCarbonFramework</string>
+  <object name="rootObject" class="NSCustomObject" id="1">
+    <string name="customClass">NSApplication</string>
+  </object>
+  <array count="22" name="allObjects">
+    <object class="IBCarbonMenu" id="29">
+      <string name="title">main</string>
+      <array count="3" name="items">
+        <object class="IBCarbonMenuItem" id="210">
+          <boolean name="updateSingleItem">TRUE</boolean>
+          <string name="title">Tacheon</string>
+          <object name="submenu" class="IBCarbonMenu" id="211">
+            <string name="title">Seismic Simulation</string>
+            <array count="7" name="items">
+              <object class="IBCarbonMenuItem" id="215">
+                <boolean name="checked">TRUE</boolean>
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Parallel</string>
+                <ostype name="command">para</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="214">
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Serial</string>
+                <ostype name="command">seri</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="216">
+                <boolean name="separator">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="217">
+                <boolean name="checked">TRUE</boolean>
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Enable GUI</string>
+                <ostype name="command">egui</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="218">
+                <boolean name="dynamic">TRUE</boolean>
+                <boolean name="autoDisable">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">Disable GUI</string>
+                <ostype name="command">dgui</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="213">
+                <boolean name="separator">TRUE</boolean>
+                <boolean name="updateSingleItem">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="212">
+                <boolean name="updateSingleItem">TRUE</boolean>
+                <string name="title">About Tacheon</string>
+                <int name="keyEquivalentModifier">0</int>
+                <ostype name="command">abou</ostype>
+              </object>
+            </array>
+            <string name="name">_NSAppleMenu</string>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="127">
+          <string name="title">File</string>
+          <object name="submenu" class="IBCarbonMenu" id="131">
+            <string name="title">File</string>
+            <array count="1" name="items">
+              <object class="IBCarbonMenuItem" id="200">
+                <string name="title">Close</string>
+                <string name="keyEquivalent">w</string>
+                <ostype name="command">clos</ostype>
+              </object>
+            </array>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="192">
+          <string name="title">Window</string>
+          <object name="submenu" class="IBCarbonMenu" id="195">
+            <string name="title">Window</string>
+            <array count="5" name="items">
+              <object class="IBCarbonMenuItem" id="190">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Minimize</string>
+                <string name="keyEquivalent">m</string>
+                <ostype name="command">mini</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="197">
+                <string name="title">Zoom</string>
+                <ostype name="command">zoom</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="194">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="196">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Bring All to Front</string>
+                <ostype name="command">bfrt</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="193">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Arrange in Front</string>
+                <int name="keyEquivalentModifier">1572864</int>
+                <ostype name="command">frnt</ostype>
+              </object>
+            </array>
+            <string name="name">_NSWindowsMenu</string>
+          </object>
+        </object>
+      </array>
+      <string name="name">_NSMainMenu</string>
+    </object>
+    <reference idRef="127"/>
+    <reference idRef="131"/>
+    <object class="IBCarbonWindow" id="166">
+      <string name="windowRect">338 353 698 833 </string>
+      <string name="title">Tacheon</string>
+      <object name="rootControl" class="IBCarbonRootControl" id="167">
+        <string name="bounds">0 0 360 480 </string>
+        <string name="viewFrame">0 0 480 360 </string>
+      </object>
+      <boolean name="receiveUpdates">FALSE</boolean>
+      <boolean name="compositing">TRUE</boolean>
+      <int name="themeBrush">-1</int>
+      <boolean name="asyncDrag">TRUE</boolean>
+      <boolean name="doesNotCycle">TRUE</boolean>
+      <int name="WindowMinWidth">320</int>
+      <int name="WindowMinHeight">200</int>
+    </object>
+    <reference idRef="167"/>
+    <reference idRef="190"/>
+    <reference idRef="192"/>
+    <reference idRef="193"/>
+    <reference idRef="194"/>
+    <reference idRef="195"/>
+    <reference idRef="196"/>
+    <reference idRef="197"/>
+    <reference idRef="200"/>
+    <reference idRef="210"/>
+    <reference idRef="211"/>
+    <reference idRef="212"/>
+    <reference idRef="213"/>
+    <reference idRef="214"/>
+    <reference idRef="215"/>
+    <reference idRef="216"/>
+    <reference idRef="217"/>
+    <reference idRef="218"/>
+  </array>
+  <array count="22" name="allParents">
+    <reference idRef="1"/>
+    <reference idRef="29"/>
+    <reference idRef="127"/>
+    <reference idRef="1"/>
+    <reference idRef="166"/>
+    <reference idRef="195"/>
+    <reference idRef="29"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="192"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="131"/>
+    <reference idRef="29"/>
+    <reference idRef="210"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+    <reference idRef="211"/>
+  </array>
+  <dictionary count="3" name="nameTable">
+    <string>Files Owner</string>
+    <reference idRef="1"/>
+    <string>MainWindow</string>
+    <reference idRef="166"/>
+    <string>MenuBar</string>
+    <reference idRef="29"/>
+  </dictionary>
+  <unsigned_int name="nextObjectID">219</unsigned_int>
+</object>
diff --git a/examples/parallel_for/tacheon/xcode/Info.plist b/examples/parallel_for/tacheon/xcode/Info.plist
new file mode 100644
index 0000000..147266c
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>com.intel.tbb.tacheon</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+</dict>
+</plist>
diff --git a/examples/parallel_for/tacheon/xcode/tacheon.pch b/examples/parallel_for/tacheon/xcode/tacheon.pch
new file mode 100644
index 0000000..a620cdb
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/tacheon.pch
@@ -0,0 +1,5 @@
+//
+// Prefix header for all source files of the 'tacheon' target in the 'tacheon' project.
+//
+
+#include <Carbon/Carbon.h>
diff --git a/examples/parallel_for/tacheon/xcode/tacheon.xcodeproj/project.pbxproj b/examples/parallel_for/tacheon/xcode/tacheon.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..fcb1c39
--- /dev/null
+++ b/examples/parallel_for/tacheon/xcode/tacheon.xcodeproj/project.pbxproj
@@ -0,0 +1,930 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+		8D0C4E8E0486CD37000505A6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+		8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+		A117DC7B0B8DC08100F62CED /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC7A0B8DC08100F62CED /* AGL.framework */; };
+		A117DC800B8DC09300F62CED /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC7F0B8DC09300F62CED /* OpenGL.framework */; };
+		A117DC850B8DC0EA00F62CED /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC830B8DC0DE00F62CED /* libtbb.dylib */; };
+		A117DC950B8DC5FB00F62CED /* libtbb.dylib in Copy TBB lib */ = {isa = PBXBuildFile; fileRef = A117DC830B8DC0DE00F62CED /* libtbb.dylib */; };
+		A1F58DCD0B8DF19700073279 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+		A1F58DCE0B8DF19800073279 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+		A1F58E8C0B8DF25800073279 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC7F0B8DC09300F62CED /* OpenGL.framework */; };
+		A1F58E8D0B8DF25900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC830B8DC0DE00F62CED /* libtbb.dylib */; };
+		A1F58E8E0B8DF25A00073279 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+		A1F58E8F0B8DF25A00073279 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC7A0B8DC08100F62CED /* AGL.framework */; };
+		A1F58E900B8DF25F00073279 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC7A0B8DC08100F62CED /* AGL.framework */; };
+		A1F58E910B8DF26000073279 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+		A1F58E920B8DF26100073279 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A117DC7F0B8DC09300F62CED /* OpenGL.framework */; };
+		A1F58EA30B8DF32900073279 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D0C4E960486CD37000505A6 /* Info.plist */; };
+		A1F58EA40B8DF32A00073279 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D0C4E960486CD37000505A6 /* Info.plist */; };
+		A1F58EA60B8DF32B00073279 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D0C4E960486CD37000505A6 /* Info.plist */; };
+		A1F58EA80B8DF33100073279 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+		A1F58EAA0B8DF33200073279 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+		A1F58EE80B8DF4F900073279 /* libtbb.dylib in Copy TBB lib */ = {isa = PBXBuildFile; fileRef = A117DC830B8DC0DE00F62CED /* libtbb.dylib */; };
+		A1F58F960B8DF63C00073279 /* trace.tbb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1A8FB5D0B8CBB8D001C55B1 /* trace.tbb.cpp */; };
+		A1F5902C0B8DF6A700073279 /* trace.tbb1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F58D8B0B8DEFD900073279 /* trace.tbb1d.cpp */; };
+		A1F590300B8DF74600073279 /* trace.serial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F58D8C0B8DEFE900073279 /* trace.serial.cpp */; };
+		A1F590C30B8DF81800073279 /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5909E0B8DF81800073279 /* api.cpp */; };
+		A1F590C40B8DF81800073279 /* apigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5909F0B8DF81800073279 /* apigeom.cpp */; };
+		A1F590C50B8DF81800073279 /* apitrigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A00B8DF81800073279 /* apitrigeom.cpp */; };
+		A1F590C60B8DF81800073279 /* bndbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A10B8DF81800073279 /* bndbox.cpp */; };
+		A1F590C70B8DF81800073279 /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A20B8DF81800073279 /* box.cpp */; };
+		A1F590C80B8DF81800073279 /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A30B8DF81800073279 /* camera.cpp */; };
+		A1F590C90B8DF81800073279 /* coordsys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A40B8DF81800073279 /* coordsys.cpp */; };
+		A1F590CA0B8DF81800073279 /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A50B8DF81800073279 /* cylinder.cpp */; };
+		A1F590CB0B8DF81800073279 /* extvol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A60B8DF81800073279 /* extvol.cpp */; };
+		A1F590CC0B8DF81800073279 /* getargs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A70B8DF81800073279 /* getargs.cpp */; };
+		A1F590CD0B8DF81800073279 /* global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A80B8DF81800073279 /* global.cpp */; };
+		A1F590CE0B8DF81800073279 /* grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A90B8DF81800073279 /* grid.cpp */; };
+		A1F590CF0B8DF81800073279 /* imageio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AA0B8DF81800073279 /* imageio.cpp */; };
+		A1F590D00B8DF81800073279 /* imap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AB0B8DF81800073279 /* imap.cpp */; };
+		A1F590D10B8DF81800073279 /* intersect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AC0B8DF81800073279 /* intersect.cpp */; };
+		A1F590D20B8DF81800073279 /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AD0B8DF81800073279 /* jpeg.cpp */; };
+		A1F590D30B8DF81800073279 /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AE0B8DF81800073279 /* light.cpp */; };
+		A1F590D40B8DF81800073279 /* objbound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AF0B8DF81800073279 /* objbound.cpp */; };
+		A1F590D50B8DF81800073279 /* parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B00B8DF81800073279 /* parse.cpp */; };
+		A1F590D60B8DF81800073279 /* plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B10B8DF81800073279 /* plane.cpp */; };
+		A1F590D70B8DF81800073279 /* ppm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B20B8DF81800073279 /* ppm.cpp */; };
+		A1F590D80B8DF81800073279 /* quadric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B30B8DF81800073279 /* quadric.cpp */; };
+		A1F590D90B8DF81800073279 /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B40B8DF81800073279 /* render.cpp */; };
+		A1F590DA0B8DF81800073279 /* ring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B50B8DF81800073279 /* ring.cpp */; };
+		A1F590DB0B8DF81800073279 /* shade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B60B8DF81800073279 /* shade.cpp */; };
+		A1F590DC0B8DF81800073279 /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B70B8DF81800073279 /* sphere.cpp */; };
+		A1F590DD0B8DF81800073279 /* texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B80B8DF81800073279 /* texture.cpp */; };
+		A1F590DE0B8DF81800073279 /* tgafile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B90B8DF81800073279 /* tgafile.cpp */; };
+		A1F590DF0B8DF81800073279 /* trace_rest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BA0B8DF81800073279 /* trace_rest.cpp */; };
+		A1F590E20B8DF81800073279 /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BD0B8DF81800073279 /* triangle.cpp */; };
+		A1F590E30B8DF81800073279 /* ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BE0B8DF81800073279 /* ui.cpp */; };
+		A1F590E40B8DF81800073279 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BF0B8DF81800073279 /* util.cpp */; };
+		A1F590E50B8DF81800073279 /* vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C00B8DF81800073279 /* vector.cpp */; };
+		A1F590E60B8DF81800073279 /* video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C10B8DF81800073279 /* video.cpp */; };
+		A1F590E70B8DF81800073279 /* vol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C20B8DF81800073279 /* vol.cpp */; };
+		A1F5910D0B8DF81800073279 /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5909E0B8DF81800073279 /* api.cpp */; };
+		A1F5910E0B8DF81800073279 /* apigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5909F0B8DF81800073279 /* apigeom.cpp */; };
+		A1F5910F0B8DF81800073279 /* apitrigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A00B8DF81800073279 /* apitrigeom.cpp */; };
+		A1F591100B8DF81800073279 /* bndbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A10B8DF81800073279 /* bndbox.cpp */; };
+		A1F591110B8DF81800073279 /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A20B8DF81800073279 /* box.cpp */; };
+		A1F591120B8DF81800073279 /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A30B8DF81800073279 /* camera.cpp */; };
+		A1F591130B8DF81800073279 /* coordsys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A40B8DF81800073279 /* coordsys.cpp */; };
+		A1F591140B8DF81800073279 /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A50B8DF81800073279 /* cylinder.cpp */; };
+		A1F591150B8DF81800073279 /* extvol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A60B8DF81800073279 /* extvol.cpp */; };
+		A1F591160B8DF81800073279 /* getargs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A70B8DF81800073279 /* getargs.cpp */; };
+		A1F591170B8DF81800073279 /* global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A80B8DF81800073279 /* global.cpp */; };
+		A1F591180B8DF81800073279 /* grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A90B8DF81800073279 /* grid.cpp */; };
+		A1F591190B8DF81800073279 /* imageio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AA0B8DF81800073279 /* imageio.cpp */; };
+		A1F5911A0B8DF81800073279 /* imap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AB0B8DF81800073279 /* imap.cpp */; };
+		A1F5911B0B8DF81800073279 /* intersect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AC0B8DF81800073279 /* intersect.cpp */; };
+		A1F5911C0B8DF81800073279 /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AD0B8DF81800073279 /* jpeg.cpp */; };
+		A1F5911D0B8DF81800073279 /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AE0B8DF81800073279 /* light.cpp */; };
+		A1F5911E0B8DF81800073279 /* objbound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AF0B8DF81800073279 /* objbound.cpp */; };
+		A1F5911F0B8DF81800073279 /* parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B00B8DF81800073279 /* parse.cpp */; };
+		A1F591200B8DF81800073279 /* plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B10B8DF81800073279 /* plane.cpp */; };
+		A1F591210B8DF81800073279 /* ppm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B20B8DF81800073279 /* ppm.cpp */; };
+		A1F591220B8DF81800073279 /* quadric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B30B8DF81800073279 /* quadric.cpp */; };
+		A1F591230B8DF81800073279 /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B40B8DF81800073279 /* render.cpp */; };
+		A1F591240B8DF81800073279 /* ring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B50B8DF81800073279 /* ring.cpp */; };
+		A1F591250B8DF81800073279 /* shade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B60B8DF81800073279 /* shade.cpp */; };
+		A1F591260B8DF81800073279 /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B70B8DF81800073279 /* sphere.cpp */; };
+		A1F591270B8DF81800073279 /* texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B80B8DF81800073279 /* texture.cpp */; };
+		A1F591280B8DF81800073279 /* tgafile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B90B8DF81800073279 /* tgafile.cpp */; };
+		A1F591290B8DF81800073279 /* trace_rest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BA0B8DF81800073279 /* trace_rest.cpp */; };
+		A1F5912C0B8DF81800073279 /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BD0B8DF81800073279 /* triangle.cpp */; };
+		A1F5912D0B8DF81800073279 /* ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BE0B8DF81800073279 /* ui.cpp */; };
+		A1F5912E0B8DF81800073279 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BF0B8DF81800073279 /* util.cpp */; };
+		A1F5912F0B8DF81800073279 /* vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C00B8DF81800073279 /* vector.cpp */; };
+		A1F591300B8DF81800073279 /* video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C10B8DF81800073279 /* video.cpp */; };
+		A1F591310B8DF81800073279 /* vol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C20B8DF81800073279 /* vol.cpp */; };
+		A1F591320B8DF81800073279 /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5909E0B8DF81800073279 /* api.cpp */; };
+		A1F591330B8DF81800073279 /* apigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5909F0B8DF81800073279 /* apigeom.cpp */; };
+		A1F591340B8DF81800073279 /* apitrigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A00B8DF81800073279 /* apitrigeom.cpp */; };
+		A1F591350B8DF81800073279 /* bndbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A10B8DF81800073279 /* bndbox.cpp */; };
+		A1F591360B8DF81800073279 /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A20B8DF81800073279 /* box.cpp */; };
+		A1F591370B8DF81800073279 /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A30B8DF81800073279 /* camera.cpp */; };
+		A1F591380B8DF81800073279 /* coordsys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A40B8DF81800073279 /* coordsys.cpp */; };
+		A1F591390B8DF81800073279 /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A50B8DF81800073279 /* cylinder.cpp */; };
+		A1F5913A0B8DF81800073279 /* extvol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A60B8DF81800073279 /* extvol.cpp */; };
+		A1F5913B0B8DF81800073279 /* getargs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A70B8DF81800073279 /* getargs.cpp */; };
+		A1F5913C0B8DF81800073279 /* global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A80B8DF81800073279 /* global.cpp */; };
+		A1F5913D0B8DF81800073279 /* grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590A90B8DF81800073279 /* grid.cpp */; };
+		A1F5913E0B8DF81800073279 /* imageio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AA0B8DF81800073279 /* imageio.cpp */; };
+		A1F5913F0B8DF81800073279 /* imap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AB0B8DF81800073279 /* imap.cpp */; };
+		A1F591400B8DF81800073279 /* intersect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AC0B8DF81800073279 /* intersect.cpp */; };
+		A1F591410B8DF81800073279 /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AD0B8DF81800073279 /* jpeg.cpp */; };
+		A1F591420B8DF81800073279 /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AE0B8DF81800073279 /* light.cpp */; };
+		A1F591430B8DF81800073279 /* objbound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590AF0B8DF81800073279 /* objbound.cpp */; };
+		A1F591440B8DF81800073279 /* parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B00B8DF81800073279 /* parse.cpp */; };
+		A1F591450B8DF81800073279 /* plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B10B8DF81800073279 /* plane.cpp */; };
+		A1F591460B8DF81800073279 /* ppm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B20B8DF81800073279 /* ppm.cpp */; };
+		A1F591470B8DF81800073279 /* quadric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B30B8DF81800073279 /* quadric.cpp */; };
+		A1F591480B8DF81800073279 /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B40B8DF81800073279 /* render.cpp */; };
+		A1F591490B8DF81800073279 /* ring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B50B8DF81800073279 /* ring.cpp */; };
+		A1F5914A0B8DF81800073279 /* shade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B60B8DF81800073279 /* shade.cpp */; };
+		A1F5914B0B8DF81800073279 /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B70B8DF81800073279 /* sphere.cpp */; };
+		A1F5914C0B8DF81800073279 /* texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B80B8DF81800073279 /* texture.cpp */; };
+		A1F5914D0B8DF81800073279 /* tgafile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590B90B8DF81800073279 /* tgafile.cpp */; };
+		A1F5914E0B8DF81800073279 /* trace_rest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BA0B8DF81800073279 /* trace_rest.cpp */; };
+		A1F591510B8DF81800073279 /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BD0B8DF81800073279 /* triangle.cpp */; };
+		A1F591520B8DF81800073279 /* ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BE0B8DF81800073279 /* ui.cpp */; };
+		A1F591530B8DF81800073279 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590BF0B8DF81800073279 /* util.cpp */; };
+		A1F591540B8DF81800073279 /* vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C00B8DF81800073279 /* vector.cpp */; };
+		A1F591550B8DF81800073279 /* video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C10B8DF81800073279 /* video.cpp */; };
+		A1F591560B8DF81800073279 /* vol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F590C20B8DF81800073279 /* vol.cpp */; };
+		A1F5915D0B8DF94400073279 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5915C0B8DF94400073279 /* macvideo.cpp */; };
+		A1F5915E0B8DF94400073279 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5915C0B8DF94400073279 /* macvideo.cpp */; };
+		A1F591600B8DF94400073279 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F5915C0B8DF94400073279 /* macvideo.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		A117DC910B8DC59A00F62CED /* Copy TBB lib */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A117DC950B8DC5FB00F62CED /* libtbb.dylib in Copy TBB lib */,
+			);
+			name = "Copy TBB lib";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58EE60B8DF4E100073279 /* Copy TBB lib */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F58EE80B8DF4F900073279 /* libtbb.dylib in Copy TBB lib */,
+			);
+			name = "Copy TBB lib";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = "<group>"; };
+		20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+		32DBCF6D0370B57F00C91783 /* tacheon.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tacheon.pch; sourceTree = "<group>"; };
+		8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+		A117DC7A0B8DC08100F62CED /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
+		A117DC7F0B8DC09300F62CED /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
+		A117DC830B8DC0DE00F62CED /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+		A1A8FB5D0B8CBB8D001C55B1 /* trace.tbb.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = trace.tbb.cpp; path = ../src/trace.tbb.cpp; sourceTree = SOURCE_ROOT; };
+		A1F58CD90B8DE90E00073279 /* tacheon-tbb.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "tacheon-tbb.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F58D3D0B8DEB8E00073279 /* trace.threads.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = trace.threads.cpp; path = ../src/trace.threads.cpp; sourceTree = SOURCE_ROOT; };
+		A1F58D8B0B8DEFD900073279 /* trace.tbb1d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = trace.tbb1d.cpp; path = ../src/trace.tbb1d.cpp; sourceTree = SOURCE_ROOT; };
+		A1F58D8C0B8DEFE900073279 /* trace.serial.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = trace.serial.cpp; path = ../src/trace.serial.cpp; sourceTree = SOURCE_ROOT; };
+		A1F58D920B8DF03600073279 /* tacheon-tbb1d.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "tacheon-tbb1d.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F58D9C0B8DF06700073279 /* tacheon-serial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "tacheon-serial.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F590320B8DF7D100073279 /* api.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = api.h; path = ../src/api.h; sourceTree = SOURCE_ROOT; };
+		A1F590330B8DF7D100073279 /* apitrigeom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apitrigeom.h; path = ../src/apitrigeom.h; sourceTree = SOURCE_ROOT; };
+		A1F590340B8DF7D100073279 /* bndbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = bndbox.h; path = ../src/bndbox.h; sourceTree = SOURCE_ROOT; };
+		A1F590350B8DF7D100073279 /* box.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = box.h; path = ../src/box.h; sourceTree = SOURCE_ROOT; };
+		A1F590360B8DF7D100073279 /* camera.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = camera.h; path = ../src/camera.h; sourceTree = SOURCE_ROOT; };
+		A1F590370B8DF7D100073279 /* coordsys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = coordsys.h; path = ../src/coordsys.h; sourceTree = SOURCE_ROOT; };
+		A1F590380B8DF7D100073279 /* cylinder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cylinder.h; path = ../src/cylinder.h; sourceTree = SOURCE_ROOT; };
+		A1F590390B8DF7D100073279 /* extvol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = extvol.h; path = ../src/extvol.h; sourceTree = SOURCE_ROOT; };
+		A1F5903A0B8DF7D100073279 /* getargs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = getargs.h; path = ../src/getargs.h; sourceTree = SOURCE_ROOT; };
+		A1F5903B0B8DF7D100073279 /* global.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = global.h; path = ../src/global.h; sourceTree = SOURCE_ROOT; };
+		A1F5903C0B8DF7D100073279 /* grid.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = grid.h; path = ../src/grid.h; sourceTree = SOURCE_ROOT; };
+		A1F5903D0B8DF7D100073279 /* imageio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = imageio.h; path = ../src/imageio.h; sourceTree = SOURCE_ROOT; };
+		A1F5903E0B8DF7D100073279 /* imap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = imap.h; path = ../src/imap.h; sourceTree = SOURCE_ROOT; };
+		A1F5903F0B8DF7D100073279 /* intersect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = intersect.h; path = ../src/intersect.h; sourceTree = SOURCE_ROOT; };
+		A1F590400B8DF7D100073279 /* jpeg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpeg.h; path = ../src/jpeg.h; sourceTree = SOURCE_ROOT; };
+		A1F590410B8DF7D100073279 /* light.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = light.h; path = ../src/light.h; sourceTree = SOURCE_ROOT; };
+		A1F590420B8DF7D100073279 /* machine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = machine.h; path = ../src/machine.h; sourceTree = SOURCE_ROOT; };
+		A1F590430B8DF7D100073279 /* macros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macros.h; path = ../src/macros.h; sourceTree = SOURCE_ROOT; };
+		A1F590440B8DF7D100073279 /* objbound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = objbound.h; path = ../src/objbound.h; sourceTree = SOURCE_ROOT; };
+		A1F590450B8DF7D100073279 /* parse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = parse.h; path = ../src/parse.h; sourceTree = SOURCE_ROOT; };
+		A1F590460B8DF7D100073279 /* plane.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = plane.h; path = ../src/plane.h; sourceTree = SOURCE_ROOT; };
+		A1F590470B8DF7D100073279 /* ppm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ppm.h; path = ../src/ppm.h; sourceTree = SOURCE_ROOT; };
+		A1F590480B8DF7D100073279 /* quadric.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = quadric.h; path = ../src/quadric.h; sourceTree = SOURCE_ROOT; };
+		A1F590490B8DF7D100073279 /* render.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = render.h; path = ../src/render.h; sourceTree = SOURCE_ROOT; };
+		A1F5904A0B8DF7D100073279 /* ring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ring.h; path = ../src/ring.h; sourceTree = SOURCE_ROOT; };
+		A1F5904B0B8DF7D100073279 /* shade.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = shade.h; path = ../src/shade.h; sourceTree = SOURCE_ROOT; };
+		A1F5904C0B8DF7D100073279 /* sphere.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sphere.h; path = ../src/sphere.h; sourceTree = SOURCE_ROOT; };
+		A1F5904D0B8DF7D100073279 /* texture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = texture.h; path = ../src/texture.h; sourceTree = SOURCE_ROOT; };
+		A1F5904E0B8DF7D100073279 /* tgafile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tgafile.h; path = ../src/tgafile.h; sourceTree = SOURCE_ROOT; };
+		A1F5904F0B8DF7D100073279 /* trace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = trace.h; path = ../src/trace.h; sourceTree = SOURCE_ROOT; };
+		A1F590500B8DF7D100073279 /* types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../src/types.h; sourceTree = SOURCE_ROOT; };
+		A1F590510B8DF7D100073279 /* ui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ui.h; path = ../src/ui.h; sourceTree = SOURCE_ROOT; };
+		A1F590520B8DF7D100073279 /* util.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = util.h; path = ../src/util.h; sourceTree = SOURCE_ROOT; };
+		A1F590530B8DF7D100073279 /* vector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = vector.h; path = ../src/vector.h; sourceTree = SOURCE_ROOT; };
+		A1F590540B8DF7D100073279 /* video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = video.h; path = ../src/video.h; sourceTree = SOURCE_ROOT; };
+		A1F590550B8DF7D100073279 /* vol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = vol.h; path = ../src/vol.h; sourceTree = SOURCE_ROOT; };
+		A1F5909E0B8DF81800073279 /* api.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = api.cpp; path = ../src/api.cpp; sourceTree = SOURCE_ROOT; };
+		A1F5909F0B8DF81800073279 /* apigeom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = apigeom.cpp; path = ../src/apigeom.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A00B8DF81800073279 /* apitrigeom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = apitrigeom.cpp; path = ../src/apitrigeom.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A10B8DF81800073279 /* bndbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = bndbox.cpp; path = ../src/bndbox.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A20B8DF81800073279 /* box.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = box.cpp; path = ../src/box.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A30B8DF81800073279 /* camera.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = camera.cpp; path = ../src/camera.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A40B8DF81800073279 /* coordsys.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = coordsys.cpp; path = ../src/coordsys.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A50B8DF81800073279 /* cylinder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = cylinder.cpp; path = ../src/cylinder.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A60B8DF81800073279 /* extvol.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = extvol.cpp; path = ../src/extvol.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A70B8DF81800073279 /* getargs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = getargs.cpp; path = ../src/getargs.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A80B8DF81800073279 /* global.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = global.cpp; path = ../src/global.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590A90B8DF81800073279 /* grid.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = grid.cpp; path = ../src/grid.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590AA0B8DF81800073279 /* imageio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = imageio.cpp; path = ../src/imageio.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590AB0B8DF81800073279 /* imap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = imap.cpp; path = ../src/imap.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590AC0B8DF81800073279 /* intersect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = intersect.cpp; path = ../src/intersect.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590AD0B8DF81800073279 /* jpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpeg.cpp; path = ../src/jpeg.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590AE0B8DF81800073279 /* light.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = light.cpp; path = ../src/light.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590AF0B8DF81800073279 /* objbound.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = objbound.cpp; path = ../src/objbound.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B00B8DF81800073279 /* parse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = parse.cpp; path = ../src/parse.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B10B8DF81800073279 /* plane.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = plane.cpp; path = ../src/plane.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B20B8DF81800073279 /* ppm.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ppm.cpp; path = ../src/ppm.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B30B8DF81800073279 /* quadric.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = quadric.cpp; path = ../src/quadric.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B40B8DF81800073279 /* render.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = render.cpp; path = ../src/render.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B50B8DF81800073279 /* ring.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ring.cpp; path = ../src/ring.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B60B8DF81800073279 /* shade.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = shade.cpp; path = ../src/shade.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B70B8DF81800073279 /* sphere.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sphere.cpp; path = ../src/sphere.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B80B8DF81800073279 /* texture.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = texture.cpp; path = ../src/texture.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590B90B8DF81800073279 /* tgafile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = tgafile.cpp; path = ../src/tgafile.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590BA0B8DF81800073279 /* trace_rest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = trace_rest.cpp; path = ../src/trace_rest.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590BD0B8DF81800073279 /* triangle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = triangle.cpp; path = ../src/triangle.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590BE0B8DF81800073279 /* ui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ui.cpp; path = ../src/ui.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590BF0B8DF81800073279 /* util.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = util.cpp; path = ../src/util.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590C00B8DF81800073279 /* vector.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = vector.cpp; path = ../src/vector.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590C10B8DF81800073279 /* video.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = video.cpp; path = ../src/video.cpp; sourceTree = SOURCE_ROOT; };
+		A1F590C20B8DF81800073279 /* vol.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = vol.cpp; path = ../src/vol.cpp; sourceTree = SOURCE_ROOT; };
+		A1F5915A0B8DF8FA00073279 /* triangle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = triangle.h; path = ../src/triangle.h; sourceTree = SOURCE_ROOT; };
+		A1F5915C0B8DF94400073279 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = SOURCE_ROOT; };
+		A1F591610B8DF96500073279 /* video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = video.h; path = ../../../common/gui/video.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8D0C4E910486CD37000505A6 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */,
+				A117DC7B0B8DC08100F62CED /* AGL.framework in Frameworks */,
+				A117DC800B8DC09300F62CED /* OpenGL.framework in Frameworks */,
+				A117DC850B8DC0EA00F62CED /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58D900B8DF03600073279 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F58E8C0B8DF25800073279 /* OpenGL.framework in Frameworks */,
+				A1F58E8D0B8DF25900073279 /* libtbb.dylib in Frameworks */,
+				A1F58E8E0B8DF25A00073279 /* Carbon.framework in Frameworks */,
+				A1F58E8F0B8DF25A00073279 /* AGL.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58D9A0B8DF06700073279 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F58E900B8DF25F00073279 /* AGL.framework in Frameworks */,
+				A1F58E910B8DF26000073279 /* Carbon.framework in Frameworks */,
+				A1F58E920B8DF26100073279 /* OpenGL.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		20286C29FDCF999611CA2CEA /* tacheon */ = {
+			isa = PBXGroup;
+			children = (
+				20286C2AFDCF999611CA2CEA /* Sources */,
+				20286C2CFDCF999611CA2CEA /* Resources */,
+				20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
+				A1F58CD30B8DE85300073279 /* Products */,
+			);
+			name = tacheon;
+			sourceTree = "<group>";
+		};
+		20286C2AFDCF999611CA2CEA /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				A1F590310B8DF75E00073279 /* Tacheon */,
+				A1A8FB5F0B8CBB9E001C55B1 /* Render */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		20286C2CFDCF999611CA2CEA /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E960486CD37000505A6 /* Info.plist */,
+				0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */,
+				02345980000FD03B11CA0E72 /* main.nib */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A117DC830B8DC0DE00F62CED /* libtbb.dylib */,
+				A117DC7F0B8DC09300F62CED /* OpenGL.framework */,
+				A117DC7A0B8DC08100F62CED /* AGL.framework */,
+				20286C33FDCF999611CA2CEA /* Carbon.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+		A1A8FB5F0B8CBB9E001C55B1 /* Render */ = {
+			isa = PBXGroup;
+			children = (
+				A1F5902F0B8DF71B00073279 /* Headers */,
+				A1F5902E0B8DF71200073279 /* Sources */,
+			);
+			name = Render;
+			sourceTree = "<group>";
+		};
+		A1F58CD30B8DE85300073279 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				A1F58CD90B8DE90E00073279 /* tacheon-tbb.app */,
+				A1F58D920B8DF03600073279 /* tacheon-tbb1d.app */,
+				A1F58D9C0B8DF06700073279 /* tacheon-serial.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F5902E0B8DF71200073279 /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				A1F5915C0B8DF94400073279 /* macvideo.cpp */,
+				A1F5909E0B8DF81800073279 /* api.cpp */,
+				A1F5909F0B8DF81800073279 /* apigeom.cpp */,
+				A1F590A00B8DF81800073279 /* apitrigeom.cpp */,
+				A1F590A10B8DF81800073279 /* bndbox.cpp */,
+				A1F590A20B8DF81800073279 /* box.cpp */,
+				A1F590A30B8DF81800073279 /* camera.cpp */,
+				A1F590A40B8DF81800073279 /* coordsys.cpp */,
+				A1F590A50B8DF81800073279 /* cylinder.cpp */,
+				A1F590A60B8DF81800073279 /* extvol.cpp */,
+				A1F590A70B8DF81800073279 /* getargs.cpp */,
+				A1F590A80B8DF81800073279 /* global.cpp */,
+				A1F590A90B8DF81800073279 /* grid.cpp */,
+				A1F590AA0B8DF81800073279 /* imageio.cpp */,
+				A1F590AB0B8DF81800073279 /* imap.cpp */,
+				A1F590AC0B8DF81800073279 /* intersect.cpp */,
+				A1F590AD0B8DF81800073279 /* jpeg.cpp */,
+				A1F590AE0B8DF81800073279 /* light.cpp */,
+				A1F590AF0B8DF81800073279 /* objbound.cpp */,
+				A1F590B00B8DF81800073279 /* parse.cpp */,
+				A1F590B10B8DF81800073279 /* plane.cpp */,
+				A1F590B20B8DF81800073279 /* ppm.cpp */,
+				A1F590B30B8DF81800073279 /* quadric.cpp */,
+				A1F590B40B8DF81800073279 /* render.cpp */,
+				A1F590B50B8DF81800073279 /* ring.cpp */,
+				A1F590B60B8DF81800073279 /* shade.cpp */,
+				A1F590B70B8DF81800073279 /* sphere.cpp */,
+				A1F590B80B8DF81800073279 /* texture.cpp */,
+				A1F590B90B8DF81800073279 /* tgafile.cpp */,
+				A1F590BA0B8DF81800073279 /* trace_rest.cpp */,
+				A1F590BD0B8DF81800073279 /* triangle.cpp */,
+				A1F590BE0B8DF81800073279 /* ui.cpp */,
+				A1F590BF0B8DF81800073279 /* util.cpp */,
+				A1F590C00B8DF81800073279 /* vector.cpp */,
+				A1F590C10B8DF81800073279 /* video.cpp */,
+				A1F590C20B8DF81800073279 /* vol.cpp */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		A1F5902F0B8DF71B00073279 /* Headers */ = {
+			isa = PBXGroup;
+			children = (
+				A1F591610B8DF96500073279 /* video.h */,
+				A1F5915A0B8DF8FA00073279 /* triangle.h */,
+				A1F590320B8DF7D100073279 /* api.h */,
+				A1F590330B8DF7D100073279 /* apitrigeom.h */,
+				A1F590340B8DF7D100073279 /* bndbox.h */,
+				A1F590350B8DF7D100073279 /* box.h */,
+				A1F590360B8DF7D100073279 /* camera.h */,
+				A1F590370B8DF7D100073279 /* coordsys.h */,
+				A1F590380B8DF7D100073279 /* cylinder.h */,
+				A1F590390B8DF7D100073279 /* extvol.h */,
+				A1F5903A0B8DF7D100073279 /* getargs.h */,
+				A1F5903B0B8DF7D100073279 /* global.h */,
+				A1F5903C0B8DF7D100073279 /* grid.h */,
+				A1F5903D0B8DF7D100073279 /* imageio.h */,
+				A1F5903E0B8DF7D100073279 /* imap.h */,
+				A1F5903F0B8DF7D100073279 /* intersect.h */,
+				A1F590400B8DF7D100073279 /* jpeg.h */,
+				A1F590410B8DF7D100073279 /* light.h */,
+				A1F590420B8DF7D100073279 /* machine.h */,
+				A1F590430B8DF7D100073279 /* macros.h */,
+				A1F590440B8DF7D100073279 /* objbound.h */,
+				A1F590450B8DF7D100073279 /* parse.h */,
+				A1F590460B8DF7D100073279 /* plane.h */,
+				A1F590470B8DF7D100073279 /* ppm.h */,
+				A1F590480B8DF7D100073279 /* quadric.h */,
+				A1F590490B8DF7D100073279 /* render.h */,
+				A1F5904A0B8DF7D100073279 /* ring.h */,
+				A1F5904B0B8DF7D100073279 /* shade.h */,
+				A1F5904C0B8DF7D100073279 /* sphere.h */,
+				A1F5904D0B8DF7D100073279 /* texture.h */,
+				A1F5904E0B8DF7D100073279 /* tgafile.h */,
+				A1F5904F0B8DF7D100073279 /* trace.h */,
+				A1F590500B8DF7D100073279 /* types.h */,
+				A1F590510B8DF7D100073279 /* ui.h */,
+				A1F590520B8DF7D100073279 /* util.h */,
+				A1F590530B8DF7D100073279 /* vector.h */,
+				A1F590540B8DF7D100073279 /* video.h */,
+				A1F590550B8DF7D100073279 /* vol.h */,
+			);
+			name = Headers;
+			sourceTree = "<group>";
+		};
+		A1F590310B8DF75E00073279 /* Tacheon */ = {
+			isa = PBXGroup;
+			children = (
+				A1F58D8C0B8DEFE900073279 /* trace.serial.cpp */,
+				A1F58D3D0B8DEB8E00073279 /* trace.threads.cpp */,
+				A1F58D8B0B8DEFD900073279 /* trace.tbb1d.cpp */,
+				A1A8FB5D0B8CBB8D001C55B1 /* trace.tbb.cpp */,
+				32DBCF6D0370B57F00C91783 /* tacheon.pch */,
+			);
+			name = Tacheon;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8D0C4E890486CD37000505A6 /* tacheon-tbb */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "tacheon-tbb" */;
+			buildPhases = (
+				8D0C4E8C0486CD37000505A6 /* Resources */,
+				8D0C4E8F0486CD37000505A6 /* Sources */,
+				8D0C4E910486CD37000505A6 /* Frameworks */,
+				A117DC910B8DC59A00F62CED /* Copy TBB lib */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "tacheon-tbb";
+			productInstallPath = "$(HOME)/Applications";
+			productName = tacheon;
+			productReference = A1F58CD90B8DE90E00073279 /* tacheon-tbb.app */;
+			productType = "com.apple.product-type.application";
+		};
+		A1F58D910B8DF03600073279 /* tacheon-tbb1d */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A1F58D950B8DF03600073279 /* Build configuration list for PBXNativeTarget "tacheon-tbb1d" */;
+			buildPhases = (
+				A1F58D8E0B8DF03600073279 /* Resources */,
+				A1F58D8F0B8DF03600073279 /* Sources */,
+				A1F58D900B8DF03600073279 /* Frameworks */,
+				A1F58EE60B8DF4E100073279 /* Copy TBB lib */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "tacheon-tbb1d";
+			productName = "tacheon-tbb1d";
+			productReference = A1F58D920B8DF03600073279 /* tacheon-tbb1d.app */;
+			productType = "com.apple.product-type.application";
+		};
+		A1F58D9B0B8DF06700073279 /* tacheon-serial */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A1F58D9F0B8DF06700073279 /* Build configuration list for PBXNativeTarget "tacheon-serial" */;
+			buildPhases = (
+				A1F58D980B8DF06700073279 /* Resources */,
+				A1F58D990B8DF06700073279 /* Sources */,
+				A1F58D9A0B8DF06700073279 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "tacheon-serial";
+			productName = "tacheon-serial";
+			productReference = A1F58D9C0B8DF06700073279 /* tacheon-serial.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		20286C28FDCF999611CA2CEA /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "tacheon" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 20286C29FDCF999611CA2CEA /* tacheon */;
+			productRefGroup = A1F58CD30B8DE85300073279 /* Products */;
+			projectDirPath = "";
+			targets = (
+				A1F58D9B0B8DF06700073279 /* tacheon-serial */,
+				A1F58D910B8DF03600073279 /* tacheon-tbb1d */,
+				8D0C4E890486CD37000505A6 /* tacheon-tbb */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		8D0C4E8C0486CD37000505A6 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */,
+				8D0C4E8E0486CD37000505A6 /* main.nib in Resources */,
+				A1F58EA30B8DF32900073279 /* Info.plist in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58D8E0B8DF03600073279 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F58DCD0B8DF19700073279 /* main.nib in Resources */,
+				A1F58EA40B8DF32A00073279 /* Info.plist in Resources */,
+				A1F58EA80B8DF33100073279 /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58D980B8DF06700073279 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F58DCE0B8DF19800073279 /* main.nib in Resources */,
+				A1F58EA60B8DF32B00073279 /* Info.plist in Resources */,
+				A1F58EAA0B8DF33200073279 /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8D0C4E8F0486CD37000505A6 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F58F960B8DF63C00073279 /* trace.tbb.cpp in Sources */,
+				A1F591320B8DF81800073279 /* api.cpp in Sources */,
+				A1F591330B8DF81800073279 /* apigeom.cpp in Sources */,
+				A1F591340B8DF81800073279 /* apitrigeom.cpp in Sources */,
+				A1F591350B8DF81800073279 /* bndbox.cpp in Sources */,
+				A1F591360B8DF81800073279 /* box.cpp in Sources */,
+				A1F591370B8DF81800073279 /* camera.cpp in Sources */,
+				A1F591380B8DF81800073279 /* coordsys.cpp in Sources */,
+				A1F591390B8DF81800073279 /* cylinder.cpp in Sources */,
+				A1F5913A0B8DF81800073279 /* extvol.cpp in Sources */,
+				A1F5913B0B8DF81800073279 /* getargs.cpp in Sources */,
+				A1F5913C0B8DF81800073279 /* global.cpp in Sources */,
+				A1F5913D0B8DF81800073279 /* grid.cpp in Sources */,
+				A1F5913E0B8DF81800073279 /* imageio.cpp in Sources */,
+				A1F5913F0B8DF81800073279 /* imap.cpp in Sources */,
+				A1F591400B8DF81800073279 /* intersect.cpp in Sources */,
+				A1F591410B8DF81800073279 /* jpeg.cpp in Sources */,
+				A1F591420B8DF81800073279 /* light.cpp in Sources */,
+				A1F591430B8DF81800073279 /* objbound.cpp in Sources */,
+				A1F591440B8DF81800073279 /* parse.cpp in Sources */,
+				A1F591450B8DF81800073279 /* plane.cpp in Sources */,
+				A1F591460B8DF81800073279 /* ppm.cpp in Sources */,
+				A1F591470B8DF81800073279 /* quadric.cpp in Sources */,
+				A1F591480B8DF81800073279 /* render.cpp in Sources */,
+				A1F591490B8DF81800073279 /* ring.cpp in Sources */,
+				A1F5914A0B8DF81800073279 /* shade.cpp in Sources */,
+				A1F5914B0B8DF81800073279 /* sphere.cpp in Sources */,
+				A1F5914C0B8DF81800073279 /* texture.cpp in Sources */,
+				A1F5914D0B8DF81800073279 /* tgafile.cpp in Sources */,
+				A1F5914E0B8DF81800073279 /* trace_rest.cpp in Sources */,
+				A1F591510B8DF81800073279 /* triangle.cpp in Sources */,
+				A1F591520B8DF81800073279 /* ui.cpp in Sources */,
+				A1F591530B8DF81800073279 /* util.cpp in Sources */,
+				A1F591540B8DF81800073279 /* vector.cpp in Sources */,
+				A1F591550B8DF81800073279 /* video.cpp in Sources */,
+				A1F591560B8DF81800073279 /* vol.cpp in Sources */,
+				A1F5915D0B8DF94400073279 /* macvideo.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58D8F0B8DF03600073279 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F5902C0B8DF6A700073279 /* trace.tbb1d.cpp in Sources */,
+				A1F5910D0B8DF81800073279 /* api.cpp in Sources */,
+				A1F5910E0B8DF81800073279 /* apigeom.cpp in Sources */,
+				A1F5910F0B8DF81800073279 /* apitrigeom.cpp in Sources */,
+				A1F591100B8DF81800073279 /* bndbox.cpp in Sources */,
+				A1F591110B8DF81800073279 /* box.cpp in Sources */,
+				A1F591120B8DF81800073279 /* camera.cpp in Sources */,
+				A1F591130B8DF81800073279 /* coordsys.cpp in Sources */,
+				A1F591140B8DF81800073279 /* cylinder.cpp in Sources */,
+				A1F591150B8DF81800073279 /* extvol.cpp in Sources */,
+				A1F591160B8DF81800073279 /* getargs.cpp in Sources */,
+				A1F591170B8DF81800073279 /* global.cpp in Sources */,
+				A1F591180B8DF81800073279 /* grid.cpp in Sources */,
+				A1F591190B8DF81800073279 /* imageio.cpp in Sources */,
+				A1F5911A0B8DF81800073279 /* imap.cpp in Sources */,
+				A1F5911B0B8DF81800073279 /* intersect.cpp in Sources */,
+				A1F5911C0B8DF81800073279 /* jpeg.cpp in Sources */,
+				A1F5911D0B8DF81800073279 /* light.cpp in Sources */,
+				A1F5911E0B8DF81800073279 /* objbound.cpp in Sources */,
+				A1F5911F0B8DF81800073279 /* parse.cpp in Sources */,
+				A1F591200B8DF81800073279 /* plane.cpp in Sources */,
+				A1F591210B8DF81800073279 /* ppm.cpp in Sources */,
+				A1F591220B8DF81800073279 /* quadric.cpp in Sources */,
+				A1F591230B8DF81800073279 /* render.cpp in Sources */,
+				A1F591240B8DF81800073279 /* ring.cpp in Sources */,
+				A1F591250B8DF81800073279 /* shade.cpp in Sources */,
+				A1F591260B8DF81800073279 /* sphere.cpp in Sources */,
+				A1F591270B8DF81800073279 /* texture.cpp in Sources */,
+				A1F591280B8DF81800073279 /* tgafile.cpp in Sources */,
+				A1F591290B8DF81800073279 /* trace_rest.cpp in Sources */,
+				A1F5912C0B8DF81800073279 /* triangle.cpp in Sources */,
+				A1F5912D0B8DF81800073279 /* ui.cpp in Sources */,
+				A1F5912E0B8DF81800073279 /* util.cpp in Sources */,
+				A1F5912F0B8DF81800073279 /* vector.cpp in Sources */,
+				A1F591300B8DF81800073279 /* video.cpp in Sources */,
+				A1F591310B8DF81800073279 /* vol.cpp in Sources */,
+				A1F5915E0B8DF94400073279 /* macvideo.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F58D990B8DF06700073279 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F590300B8DF74600073279 /* trace.serial.cpp in Sources */,
+				A1F590C30B8DF81800073279 /* api.cpp in Sources */,
+				A1F590C40B8DF81800073279 /* apigeom.cpp in Sources */,
+				A1F590C50B8DF81800073279 /* apitrigeom.cpp in Sources */,
+				A1F590C60B8DF81800073279 /* bndbox.cpp in Sources */,
+				A1F590C70B8DF81800073279 /* box.cpp in Sources */,
+				A1F590C80B8DF81800073279 /* camera.cpp in Sources */,
+				A1F590C90B8DF81800073279 /* coordsys.cpp in Sources */,
+				A1F590CA0B8DF81800073279 /* cylinder.cpp in Sources */,
+				A1F590CB0B8DF81800073279 /* extvol.cpp in Sources */,
+				A1F590CC0B8DF81800073279 /* getargs.cpp in Sources */,
+				A1F590CD0B8DF81800073279 /* global.cpp in Sources */,
+				A1F590CE0B8DF81800073279 /* grid.cpp in Sources */,
+				A1F590CF0B8DF81800073279 /* imageio.cpp in Sources */,
+				A1F590D00B8DF81800073279 /* imap.cpp in Sources */,
+				A1F590D10B8DF81800073279 /* intersect.cpp in Sources */,
+				A1F590D20B8DF81800073279 /* jpeg.cpp in Sources */,
+				A1F590D30B8DF81800073279 /* light.cpp in Sources */,
+				A1F590D40B8DF81800073279 /* objbound.cpp in Sources */,
+				A1F590D50B8DF81800073279 /* parse.cpp in Sources */,
+				A1F590D60B8DF81800073279 /* plane.cpp in Sources */,
+				A1F590D70B8DF81800073279 /* ppm.cpp in Sources */,
+				A1F590D80B8DF81800073279 /* quadric.cpp in Sources */,
+				A1F590D90B8DF81800073279 /* render.cpp in Sources */,
+				A1F590DA0B8DF81800073279 /* ring.cpp in Sources */,
+				A1F590DB0B8DF81800073279 /* shade.cpp in Sources */,
+				A1F590DC0B8DF81800073279 /* sphere.cpp in Sources */,
+				A1F590DD0B8DF81800073279 /* texture.cpp in Sources */,
+				A1F590DE0B8DF81800073279 /* tgafile.cpp in Sources */,
+				A1F590DF0B8DF81800073279 /* trace_rest.cpp in Sources */,
+				A1F590E20B8DF81800073279 /* triangle.cpp in Sources */,
+				A1F590E30B8DF81800073279 /* ui.cpp in Sources */,
+				A1F590E40B8DF81800073279 /* util.cpp in Sources */,
+				A1F590E50B8DF81800073279 /* vector.cpp in Sources */,
+				A1F590E60B8DF81800073279 /* video.cpp in Sources */,
+				A1F590E70B8DF81800073279 /* vol.cpp in Sources */,
+				A1F591600B8DF94400073279 /* macvideo.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		02345980000FD03B11CA0E72 /* main.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				1870340FFE93FCAF11CA0CD7 /* English */,
+			);
+			name = main.nib;
+			sourceTree = "<group>";
+		};
+		0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				0867D6ABFE840B52C02AAC07 /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		A1F58D960B8DF03600073279 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = "tacheon-tbb1d";
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		A1F58D970B8DF03600073279 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = "tacheon-tbb1d";
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		A1F58DA00B8DF06700073279 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				PREBINDING = NO;
+				PRODUCT_NAME = "tacheon-serial";
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		A1F58DA10B8DF06700073279 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				PREBINDING = NO;
+				PRODUCT_NAME = "tacheon-serial";
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		C0E91AC608A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = tacheon.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = "tacheon-tbb";
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		C0E91AC708A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = tacheon.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = "tacheon-tbb";
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		C0E91ACA08A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_AUTO_VECTORIZATION = YES;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_MODEL_TUNING = "";
+				GCC_PREPROCESSOR_DEFINITIONS = "DEFAULT_MODELFILE=\"/Library/Frameworks/TBB.framework/Versions/Current/examples/parallel_for/tacheon/dat/balls.dat\"";
+				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		C0E91ACB08A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_AUTO_VECTORIZATION = YES;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_MODEL_TUNING = "";
+				GCC_PREPROCESSOR_DEFINITIONS = "DEFAULT_MODELFILE=\"/Library/Frameworks/TBB.framework/Versions/Current/examples/parallel_for/tacheon/dat/balls.dat\"";
+				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		A1F58D950B8DF03600073279 /* Build configuration list for PBXNativeTarget "tacheon-tbb1d" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A1F58D960B8DF03600073279 /* Debug */,
+				A1F58D970B8DF03600073279 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A1F58D9F0B8DF06700073279 /* Build configuration list for PBXNativeTarget "tacheon-serial" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A1F58DA00B8DF06700073279 /* Debug */,
+				A1F58DA10B8DF06700073279 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "tacheon-tbb" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91AC608A95435008D54AB /* Debug */,
+				C0E91AC708A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "tacheon" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91ACA08A95435008D54AB /* Debug */,
+				C0E91ACB08A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
+}
diff --git a/examples/parallel_reduce/convex_hull/Makefile b/examples/parallel_reduce/convex_hull/Makefile
new file mode 100644
index 0000000..3fcf601
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/Makefile
@@ -0,0 +1,46 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o convex_hull_sample convex_hull_sample.cpp -ltbb
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o convex_hull_bench convex_hull_bench.cpp -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o convex_hull_sample convex_hull_sample.cpp -ltbb_debug
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o convex_hull_bench convex_hull_bench.cpp -ltbb_debug
+
+clean:
+	rm -f convex_hull_bench convex_hull_sample *.o *.d
+
+test:
+	./convex_hull_bench
diff --git a/examples/parallel_reduce/convex_hull/Makefile.windows b/examples/parallel_reduce/convex_hull/Makefile.windows
new file mode 100644
index 0000000..b2bf4ea
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/Makefile.windows
@@ -0,0 +1,46 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+
+# The C++ compiler options
+CXX=cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS=/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) convex_hull_sample.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS) /OUT:convex_hull_sample.exe
+	$(CXX) convex_hull_bench.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS) /OUT:convex_hull_bench.exe
+debug:
+	$(CXX) convex_hull_sample.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS) /OUT:convex_hull_sample.exe
+	$(CXX) convex_hull_bench.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS) /OUT:convex_hull_bench.exe
+clean:
+	@cmd.exe /C del convex_hull*.exe *.obj *.?db *.manifest
+test:
+	convex_hull_bench
diff --git a/examples/parallel_reduce/convex_hull/convex_hull.h b/examples/parallel_reduce/convex_hull/convex_hull.h
new file mode 100644
index 0000000..11b497d
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/convex_hull.h
@@ -0,0 +1,233 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __CONVEX_HULL_H__
+#define __CONVEX_HULL_H__
+
+#define _SCL_SECURE_NO_DEPRECATE
+#include <stdlib.h>
+#include <iostream>
+#include <sstream>
+#include <vector>
+#include <string>
+#include <algorithm>
+#include <functional>
+#include <assert.h>
+#include "tbb/tick_count.h"
+
+namespace cfg {
+    // convex hull problem parameter defaults
+    const long    NP = 5000000; // problem size
+    const size_t SNT = 1;        // minimal number of threads
+    const size_t ENT = 8;        // maximal number of threads
+
+    // convex hull problem user set parameters
+    long   MAXPOINTS         = NP;
+    size_t NUM_THREADS_START = SNT;
+    size_t NUM_THREADS_END   = ENT;
+
+    // convex hull grain sizes for 3 subproblems. Be sure 16*GS < 512Kb
+    const size_t GENERATE_GS = 25000;
+    const size_t FINDEXT_GS  = 25000;
+    const size_t DIVIDE_GS   = 25000;
+};
+
+namespace util {
+    bool                     VERBOSE = false;
+    std::vector<std::string> OUTPUT;
+
+    // utility functionality
+    void ParseInputArgs(int argc, char* argv[]) {
+        int numArgs = 1;
+        if(argc>numArgs) {
+            char delim = ':';
+            if(!strcmp(argv[numArgs], "-h")) {
+                std::cout << " Program usage is:" << std::endl
+                    << " " << argv[0] << " [NP] [SNT" << delim << "ENT] [-v]"
+                    << std::endl << std::endl
+                    << " where:" << std::endl
+                    << " NP  - number of points" << std::endl
+                    << " SNT - start with this number of threads" << std::endl
+                    << " ENT - end with this number of threads" << std::endl
+                    << "  -v - turns verbose ON" << std::endl;
+                exit(0);
+            } else {
+                while(argc>numArgs) {
+                    char* endptr;
+                    if(!strcmp(argv[numArgs], "-v")) {
+                        VERBOSE = true;
+                    } else if(!strchr(argv[numArgs], delim)) {
+                        cfg::MAXPOINTS = strtol(argv[numArgs], &endptr, 0);
+                        if(*endptr!='\0') {
+                            std::cout << " wrong parameter format for Number of Points" << std::endl;
+                            exit(1);
+                        }
+                        if(cfg::MAXPOINTS<=0) {
+                            std::cout
+                                << "  wrong value set for Number of Points" << std::endl
+                                << "  using default value: " << std::endl
+                                << "  Number of Points = " << cfg::NP << std::endl;
+                            cfg::MAXPOINTS = cfg::NP;
+                        }
+                    } else {
+                        cfg::NUM_THREADS_START=strtol(argv[numArgs], &endptr, 0);
+                        if(*endptr==delim) {
+                            cfg::NUM_THREADS_END = strtol(endptr+1, &endptr, 0);
+                        } else {
+                            std::cout << " wrong parameter format for Number of Threads" << std::endl;
+                            exit(1);
+                        }
+                        if(*endptr!='\0') {
+                            std::cout << " wrong parameter format for Number of Threads" << std::endl;
+                            exit(1);
+                        }    
+                        if((cfg::NUM_THREADS_START<=0)
+                            || (cfg::NUM_THREADS_END<cfg::NUM_THREADS_START)) {
+                                std::cout
+                                    << "  wrong values set for Number of Threads" << std::endl
+                                    << "  using default values: " << std::endl
+                                    << "  start NT = " << cfg::SNT << std::endl
+                                    << "  end   NT = " << cfg::ENT << std::endl;
+                                cfg::NUM_THREADS_START=cfg::SNT;
+                                cfg::NUM_THREADS_END  =cfg::ENT;
+                        }
+                    }
+                    ++numArgs;
+                }
+            }
+        }
+    }
+
+    template <typename T>
+    struct point {
+        T x;
+        T y;
+        point() : x(T()), y(T()) {}
+        point(T _x, T _y) : x(_x), y(_y) {}
+        point(const point<T>& _P) : x(_P.x), y(_P.y) {}
+    };
+
+    int random(unsigned int& rseed) {
+#if __linux__ || __APPLE__
+            return rand_r(&rseed);
+#elif _WIN32
+            return rand();
+#else
+#error Unknown/unsupported OS?
+#endif // __linux__
+    }
+
+    template < typename T >
+    point<T> GenerateRNDPoint(size_t& count, unsigned int& rseed) {
+        /* generates random points on 2D plane so that the cluster
+        is somewhat cirle shaped */
+        const size_t maxsize=500;
+        T x = random(rseed)*2.0/(double)RAND_MAX - 1;
+        T y = random(rseed)*2.0/(double)RAND_MAX - 1;
+        T r = (x*x + y*y);
+        if(r>1) {
+            count++;
+            if(count>10) {
+                if (random(rseed)/(double)RAND_MAX > 0.5)
+                    x /= r;
+                if (random(rseed)/(double)RAND_MAX > 0.5)
+                    y /= r;
+                count = 0;
+            }
+            else {
+                x /= r;
+                y /= r;
+            }
+        }
+
+        x = (x+1)*0.5*maxsize;
+        y = (y+1)*0.5*maxsize;
+
+        return point<T>(x,y);
+    }
+
+    template <typename Index>
+    struct edge {
+        Index start;
+        Index end;
+        edge(Index _p1, Index _p2) : start(_p1), end(_p2) {};
+    };
+
+    template <typename T>
+    std::ostream& operator <<(std::ostream& _ostr, point<T> _p) {
+        return _ostr << '(' << _p.x << ',' << _p.y << ')';
+    }
+
+    template <typename T>
+    std::istream& operator >>(std::istream& _istr, point<T> _p) {
+        return _istr >> _p.x >> _p.y;
+    }
+
+    template <typename T>
+    bool operator ==(point<T> p1, point<T> p2) {
+        return (p1.x == p2.x && p1.y == p2.y);
+    }
+
+    template <typename T>
+    bool operator !=(point<T> p1, point<T> p2) {
+        return !(p1 == p2);
+    }
+
+    template <typename T>
+    double cross_product(const point<T>& start, const point<T>& end1, const point<T>& end2) {
+        return ((end1.x-start.x)*(end2.y-start.y)-(end2.x-start.x)*(end1.y-start.y));
+    }
+
+    // Timing functions are based on TBB to always obtain wall-clock time
+    typedef tbb::tick_count my_time_t;
+
+    my_time_t gettime() {
+        return tbb::tick_count::now();
+    }
+
+    double time_diff(my_time_t start, my_time_t end) {
+        return (end-start).seconds();
+    }
+
+    void WriteResults(size_t nthreads, double initTime, double calcTime) {
+        if(VERBOSE) {
+            std::cout << " Step by step hull constuction:" << std::endl;
+            for(size_t i = 0; i < OUTPUT.size(); ++i)
+                std::cout << OUTPUT[i] << std::endl;
+        }
+
+        std::cout
+            << "  Number of nodes:" << cfg::MAXPOINTS
+            << "  Number of threads:" << nthreads
+            << "  Initialization time:" << initTime
+            << "  Calculation time:" << calcTime
+            << std::endl;
+    }
+};
+
+#endif // __CONVEX_HULL_H__
diff --git a/examples/parallel_reduce/convex_hull/convex_hull_bench.cpp b/examples/parallel_reduce/convex_hull/convex_hull_bench.cpp
new file mode 100644
index 0000000..5b379f3
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/convex_hull_bench.cpp
@@ -0,0 +1,631 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "convex_hull.h"
+
+typedef util::point<double> point_t;
+
+#define USETBB      1
+#define USECONCVEC  1
+#define INIT_ONCE   1
+
+#if !USETBB // Serial implementation of Quick Hull algorithm
+
+typedef std::vector< point_t > pointVec_t;
+
+// C++ style serial code
+
+class FillRNDPointsVector : public std::unary_function<point_t&, void> {
+    unsigned int rseed;
+    size_t       count;
+public:
+    FillRNDPointsVector() : rseed(1), count(0) {}
+
+    void operator()(point_t& p) {
+        p = util::GenerateRNDPoint<double>(count, rseed);
+    }
+};
+
+void initialize(pointVec_t &points) {
+    points.clear();
+    points.resize(cfg::MAXPOINTS);
+
+    std::for_each(points.begin(), points.end(), FillRNDPointsVector());
+}
+
+class FindXExtremum : public std::unary_function<const point_t&, void> {
+public:
+    typedef enum {
+        minX, maxX
+    } extremumType;
+
+    FindXExtremum(const point_t& frstPoint, extremumType exType_)
+        : extrXPoint(frstPoint), exType(exType_) {}
+
+    void operator()(const point_t& p) {
+        if(closerToExtremum(p))
+            extrXPoint = p;
+    }
+
+    operator point_t () {
+        return extrXPoint;
+    }
+
+private:
+    const extremumType   exType;
+    point_t              extrXPoint;
+
+    bool closerToExtremum(const point_t &p) const {
+        switch(exType) {
+        case minX:
+            return p.x<extrXPoint.x; break;
+        case maxX:
+            return p.x>extrXPoint.x; break;
+        }
+    }
+};
+
+template <FindXExtremum::extremumType type>
+point_t extremum(const pointVec_t &points) {
+    assert(!points.empty());
+    return std::for_each(points.begin(), points.end(), FindXExtremum(points[0], type));
+}
+
+class SplitByCP : public std::unary_function<const point_t&, void> {
+    pointVec_t          &reducedSet;
+    point_t              p1, p2;
+    point_t              farPoint;
+    double               howFar;
+public:
+
+    SplitByCP( point_t _p1, point_t _p2, pointVec_t &_reducedSet)
+        : p1(_p1), p2(_p2), reducedSet(_reducedSet), howFar(0), farPoint(p1) {}
+
+    void operator()(const point_t& p) {
+        double cp;
+        if( (p != p1) && (p != p2) ) {
+            cp = util::cross_product(p1, p2, p);
+            if(cp>0) {
+                reducedSet.push_back(p);
+                if(cp>howFar) {
+                    farPoint = p;
+                    howFar   = cp;
+                }
+            }
+        }
+    }
+
+    operator point_t (){
+        return farPoint;
+    }
+};
+
+point_t divide(const pointVec_t &P, pointVec_t &P_reduced, const point_t &p1, const point_t &p2) {
+    SplitByCP splitByCP(p1, p2, P_reduced);
+    point_t farPoint = std::for_each(P.begin(), P.end(), splitByCP);
+
+    if(util::VERBOSE) {
+        std::stringstream ss;
+        ss << P.size() << " nodes in bucket"<< ", "
+            << "dividing by: [ " << p1 << ", " << p2 << " ], "
+            << "farthest node: " << farPoint;
+        util::OUTPUT.push_back(ss.str());
+    }
+
+    return farPoint;
+}
+
+void divide_and_conquer(const pointVec_t &P, pointVec_t &H, point_t p1, point_t p2) {
+    if (P.size()<2) {
+        H.push_back(p1);
+        H.insert(H.end(), P.begin(), P.end());
+    }
+    else {
+        pointVec_t P_reduced;
+        pointVec_t H1, H2;
+        point_t p_far;
+
+        p_far = divide(P, P_reduced, p1, p2);
+
+        divide_and_conquer(P_reduced, H1, p1, p_far);
+        divide_and_conquer(P_reduced, H2, p_far, p2);
+
+        H.insert(H.end(), H1.begin(), H1.end());
+        H.insert(H.end(), H2.begin(), H2.end());
+    }
+}
+
+void quickhull(const pointVec_t &points, pointVec_t &hull) {
+    hull.clear();
+
+    point_t p_maxx = extremum<FindXExtremum::maxX>(points);
+    point_t p_minx = extremum<FindXExtremum::minX>(points);
+
+    pointVec_t H;
+
+    divide_and_conquer(points, hull, p_maxx, p_minx);
+    divide_and_conquer(points, H, p_minx, p_maxx);
+    hull.insert(hull.end(), H.begin(), H.end());
+}
+
+
+int main(int argc, char* argv[]) {
+    util::ParseInputArgs(argc, argv);
+
+    pointVec_t      points;
+    pointVec_t      hull;
+    util::my_time_t tm_init, tm_start, tm_end;
+
+    std::cout << "Starting serial version of QUICK HULL algorithm" << std::endl;
+
+    tm_init = util::gettime();
+    initialize(points);
+    tm_start = util::gettime();
+    quickhull(points, hull);
+    tm_end = util::gettime();
+
+    util::WriteResults(1, util::time_diff(tm_init, tm_start),
+        util::time_diff(tm_start, tm_end));
+}
+
+#else // USETBB - parallel version of Quick Hull algorithm
+
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_for.h"
+#include "tbb/parallel_reduce.h"
+#include "tbb/blocked_range.h"
+
+typedef tbb::blocked_range<size_t> range_t;
+
+#if USECONCVEC
+#include "tbb/concurrent_vector.h"
+
+typedef tbb::concurrent_vector<point_t> pointVec_t;
+
+void appendVector(const point_t* src, size_t srcSize, pointVec_t& dest) {
+    std::copy(src, src + srcSize, dest.begin() + dest.grow_by(srcSize));
+}
+
+void appendVector(const pointVec_t& src, pointVec_t& dest) {
+    std::copy(src.begin(), src.end(), dest.begin() + dest.grow_by(src.size()));
+}
+
+#else // USE STD::VECTOR - include spin_mutex.h and lock vector operations
+#include "tbb/spin_mutex.h"
+
+typedef tbb::spin_mutex      mutex_t;
+typedef std::vector<point_t> pointVec_t;
+
+void appendVector(mutex_t& insertMutex, const pointVec_t& src, pointVec_t& dest) {
+    mutex_t::scoped_lock lock(insertMutex);
+    dest.insert(dest.end(), src.begin(), src.end());
+}
+
+void appendVector(mutex_t& insertMutex, const point_t* src, size_t srcSize,
+                  pointVec_t& dest) {
+    mutex_t::scoped_lock lock(insertMutex);
+    dest.insert(dest.end(), src, src + srcSize);
+}
+
+#endif // USECONCVEC
+
+class FillRNDPointsVector {
+    pointVec_t          &points;
+    mutable unsigned int rseed;
+public:
+    static const size_t  grainSize = cfg::GENERATE_GS;
+#if !USECONCVEC
+    static mutex_t       pushBackMutex;
+#endif // USECONCVEC
+    FillRNDPointsVector(pointVec_t& _points)
+        : points(_points), rseed(1) {}
+
+    FillRNDPointsVector(const FillRNDPointsVector& other)
+        : points(other.points), rseed(other.rseed+1) {}
+
+    void operator()(const range_t& range) const {
+        const size_t i_end = range.end();
+        size_t count = 0;
+        for(size_t i = range.begin(); i != i_end; ++i) {
+#if USECONCVEC
+            points.push_back(util::GenerateRNDPoint<double>(count, rseed));
+#else // Locked push_back to a not thread-safe STD::VECTOR
+            {
+                mutex_t::scoped_lock lock(pushBackMutex);
+                points.push_back(util::GenerateRNDPoint<double>(count, rseed));
+            }
+#endif // USECONCVEC
+        }
+    }
+};
+
+class FillRNDPointsVector_buf {
+    pointVec_t          &points;
+    mutable unsigned int rseed;
+public:
+    static const size_t  grainSize = cfg::GENERATE_GS;
+#if !USECONCVEC
+    static mutex_t       insertMutex;
+#endif // USECONCVEC
+
+    FillRNDPointsVector_buf(pointVec_t& _points)
+        : points(_points), rseed(1) {}
+
+    FillRNDPointsVector_buf(const FillRNDPointsVector_buf& other)
+        : points(other.points), rseed(other.rseed+1) {}
+
+    void operator()(const range_t& range) const {
+        const size_t i_end = range.end();
+        size_t count = 0, j = 0;
+        point_t tmp_vec[grainSize];
+        for(size_t i=range.begin(); i!=i_end; ++i) {
+            tmp_vec[j++] = util::GenerateRNDPoint<double>(count, rseed);
+        }
+#if USECONCVEC
+        appendVector(tmp_vec, j, points);
+#else // USE STD::VECTOR
+        appendVector(insertMutex, tmp_vec, j, points);
+#endif // USECONCVEC
+    }   
+};
+
+#if !USECONCVEC
+mutex_t FillRNDPointsVector::pushBackMutex   = mutex_t();
+mutex_t FillRNDPointsVector_buf::insertMutex = mutex_t();
+#endif
+
+template<typename BodyType>
+void initialize(pointVec_t &points) {
+    points.clear();
+
+    tbb::parallel_for(range_t(0, cfg::MAXPOINTS, BodyType::grainSize), BodyType(points));
+}
+
+class FindXExtremum {
+public:
+    typedef enum {
+        minX, maxX
+    } extremumType;
+
+    static const size_t  grainSize = cfg::FINDEXT_GS;
+
+    FindXExtremum(const pointVec_t& points_, extremumType exType_)
+        : points(points_), exType(exType_), extrXPoint(points[0]) {}
+
+    FindXExtremum(const FindXExtremum& fxex, tbb::split)
+        : points(fxex.points), exType(fxex.exType), extrXPoint(fxex.extrXPoint) {}
+
+    void operator()(const range_t& range) {
+        const size_t i_end = range.end();
+        if(!range.empty()) {
+            for(size_t i = range.begin(); i != i_end; ++i) {
+                if(closerToExtremum(points[i])) {
+                    extrXPoint = points[i];
+                }
+            }
+        }
+    }
+
+    void join(const FindXExtremum &rhs) {
+        if(closerToExtremum(rhs.extrXPoint)) {
+            extrXPoint = rhs.extrXPoint;
+        }
+    }
+
+    point_t extremeXPoint() {
+        return extrXPoint;
+    }
+
+private:
+    const pointVec_t    &points;
+    const extremumType   exType;
+    point_t              extrXPoint;
+    bool closerToExtremum(const point_t &p) const {
+        switch(exType) {
+        case minX:
+            return p.x<extrXPoint.x; break;
+        case maxX:
+            return p.x>extrXPoint.x; break;
+        }
+        return false; // avoid warning
+    }
+};
+
+template <FindXExtremum::extremumType type>
+point_t extremum(const pointVec_t &P) {
+    FindXExtremum fxBody(P, type);
+    tbb::parallel_reduce(range_t(0, P.size(), FindXExtremum::grainSize), fxBody);
+    return fxBody.extremeXPoint();
+}
+
+class SplitByCP {
+    const pointVec_t    &initialSet;
+    pointVec_t          &reducedSet;
+    point_t              p1, p2;
+    point_t              farPoint;
+    double               howFar;
+public:
+    static const size_t grainSize = cfg::DIVIDE_GS;
+#if !USECONCVEC
+    static mutex_t      pushBackMutex;
+#endif // USECONCVEC
+
+    SplitByCP( point_t _p1, point_t _p2,
+        const pointVec_t &_initialSet, pointVec_t &_reducedSet)
+        : p1(_p1), p2(_p2),
+        initialSet(_initialSet), reducedSet(_reducedSet),
+        howFar(0), farPoint(p1) {
+    }
+
+    SplitByCP( SplitByCP& sbcp, tbb::split )
+        : p1(sbcp.p1), p2(sbcp.p2),
+        initialSet(sbcp.initialSet), reducedSet(sbcp.reducedSet),
+        howFar(0), farPoint(p1) {}
+
+    void operator()( const range_t& range ) {
+        const size_t i_end = range.end();
+        double cp;
+        for(size_t i=range.begin(); i!=i_end; ++i) {
+            if( (initialSet[i] != p1) && (initialSet[i] != p2) ) {
+                cp = util::cross_product(p1, p2, initialSet[i]);
+                if(cp>0) {
+#if USECONCVEC
+                    reducedSet.push_back(initialSet[i]);
+#else // Locked push_back to a not thread-safe STD::VECTOR
+                    {
+                        mutex_t::scoped_lock lock(pushBackMutex);
+                        reducedSet.push_back(initialSet[i]);
+                    }
+#endif // USECONCVEC
+                    if(cp>howFar) {
+                        farPoint = initialSet[i];
+                        howFar   = cp;
+                    }
+                }
+            }
+        }
+    }
+
+    void join(const SplitByCP& rhs) {
+        if(rhs.howFar>howFar) {
+            howFar   = rhs.howFar;
+            farPoint = rhs.farPoint;
+        }
+    }
+
+    point_t farthestPoint() const {
+        return farPoint;
+    }
+};
+
+class SplitByCP_buf {
+    const pointVec_t    &initialSet;
+    pointVec_t          &reducedSet;
+    point_t              p1, p2;
+    point_t              farPoint;
+    double               howFar;
+public:
+    static const size_t  grainSize = cfg::DIVIDE_GS;
+#if !USECONCVEC
+    static mutex_t       insertMutex;
+#endif // USECONCVEC
+
+    SplitByCP_buf( point_t _p1, point_t _p2,
+        const pointVec_t &_initialSet, pointVec_t &_reducedSet)
+        : p1(_p1), p2(_p2),
+        initialSet(_initialSet), reducedSet(_reducedSet),
+        howFar(0), farPoint(p1) {}
+
+    SplitByCP_buf(SplitByCP_buf& sbcp, tbb::split)
+        : p1(sbcp.p1), p2(sbcp.p2),
+        initialSet(sbcp.initialSet), reducedSet(sbcp.reducedSet),
+        howFar(0), farPoint(p1) {}
+
+    void operator()(const range_t& range) {
+        const size_t i_end = range.end();
+        size_t j = 0;
+        double cp;
+        point_t tmp_vec[grainSize];
+        for(size_t i = range.begin(); i != i_end; ++i) {
+            if( (initialSet[i] != p1) && (initialSet[i] != p2) ) {            
+                cp = util::cross_product(p1, p2, initialSet[i]);
+                if(cp>0) {
+                    tmp_vec[j++] = initialSet[i];
+                    if(cp>howFar) {
+                        farPoint = initialSet[i];
+                        howFar   = cp;
+                    }
+                }
+            }
+        }
+
+#if USECONCVEC
+        appendVector(tmp_vec, j, reducedSet);
+#else // USE STD::VECTOR
+        appendVector(insertMutex, tmp_vec, j, reducedSet);
+#endif // USECONCVEC
+    }
+
+    void join(const SplitByCP_buf& rhs) {
+        if(rhs.howFar>howFar) {
+            howFar   = rhs.howFar;
+            farPoint = rhs.farPoint;
+        }
+    }
+
+    point_t farthestPoint() const {
+        return farPoint;
+    }
+};
+
+#if !USECONCVEC
+mutex_t SplitByCP::pushBackMutex   = mutex_t();
+mutex_t SplitByCP_buf::insertMutex = mutex_t();
+#endif
+
+template <typename BodyType>
+point_t divide(const pointVec_t &P, pointVec_t &P_reduced,
+              const point_t &p1, const point_t &p2) {
+    BodyType body(p1, p2, P, P_reduced);
+    tbb::parallel_reduce(range_t(0, P.size(), BodyType::grainSize), body);
+
+    if(util::VERBOSE) {
+        std::stringstream ss;
+        ss << P.size() << " nodes in bucket"<< ", "
+            << "dividing by: [ " << p1 << ", " << p2 << " ], "
+            << "farthest node: " << body.farthestPoint();
+        util::OUTPUT.push_back(ss.str());
+    }
+
+    return body.farthestPoint();
+}
+
+void divide_and_conquer(const pointVec_t &P, pointVec_t &H,
+                        point_t p1, point_t p2, bool buffered) {
+    if (P.size()<2) {
+        H.push_back(p1);
+#if USECONCVEC
+        appendVector(P, H);
+#else // insert into STD::VECTOR
+        H.insert(H.end(), P.begin(), P.end());
+#endif
+    }
+    else {
+        pointVec_t P_reduced;
+        pointVec_t H1, H2;
+        point_t p_far;
+
+        if(buffered) {
+            p_far = divide<SplitByCP_buf>(P, P_reduced, p1, p2);
+        } else {
+            p_far = divide<SplitByCP>(P, P_reduced, p1, p2);
+        }
+
+        divide_and_conquer(P_reduced, H1, p1, p_far, buffered);
+        divide_and_conquer(P_reduced, H2, p_far, p2, buffered);
+
+#if USECONCVEC
+        appendVector(H1, H);
+        appendVector(H2, H);
+#else // insert into STD::VECTOR
+        H.insert(H.end(), H1.begin(), H1.end());
+        H.insert(H.end(), H2.begin(), H2.end());
+#endif
+    }
+}
+
+void quickhull(const pointVec_t &points, pointVec_t &hull, bool buffered) {
+    hull.clear();
+
+    point_t p_maxx = extremum<FindXExtremum::maxX>(points);
+    point_t p_minx = extremum<FindXExtremum::minX>(points);
+
+    pointVec_t H;
+
+    divide_and_conquer(points, hull, p_maxx, p_minx, buffered);
+    divide_and_conquer(points, H, p_minx, p_maxx, buffered);
+#if USECONCVEC
+    appendVector(H, hull);
+#else // STD::VECTOR
+    hull.insert(hull.end(), H.begin(), H.end());
+#endif // USECONCVEC
+}
+
+int main(int argc, char* argv[]) {
+    util::ParseInputArgs(argc, argv);
+
+    pointVec_t      points;
+    pointVec_t      hull;
+    size_t          nthreads;
+    util::my_time_t tm_init, tm_start, tm_end;
+    pointVec_t      tmp_points;
+
+#if USECONCVEC
+    std::cout << "Starting TBB unbufferred push_back version of QUICK HULL algorithm" << std::endl;
+#else
+    std::cout << "Starting STL locked unbufferred push_back version of QUICK HULL algorithm" << std::endl;
+#endif // USECONCVEC
+
+    for(nthreads=cfg::NUM_THREADS_START; nthreads<=cfg::NUM_THREADS_END;
+        ++nthreads) {
+        tbb::task_scheduler_init init(nthreads);
+#if INIT_ONCE
+        if(nthreads==cfg::NUM_THREADS_START) {
+            tm_init = util::gettime();
+            initialize<FillRNDPointsVector>(points);
+        }
+        else /* timing generation for stats, but use original data set */ {
+            tm_init = util::gettime();
+            initialize<FillRNDPointsVector>(tmp_points);
+        }
+#else
+        tm_init = util::gettime();
+        initialize<FillRNDPointsVector>(points);
+#endif // INIT_ONCE
+        tm_start = util::gettime();
+        quickhull(points, hull, false);
+        tm_end = util::gettime();
+
+        util::WriteResults(nthreads, util::time_diff(tm_init, tm_start),
+            util::time_diff(tm_start, tm_end));
+    }
+
+#if USECONCVEC 
+    std::cout << "Starting TBB bufferred version of QUICK HULL algorithm" << std::endl;
+#else
+    std::cout << "Starting STL locked bufferred version of QUICK HULL algorithm" << std::endl;
+#endif
+
+    for(nthreads=cfg::NUM_THREADS_START; nthreads<=cfg::NUM_THREADS_END;
+        ++nthreads) {
+        tbb::task_scheduler_init init(nthreads);
+#if INIT_ONCE
+        if(nthreads==cfg::NUM_THREADS_START) {
+            tm_init = util::gettime();
+            initialize<FillRNDPointsVector_buf>(points);
+        }
+        else /* timing generation for stats, but use original data set */ {
+            tm_init = util::gettime();
+            initialize<FillRNDPointsVector_buf>(tmp_points);
+        }
+#else
+        tm_init = util::gettime();
+        initialize<FillRNDPointsVector_buf>(points);
+#endif // INIT_ONCE
+        tm_start = util::gettime();
+        quickhull(points, hull, true);
+        tm_end = util::gettime();
+
+        util::WriteResults(nthreads, util::time_diff(tm_init, tm_start),
+            util::time_diff(tm_start, tm_end));
+    }    
+
+    return 0;
+}
+
+#endif // USETBB
diff --git a/examples/parallel_reduce/convex_hull/convex_hull_sample.cpp b/examples/parallel_reduce/convex_hull/convex_hull_sample.cpp
new file mode 100644
index 0000000..9c02262
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/convex_hull_sample.cpp
@@ -0,0 +1,264 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "convex_hull.h"
+
+#include "tbb/task_scheduler_init.h"
+#include "tbb/blocked_range.h"
+#include "tbb/parallel_for.h"
+#include "tbb/parallel_reduce.h"
+#include "tbb/tick_count.h"
+#include "tbb/concurrent_vector.h"
+
+typedef util::point<double>               point_t;
+typedef tbb::concurrent_vector< point_t > pointVec_t;
+typedef tbb::blocked_range<size_t>        range_t;
+
+void appendVector(const point_t* src, size_t srcSize, pointVec_t& dest) {
+    std::copy(src, src + srcSize, dest.begin() + dest.grow_by(srcSize));
+}
+
+void appendVector(const pointVec_t& src, pointVec_t& dest) {
+    std::copy(src.begin(), src.end(), dest.begin() + dest.grow_by(src.size()));
+}
+
+class FillRNDPointsVector_buf {
+    pointVec_t          &points;
+    mutable unsigned int rseed;
+public:
+    static const size_t  grainSize = cfg::GENERATE_GS;
+
+    FillRNDPointsVector_buf(pointVec_t& _points)
+        : points(_points), rseed(1) {}
+
+    FillRNDPointsVector_buf(const FillRNDPointsVector_buf& other)
+        : points(other.points), rseed(other.rseed+1) {}
+
+    void operator()(const range_t& range) const {
+        const size_t i_end = range.end();
+        size_t count = 0, j = 0;
+        point_t tmp_vec[grainSize];
+        for(size_t i=range.begin(); i!=i_end; ++i) {
+            tmp_vec[j++] = util::GenerateRNDPoint<double>(count, rseed);
+        }
+        appendVector(tmp_vec, j, points);
+    }
+};
+
+void initialize_buf(pointVec_t &points) {
+    points.clear();
+
+    tbb::parallel_for(range_t(0, cfg::MAXPOINTS,
+        FillRNDPointsVector_buf::grainSize), FillRNDPointsVector_buf(points));
+}
+
+class FindXExtremum {
+public:
+    typedef enum {
+        minX, maxX
+    } extremumType;
+
+    static const size_t  grainSize = cfg::FINDEXT_GS;
+
+    FindXExtremum(const pointVec_t& points_, extremumType exType_)
+        : points(points_), exType(exType_), extrXPoint(points[0]) {}
+
+    FindXExtremum(const FindXExtremum& fxex, tbb::split)
+        : points(fxex.points), exType(fxex.exType), extrXPoint(fxex.extrXPoint) {}
+
+    void operator()(const range_t& range) {
+        const size_t i_end = range.end();
+        if(!range.empty()) {
+            for(size_t i = range.begin(); i != i_end; ++i) {
+                if(closerToExtremum(points[i])) {
+                    extrXPoint = points[i];
+                }
+            }
+        }
+    }
+
+    void join(const FindXExtremum &rhs) {
+        if(closerToExtremum(rhs.extrXPoint)) {
+            extrXPoint = rhs.extrXPoint;
+        }
+    }
+
+    point_t extremeXPoint() {
+        return extrXPoint;
+    }
+
+private:
+    const pointVec_t    &points;
+    const extremumType   exType;
+    point_t              extrXPoint;
+    bool closerToExtremum(const point_t &p) const {
+        switch(exType) {
+        case minX:
+            return p.x<extrXPoint.x; break;
+        case maxX:
+            return p.x>extrXPoint.x; break;
+        }
+        return false; // avoid warning
+    }
+};
+
+template <FindXExtremum::extremumType type>
+point_t extremum(const pointVec_t &P) {
+    FindXExtremum fxBody(P, type);
+    tbb::parallel_reduce(range_t(0, P.size(), FindXExtremum::grainSize), fxBody);
+    return fxBody.extremeXPoint();
+}
+
+class SplitByCP_buf {
+    const pointVec_t    &initialSet;
+    pointVec_t          &reducedSet;
+    point_t              p1, p2;
+    point_t              farPoint;
+    double               howFar;
+public:
+    static const size_t  grainSize = cfg::DIVIDE_GS;
+
+    SplitByCP_buf( point_t _p1, point_t _p2,
+        const pointVec_t &_initialSet, pointVec_t &_reducedSet)
+        : p1(_p1), p2(_p2),
+        initialSet(_initialSet), reducedSet(_reducedSet),
+        howFar(0), farPoint(p1) {}
+
+    SplitByCP_buf(SplitByCP_buf& sbcp, tbb::split)
+        : p1(sbcp.p1), p2(sbcp.p2),
+        initialSet(sbcp.initialSet), reducedSet(sbcp.reducedSet),
+        howFar(0), farPoint(p1) {}
+
+    void operator()(const range_t& range) {
+        const size_t i_end = range.end();
+        size_t j = 0;
+        double cp;
+        point_t tmp_vec[grainSize];
+        for(size_t i = range.begin(); i != i_end; ++i) {
+            if( (initialSet[i] != p1) && (initialSet[i] != p2) ) {            
+                cp = util::cross_product(p1, p2, initialSet[i]);
+                if(cp>0) {
+                    tmp_vec[j++] = initialSet[i];
+                    if(cp>howFar) {
+                        farPoint = initialSet[i];
+                        howFar   = cp;
+                    }
+                }
+            }
+        }
+
+        appendVector(tmp_vec, j, reducedSet);
+    }
+
+    void join(const SplitByCP_buf& rhs) {
+        if(rhs.howFar>howFar) {
+            howFar   = rhs.howFar;
+            farPoint = rhs.farPoint;
+        }
+    }
+
+    point_t farthestPoint() const {
+        return farPoint;
+    }
+};
+
+point_t divide_buf(const pointVec_t &P, pointVec_t &P_reduced, 
+                  const point_t &p1, const point_t &p2) {
+    SplitByCP_buf sbcpb(p1, p2, P, P_reduced);
+    tbb::parallel_reduce(range_t(0, P.size(), SplitByCP_buf::grainSize), sbcpb);
+
+    if(util::VERBOSE) {
+        std::stringstream ss;
+        ss << P.size() << " nodes in bucket"<< ", "
+            << "dividing by: [ " << p1 << ", " << p2 << " ], "
+            << "farthest node: " << sbcpb.farthestPoint();
+        util::OUTPUT.push_back(ss.str());
+    }
+
+    return sbcpb.farthestPoint();
+}
+
+void divide_and_conquer_buf(const pointVec_t &P, pointVec_t &H,
+                            point_t p1, point_t p2) {
+    if (P.size()<2) {
+        H.push_back(p1);
+        appendVector(P, H);
+    }
+    else {
+        pointVec_t P_reduced;
+        pointVec_t H1, H2;
+
+        point_t p_far = divide_buf(P, P_reduced, p1, p2);
+
+        divide_and_conquer_buf(P_reduced, H1, p1, p_far);
+        divide_and_conquer_buf(P_reduced, H2, p_far, p2);
+
+        appendVector(H1, H);
+        appendVector(H2, H);
+    }
+}
+
+void quickhull_buf(const pointVec_t &points, pointVec_t &hull) {
+    hull.clear();
+
+    point_t p_maxx = extremum<FindXExtremum::maxX>(points);
+    point_t p_minx = extremum<FindXExtremum::minX>(points);
+
+    pointVec_t H;
+
+    divide_and_conquer_buf(points, hull, p_maxx, p_minx);
+    divide_and_conquer_buf(points, H, p_minx, p_maxx);
+
+    appendVector(H, hull);
+}
+
+int main(int argc, char* argv[]) {
+    util::ParseInputArgs(argc, argv);
+
+    pointVec_t      points;
+    pointVec_t      hull;
+    size_t          nthreads;
+    util::my_time_t tm_init, tm_start, tm_end;
+
+    std::cout << " Starting TBB-bufferred version of QUICK HULL algorithm" << std::endl;
+
+    for(nthreads=cfg::NUM_THREADS_START; nthreads<=cfg::NUM_THREADS_END;
+        ++nthreads) {
+        tbb::task_scheduler_init init(nthreads);
+        tm_init = util::gettime();
+        initialize_buf(points);
+        tm_start = util::gettime();
+        quickhull_buf(points, hull);
+        tm_end = util::gettime();
+
+        util::WriteResults(nthreads, util::time_diff(tm_init, tm_start),
+            util::time_diff(tm_start, tm_end));
+    }
+
+    return 0;
+}
diff --git a/examples/parallel_reduce/convex_hull/index.html b/examples/parallel_reduce/convex_hull/index.html
new file mode 100644
index 0000000..009148b
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/index.html
@@ -0,0 +1,55 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Parallel version of convex hull algorithm (quick hull).
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="convex_hull_sample.cpp">convex_hull_sample.cpp</A>
+<DD>Source code for TBB version of example.
+<DT><A HREF="convex_hull_bench.cpp">convex_hull_bench.cpp</A>
+<DD>Source code for version of example that compares serial and TBB buffered and unbuffered implementations.
+<DT><A HREF="convex_hull.h">convex_hull.h</A>
+<DD>Include file for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>convex_hull_sample [<I>S</I>] [<I>M</I>[:<I>N</I>]] [-v]</TT>
+<DD><I>S</I> is the number of points (problem size).
+    <I>M:N</I> are a range of numbers of threads to be used.
+    Use the -v option to turn on verbose output.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with a small problem size and the desired number of threads, e.g., <TT>convex_hull_sample 500000 4</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/examples/parallel_reduce/convex_hull/vc7.1/convex_hull.sln b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull.sln
new file mode 100644
index 0000000..429292e
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull.sln
@@ -0,0 +1,32 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convex_hull_bench", "convex_hull_bench.vcproj", "{6DF21C04-95F4-4FF0-89F3-3688888E10D5}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convex_hull_sample", "convex_hull_sample.vcproj", "{B4A47D64-981B-4167-AE3D-CDAA8E18D2B3}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{6DF21C04-95F4-4FF0-89F3-3688888E10D5}.Debug.ActiveCfg = Debug|Win32
+		{6DF21C04-95F4-4FF0-89F3-3688888E10D5}.Debug.Build.0 = Debug|Win32
+		{6DF21C04-95F4-4FF0-89F3-3688888E10D5}.Release.ActiveCfg = Release|Win32
+		{6DF21C04-95F4-4FF0-89F3-3688888E10D5}.Release.Build.0 = Release|Win32
+		{B4A47D64-981B-4167-AE3D-CDAA8E18D2B3}.Debug.ActiveCfg = Debug|Win32
+		{B4A47D64-981B-4167-AE3D-CDAA8E18D2B3}.Debug.Build.0 = Debug|Win32
+		{B4A47D64-981B-4167-AE3D-CDAA8E18D2B3}.Release.ActiveCfg = Release|Win32
+		{B4A47D64-981B-4167-AE3D-CDAA8E18D2B3}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionItems) = postSolution
+		..\index.html = ..\index.html
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_reduce/convex_hull/vc7.1/convex_hull.suo b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull.suo
new file mode 100644
index 0000000..601009e
Binary files /dev/null and b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull.suo differ
diff --git a/examples/parallel_reduce/convex_hull/vc7.1/convex_hull_bench.vcproj b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull_bench.vcproj
new file mode 100644
index 0000000..6884723
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull_bench.vcproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="convex_hull_bench"
+	ProjectGUID="{6DF21C04-95F4-4FF0-89F3-3688888E10D5}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\convex_hull_bench.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File
+				RelativePath="..\convex_hull.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_reduce/convex_hull/vc7.1/convex_hull_sample.vcproj b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull_sample.vcproj
new file mode 100644
index 0000000..346bffc
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/vc7.1/convex_hull_sample.vcproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="convex_hull_sample"
+	ProjectGUID="{B4A47D64-981B-4167-AE3D-CDAA8E18D2B3}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\convex_hull_sample.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File
+				RelativePath="..\convex_hull.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_reduce/convex_hull/vc8/convex_hull.sln b/examples/parallel_reduce/convex_hull/vc8/convex_hull.sln
new file mode 100644
index 0000000..e567081
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/vc8/convex_hull.sln
@@ -0,0 +1,35 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convex_hull_benchmark", "convex_hull_benchmark.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convex_hull_sample", "convex_hull_sample.vcproj", "{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|Win32.Build.0 = Debug|Win32
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|x64.ActiveCfg = Debug|x64
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|x64.Build.0 = Debug|x64
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|Win32.ActiveCfg = Release|Win32
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|Win32.Build.0 = Release|Win32
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|x64.ActiveCfg = Release|x64
+		{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_reduce/convex_hull/vc8/convex_hull.suo b/examples/parallel_reduce/convex_hull/vc8/convex_hull.suo
new file mode 100644
index 0000000..2e4ad4c
Binary files /dev/null and b/examples/parallel_reduce/convex_hull/vc8/convex_hull.suo differ
diff --git a/examples/parallel_reduce/convex_hull/vc8/convex_hull_benchmark.vcproj b/examples/parallel_reduce/convex_hull/vc8/convex_hull_benchmark.vcproj
new file mode 100644
index 0000000..0c93fea
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/vc8/convex_hull_benchmark.vcproj
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="convex_hull_benchmark"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A252A}"
+	RootNamespace="convex_hull_benchmark"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="3"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="3"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\convex_hull_bench.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header files"
+			>
+			<File
+				RelativePath="..\convex_hull.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_reduce/convex_hull/vc8/convex_hull_sample.vcproj b/examples/parallel_reduce/convex_hull/vc8/convex_hull_sample.vcproj
new file mode 100644
index 0000000..c6b6823
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/vc8/convex_hull_sample.vcproj
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="convex_hull_sample"
+	ProjectGUID="{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}"
+	RootNamespace="convex_hull_sample"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="3"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="3"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy /Y "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\convex_hull_sample.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\convex_hull.h"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj b/examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..ecd0d04
--- /dev/null
+++ b/examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj
@@ -0,0 +1,434 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A146114A0B94631F000C6B18 /* convex_hull_bench.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A14611490B94631F000C6B18 /* convex_hull_bench.cpp */; };
+		A1F593A60B8F042A00073279 /* convex_hull_sample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594FC0B8F4F1000073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F594FD0B8F4F1800073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594F40B8F4E7700073279 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F594FD0B8F4F1800073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		A14611490B94631F000C6B18 /* convex_hull_bench.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convex_hull_bench.cpp; path = ../convex_hull_bench.cpp; sourceTree = SOURCE_ROOT; };
+		A146114C0B9463CB000C6B18 /* convex_hull.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = convex_hull.h; path = ../convex_hull.h; sourceTree = SOURCE_ROOT; };
+		A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convex_hull_sample.cpp; path = ../convex_hull_sample.cpp; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+		A1F594EB0B8F4B5600073279 /* convex_hull_bench */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = convex_hull_bench; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F594FA0B8F4EE000073279 /* convex_hull_sample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = convex_hull_sample; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594E90B8F4B5600073279 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F594FC0B8F4F1000073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* convex_hull */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = convex_hull;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				A146114C0B9463CB000C6B18 /* convex_hull.h */,
+				A14611490B94631F000C6B18 /* convex_hull_bench.cpp */,
+				A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				A1F594EB0B8F4B5600073279 /* convex_hull_bench */,
+				A1F594FA0B8F4EE000073279 /* convex_hull_sample */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* convex_hull_sample */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "convex_hull_sample" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = convex_hull_sample;
+			productInstallPath = "$(HOME)/bin";
+			productName = convex_hull;
+			productReference = A1F594FA0B8F4EE000073279 /* convex_hull_sample */;
+			productType = "com.apple.product-type.tool";
+		};
+		A1F594EA0B8F4B5600073279 /* convex_hull_bench */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */;
+			buildPhases = (
+				A1F594E80B8F4B5600073279 /* Sources */,
+				A1F594E90B8F4B5600073279 /* Frameworks */,
+				A1F594F40B8F4E7700073279 /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = convex_hull_bench;
+			productName = convex_hull_bench;
+			productReference = A1F594EB0B8F4B5600073279 /* convex_hull_bench */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* convex_hull */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* convex_hull_sample */,
+				A1F594EA0B8F4B5600073279 /* convex_hull_bench */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593A60B8F042A00073279 /* convex_hull_sample.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A1F594E80B8F4B5600073279 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A146114A0B94631F000C6B18 /* convex_hull_bench.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = convex_hull_sample;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = convex_hull_sample;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = convex_hull_sample;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = convex_hull_sample;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+		A1F594EF0B8F4B8200073279 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = convex_hull_bench;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		A1F594F00B8F4B8200073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = convex_hull_bench;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F594F10B8F4B8200073279 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = convex_hull_bench;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		A1F594F20B8F4B8200073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PREBINDING = NO;
+				PRODUCT_NAME = convex_hull_bench;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "convex_hull_sample" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A1F594EF0B8F4B8200073279 /* Debug */,
+				A1F594F00B8F4B8200073279 /* Debug64 */,
+				A1F594F10B8F4B8200073279 /* Release */,
+				A1F594F20B8F4B8200073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/parallel_reduce/index.html b/examples/parallel_reduce/index.html
new file mode 100644
index 0000000..7264a49
--- /dev/null
+++ b/examples/parallel_reduce/index.html
@@ -0,0 +1,27 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has examples of the template <code>parallel_reduce</code>.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="convex_hull/index.html">convex_hull</A>
+<DD>Parallel version of convex hull algorithm (quick hull).
+<DT><A HREF="primes/index.html">primes</A>
+<DD>Parallel version of the Sieve of Eratosthenes.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/parallel_reduce/primes/Makefile b/examples/parallel_reduce/primes/Makefile
new file mode 100644
index 0000000..b966160
--- /dev/null
+++ b/examples/parallel_reduce/primes/Makefile
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+PROG=primes
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug
+
+clean:
+	rm -f $(PROG) *.o *.d
+
+test:
+	./$(PROG) 100000000 0:4
diff --git a/examples/parallel_reduce/primes/Makefile.windows b/examples/parallel_reduce/primes/Makefile.windows
new file mode 100644
index 0000000..036be9e
--- /dev/null
+++ b/examples/parallel_reduce/primes/Makefile.windows
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Primes
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS)
+debug:
+	$(CXX) *.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS)
+clean:
+	@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest
+test:
+	$(PROG) 100000000 0:4
diff --git a/examples/parallel_reduce/primes/index.html b/examples/parallel_reduce/primes/index.html
new file mode 100644
index 0000000..d47de47
--- /dev/null
+++ b/examples/parallel_reduce/primes/index.html
@@ -0,0 +1,52 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Parallel version of the Sieve of Eratosthenes.
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="primes.cpp">primes.cpp</A>
+<DD>Source code for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>primes [<I>S</I>] [<I>M</I>[:<I>N</I>]] [<I>G</I>]</TT>
+<DD><I>S</I> is the problem size (number of primes).
+    <I>M</I> and <I>N</I> are a range of numbers of threads to be used.
+    <I>G</I> is an optional grain size.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with a small problem size and the desired number of threads, e.g., <TT>primes 100000 4</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/parallel_reduce/primes/primes.cpp b/examples/parallel_reduce/primes/primes.cpp
new file mode 100644
index 0000000..dc327aa
--- /dev/null
+++ b/examples/parallel_reduce/primes/primes.cpp
@@ -0,0 +1,400 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Example program that computes number of prime numbers up to n, 
+// where n is a command line argument.  The algorithm here is a 
+// fairly efficient version of the sieve of Eratosthenes. 
+// The parallel version demonstrates how to use parallel_reduce,
+// and in particular how to exploit lazy splitting.
+
+#include <cassert>
+#include <cstdio>
+#include <cstring>
+#include <math.h>
+#include <cstdlib>
+#include <cctype>
+#include "tbb/parallel_reduce.h"
+#include "tbb/task_scheduler_init.h"
+#include "tbb/tick_count.h"
+
+using namespace std;
+using namespace tbb;
+
+typedef unsigned long Number;
+
+//! If true, then print primes on stdout.
+static bool PrintPrimes = false;
+
+//! Grainsize parameter
+static Number GrainSize = 1000;
+
+class Multiples {
+    inline Number strike( Number start, Number limit, Number stride ) {
+        // Hoist "my_is_composite" into register for sake of speed.
+        bool* is_composite = my_is_composite;
+        assert( stride>=2 );
+        for( ;start<limit; start+=stride ) 
+            is_composite[start] = true;
+        return start;
+    }
+    //! Window into conceptual sieve 
+    bool* my_is_composite;
+
+    //! Indexes into window
+    /** my_striker[k] is an index into my_composite corresponding to
+        an odd multiple multiple of my_factor[k]. */
+    Number* my_striker;
+
+    //! Prime numbers less than m.
+    Number* my_factor;
+public:
+    //! Number of factors in my_factor.
+    Number n_factor;
+    Number m;
+    Multiples( Number n ) : 
+        is_forked_copy(false) 
+    {
+        m = Number(sqrt(double(n)));
+        // Round up to even
+        m += m&1;
+        my_is_composite = new bool[m/2];
+        my_striker = new Number[m/2];
+        my_factor = new Number[m/2];
+        n_factor = 0;
+        memset( my_is_composite, 0, m/2 );
+        for( Number i=3; i<m; i+=2 ) {
+            if( !my_is_composite[i/2] ) {
+                if( PrintPrimes )
+                    printf("%d\n",(int)i);
+                my_striker[n_factor] = strike( i/2, m/2, i );
+                my_factor[n_factor++] = i;
+            }
+        }
+    }
+
+    //! Find primes in range [start,window_size), advancing my_striker as we go.
+    /** Returns number of primes found. */
+    Number find_primes_in_window( Number start, Number window_size ) {
+        bool* is_composite = my_is_composite;
+        memset( is_composite, 0, window_size/2 );
+        for( size_t k=0; k<n_factor; ++k )
+            my_striker[k] = strike( my_striker[k]-m/2, window_size/2, my_factor[k] );
+        Number count = 0;
+        for( Number k=0; k<window_size/2; ++k ) {
+            if( !is_composite[k] ) {
+                if( PrintPrimes )
+                    printf("%ld\n",long(start+2*k+1));
+                ++count;
+            }
+        }
+        return count;
+    }
+
+    ~Multiples() {
+        if( !is_forked_copy )
+            delete[] my_factor;
+        delete[] my_striker;
+        delete[] my_is_composite;
+    }
+
+    //------------------------------------------------------------------------
+    // Begin extra members required by parallel version
+    //------------------------------------------------------------------------
+
+    //! True if this instance was forked from another instance.
+    const bool is_forked_copy;
+
+    Multiples( const Multiples& f, split ) :
+        n_factor(f.n_factor),
+        m(f.m),
+        my_is_composite(NULL),
+        my_striker(NULL),
+        my_factor(f.my_factor),
+        is_forked_copy(true)
+    {}
+
+    bool is_initialized() const {
+        return my_is_composite!=NULL;
+    }
+
+    void initialize( Number start ) { 
+        assert( start>=1 );
+        my_is_composite = new bool[m/2];
+        my_striker = new Number[m/2];
+        for( size_t k=0; k<n_factor; ++k ) {
+            Number f = my_factor[k];
+            Number p = (start-1)/f*f % m;
+            my_striker[k] = (p&1 ? p+2*f : p+f)/2;
+            assert( m/2<=my_striker[k] );
+        }
+    }
+    //------------------------------------------------------------------------
+    // End extra methods required by parallel version
+    //------------------------------------------------------------------------
+};
+
+//! Count number of primes between 0 and n
+/** This is the serial version. */
+Number SerialCountPrimes( Number n ) {
+    // Two is special case
+    Number count = n>=2;
+    if( n>=3 ) {
+        Multiples multiples(n);
+        count += multiples.n_factor;
+        if( PrintPrimes ) 
+            printf("---\n");
+        Number window_size = multiples.m;
+        for( Number j=multiples.m; j<=n; j+=window_size ) { 
+            if( j+window_size>n+1 ) 
+                window_size = n+1-j;
+            count += multiples.find_primes_in_window( j, window_size );
+        }
+    }
+    return count;
+}
+
+//! Range of a sieve window.
+class SieveRange {
+    //! Width of full-size window into sieve.
+    const Number my_stride;
+
+    //! Always multiple of my_stride
+    Number my_begin;
+
+    //! One past last number in window.
+    Number my_end;
+
+    //! Width above which it is worth forking.
+    const Number my_grainsize;
+
+    bool assert_okay() const {
+        assert( my_begin%my_stride==0 );
+        assert( my_begin<=my_end );
+        assert( my_stride<=my_grainsize );
+        return true;
+    } 
+public:
+    //------------------------------------------------------------------------
+    // Begin signatures required by parallel_reduce
+    //------------------------------------------------------------------------
+    bool is_divisible() const {return my_end-my_begin>my_grainsize;}
+    bool empty() const {return my_end<=my_begin;}
+    SieveRange( SieveRange& r, split ) : 
+        my_stride(r.my_stride), 
+        my_grainsize(r.my_grainsize),
+        my_end(r.my_end)
+    {
+        assert( r.is_divisible() );
+        assert( r.assert_okay() );
+        Number middle = r.my_begin + (r.my_end-r.my_begin+r.my_stride-1)/2;
+        middle = middle/my_stride*my_stride;
+        my_begin = middle;
+        r.my_end = middle;
+        assert( assert_okay() );
+        assert( r.assert_okay() );
+    }
+    //------------------------------------------------------------------------
+    // End of signatures required by parallel_reduce
+    //------------------------------------------------------------------------
+    Number begin() const {return my_begin;}
+    Number end() const {return my_end;}
+    SieveRange( Number begin, Number end, Number stride, Number grainsize ) :
+        my_begin(begin),
+        my_end(end),
+        my_stride(stride),      
+        my_grainsize(grainsize<stride?stride:grainsize)
+    {
+        assert( assert_okay() );
+    }
+};
+
+//! Loop body for parallel_reduce.
+/** parallel_reduce splits the sieve into subsieves.
+    Each subsieve handles a subrange of [0..n]. */
+class Sieve {
+public:
+    //! Prime multiples to consider, and working storage for this subsieve.
+    Multiples multiples;
+
+    //! Number of primes found so far by this subsieve.
+    Number count;
+
+    //! Construct Sieve for counting primes in [0..n].
+    Sieve( Number n ) : 
+        multiples(n),
+        count(0)
+    {}
+
+    //------------------------------------------------------------------------
+    // Begin signatures required by parallel_reduce
+    //------------------------------------------------------------------------
+    void operator()( const SieveRange& r ) {
+        Number m = multiples.m;
+        if( multiples.is_initialized() ) { 
+            // Simply reuse "multiples" structure from previous window
+            // This works because parallel_reduce always applies
+            // *this from left to right.
+        } else {
+            // Need to initialize "multiples" because *this is a forked copy
+            // that needs to be set up to start at r.begin().
+            multiples.initialize( r.begin() );
+        }
+        Number window_size = m;
+        for( Number j=r.begin(); j<r.end(); j+=window_size ) { 
+            assert( j%multiples.m==0 );
+            if( j+window_size>r.end() ) 
+                window_size = r.end()-j;
+            count += multiples.find_primes_in_window( j, window_size );
+        }
+    }
+    void join( Sieve& other ) {
+        count += other.count;
+    }
+    Sieve( Sieve& other, split ) : 
+        multiples(other.multiples,split()),
+        count(0)
+    {}
+    //------------------------------------------------------------------------
+    // End of signatures required by parallel_reduce
+    //------------------------------------------------------------------------
+};
+
+//! Count number of primes between 0 and n
+/** This is the parallel version. */
+Number ParallelCountPrimes( Number n ) {
+    // Two is special case
+    Number count = n>=2;
+    if( n>=3 ) {
+        Sieve s(n);
+        count += s.multiples.n_factor;
+        if( PrintPrimes ) 
+            printf("---\n");
+        parallel_reduce( SieveRange( s.multiples.m, n, s.multiples.m, GrainSize ), s );
+        count += s.count;
+    }
+    return count;
+}
+
+//------------------------------------------------------------------------
+// Code below this line constitutes the driver that calls SerialCountPrimes
+// and ParallelCountPrimes.
+//------------------------------------------------------------------------
+
+//! A closed range of Number.
+struct NumberRange {
+    Number low;
+    Number high;
+    void set_from_string( const char* s );
+    NumberRange( Number low_, Number high_ ) : low(low_), high(high_) {}
+};
+
+void NumberRange::set_from_string( const char* s ) {
+    char* end;
+    high = low = strtol(s,&end,0);
+    switch( *end ) {
+    case ':': 
+        high = strtol(end+1,0,0); 
+        break;
+    case '\0':
+        break;
+    default:
+        printf("unexpected character = %c\n",*end);
+    }
+    
+}
+
+//! Number of threads to use.
+static NumberRange NThread(0,4);
+
+//! If true, then at end wait for user to hit return
+static bool PauseFlag = false;
+
+//! Parse the command line.
+static Number ParseCommandLine( int argc, char* argv[] ) {
+    Number n = 100000000;
+    int i = 1;
+    if( i<argc && strcmp( argv[i], "pause" )==0 ) {
+        PauseFlag = true;
+        ++i;
+    }
+    if( i<argc && !isdigit(argv[i][0]) ) { 
+        // Command line is garbled.
+        fprintf(stderr,"Usage: %s [['pause'] n [nthread [grainsize]]]\n", argv[0]);
+        fprintf(stderr,"where n is a positive integer [%lu]\n",n);
+        fprintf(stderr,"      nthread is a non-negative integer, or range of the form low:high [%ld:%lu]\n",NThread.low,NThread.high);
+        fprintf(stderr,"      grainsize is an optional postive integer [%lu]\n",GrainSize);
+        exit(1);
+    }
+    if( i<argc )
+        n = strtol(argv[i++],0,0);
+    if( i<argc )
+        NThread.set_from_string(argv[i++]);
+    if( i<argc )
+        GrainSize = strtol(argv[i++],0,0);
+    return n;
+}
+
+static void WaitForUser() {
+    char c;
+    printf("Press return to continue\n");
+    do {
+        c = getchar();
+    } while( c!='\n' );
+}
+
+int main( int argc, char* argv[] ) {
+    Number n = ParseCommandLine(argc,argv);
+
+    // Try different numbers of threads
+    for( Number p=NThread.low; p<=NThread.high; ++p ) {
+        task_scheduler_init init(task_scheduler_init::deferred);
+        // If p!=0, we are doing a parallel run
+        if( p ) 
+            init.initialize(p);
+
+        Number count;
+        tick_count t0 = tick_count::now();
+        if( p==0 ) {
+            count = SerialCountPrimes(n);
+        } else {
+            count = ParallelCountPrimes(n);
+        }
+        tick_count t1 = tick_count::now();
+
+        printf("#primes from [2..%lu] = %lu (%.2f sec with ",
+            (unsigned long)n, (unsigned long)count, (t1-t0).seconds());
+        if( p ) 
+            printf("%lu-way parallelism)\n", p );
+        else 
+            printf("serial code)\n");
+    }
+    if( PauseFlag ) {
+        WaitForUser();
+    }
+    return 0;
+}
diff --git a/examples/parallel_reduce/primes/vc7.1/primes.sln b/examples/parallel_reduce/primes/vc7.1/primes.sln
new file mode 100644
index 0000000..0e51661
--- /dev/null
+++ b/examples/parallel_reduce/primes/vc7.1/primes.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "primes", "primes.vcproj", "{519446A2-AF27-429B-A5DF-625B8F034024}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{519446A2-AF27-429B-A5DF-625B8F034024}.Debug.ActiveCfg = Debug|Win32
+		{519446A2-AF27-429B-A5DF-625B8F034024}.Debug.Build.0 = Debug|Win32
+		{519446A2-AF27-429B-A5DF-625B8F034024}.Release.ActiveCfg = Release|Win32
+		{519446A2-AF27-429B-A5DF-625B8F034024}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_reduce/primes/vc7.1/primes.suo b/examples/parallel_reduce/primes/vc7.1/primes.suo
new file mode 100644
index 0000000..2e62696
Binary files /dev/null and b/examples/parallel_reduce/primes/vc7.1/primes.suo differ
diff --git a/examples/parallel_reduce/primes/vc7.1/primes.vcproj b/examples/parallel_reduce/primes/vc7.1/primes.vcproj
new file mode 100644
index 0000000..ae6a3f8
--- /dev/null
+++ b/examples/parallel_reduce/primes/vc7.1/primes.vcproj
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="primes"
+	ProjectGUID="{519446A2-AF27-429B-A5DF-625B8F034024}"
+	RootNamespace="primes"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\primes.cpp">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_reduce/primes/vc8/primes.sln b/examples/parallel_reduce/primes/vc8/primes.sln
new file mode 100644
index 0000000..089aa4f
--- /dev/null
+++ b/examples/parallel_reduce/primes/vc8/primes.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "primes", "primes.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_reduce/primes/vc8/primes.suo b/examples/parallel_reduce/primes/vc8/primes.suo
new file mode 100644
index 0000000..f3a244e
Binary files /dev/null and b/examples/parallel_reduce/primes/vc8/primes.suo differ
diff --git a/examples/parallel_reduce/primes/vc8/primes.vcproj b/examples/parallel_reduce/primes/vc8/primes.vcproj
new file mode 100644
index 0000000..4d37a26
--- /dev/null
+++ b/examples/parallel_reduce/primes/vc8/primes.vcproj
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="primes"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A252A}"
+	RootNamespace="primes"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\primes.cpp"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj b/examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..935eb89
--- /dev/null
+++ b/examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj
@@ -0,0 +1,296 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A1F593A60B8F042A00073279 /* primes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* primes.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8DD76F6C0486A84900D96B5E /* primes */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = primes; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F593A50B8F042A00073279 /* primes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = primes.cpp; path = ../primes.cpp; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* primes */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = primes;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593A50B8F042A00073279 /* primes.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* primes */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* primes */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "primes" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = primes;
+			productInstallPath = "$(HOME)/bin";
+			productName = primes;
+			productReference = 8DD76F6C0486A84900D96B5E /* primes */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "primes" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* primes */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* primes */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593A60B8F042A00073279 /* primes.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = primes;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = primes;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = primes;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = primes;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "primes" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "primes" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/parallel_while/index.html b/examples/parallel_while/index.html
new file mode 100644
index 0000000..6054cea
--- /dev/null
+++ b/examples/parallel_while/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has examples of the template <code>parallel_while</code>.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="parallel_preorder/index.html">parallel_preorder</A>
+<DD>Parallel preorder traversal of a graph.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/parallel_while/parallel_preorder/Graph.cpp b/examples/parallel_while/parallel_preorder/Graph.cpp
new file mode 100644
index 0000000..5f75ec0
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/Graph.cpp
@@ -0,0 +1,106 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include <cstdio>
+#include "Graph.h"
+
+void Graph::create_random_dag( size_t number_of_nodes ) {
+    my_vertex_set.resize(number_of_nodes);
+    for( size_t k=0; k<number_of_nodes; ++k ) {
+        Cell& c = my_vertex_set[k];
+        int op = int((rand()>>8)%5u);
+        if( op>int(k) ) op = int(k);
+        switch( op ) {
+            default:
+                c.op = OP_VALUE;
+                c.value = Cell::value_type((float)k);
+                break;
+            case 1:
+                c.op = OP_NEGATE;
+                break;
+            case 2:
+                c.op = OP_SUB;
+                break;
+            case 3: 
+                c.op = OP_ADD;
+                break;
+            case 4: 
+                c.op = OP_MUL;
+                break;
+        }
+        for( int j=0; j<ArityOfOp[c.op]; ++j ) {
+            Cell& input = my_vertex_set[rand()%k];
+            c.input[j] = &input;
+        }
+    }
+}
+
+void Graph::print() {
+    for( size_t k=0; k<my_vertex_set.size(); ++k ) {
+        printf("Cell %d:",int(k));
+        for( size_t j=0; j<my_vertex_set[k].successor.size(); ++j )
+            printf(" %d",int(my_vertex_set[k].successor[j] - &my_vertex_set[0]));
+        printf("\n");
+    }
+}
+
+void Graph::get_root_set( std::vector<Cell*>& root_set ) {
+    for( size_t k=0; k<my_vertex_set.size(); ++k ) {
+        my_vertex_set[k].successor.clear();
+    }
+    root_set.clear();
+    for( size_t k=0; k<my_vertex_set.size(); ++k ) {
+        Cell& c = my_vertex_set[k];
+        c.ref_count = ArityOfOp[c.op];
+        for( int j=0; j<ArityOfOp[c.op]; ++j ) {
+            c.input[j]->successor.push_back(&c);
+        }
+        if( ArityOfOp[c.op]==0 )
+            root_set.push_back(&my_vertex_set[k]);
+    }
+}
+
+void Cell::update() {
+    switch( op ) {
+        case OP_VALUE:
+            break;
+        case OP_NEGATE:
+            value = -(input[0]->value);
+            break;
+        case OP_ADD:
+            value = input[0]->value + input[1]->value;
+            break;
+        case OP_SUB:
+            value = input[0]->value - input[1]->value;
+            break;
+        case OP_MUL:
+            value = input[0]->value * input[1]->value;
+            break;
+    }
+}
+
diff --git a/examples/parallel_while/parallel_preorder/Graph.h b/examples/parallel_while/parallel_preorder/Graph.h
new file mode 100644
index 0000000..290bacc
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/Graph.h
@@ -0,0 +1,90 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "Matrix.h"
+#include "tbb/atomic.h"
+#include <vector>
+
+namespace TBB = tbb;
+
+enum OpKind {
+    // Use Cell's value
+    OP_VALUE,
+    // Unary negation
+    OP_NEGATE,
+    // Addition
+    OP_ADD,
+    // Subtraction
+    OP_SUB,
+    // Multiplication
+    OP_MUL
+};
+
+static const int ArityOfOp[] = {0,1,2,2,2};
+
+class Cell {
+public:
+    //! Operation for this cell
+    OpKind op;
+
+    //! Inputs to this cell
+    Cell* input[2];
+   
+    //! Type of value stored in a Cell
+    typedef Matrix value_type;
+
+    //! Value associated with this Cell
+    value_type value;
+
+    //! Set of cells that use this Cell as an input
+    std::vector<Cell*> successor;
+
+    //! Reference count of number of inputs that are not yet updated.
+    TBB::atomic<int> ref_count;
+
+    //! Update the Cell's value.
+    void update();
+
+    //! Default construtor
+    Cell() {}
+};
+
+//! A directed graph where the vertices are Cells.
+class Graph {
+    std::vector<Cell> my_vertex_set;
+public:
+    //! Create a random acyclic directed graph
+    void create_random_dag( size_t number_of_nodes );
+
+    //! Print the graph
+    void print();
+
+    //! Get set of cells that have no inputs.
+    void get_root_set( std::vector<Cell*>& root_set );
+};
+
diff --git a/examples/parallel_while/parallel_preorder/Makefile b/examples/parallel_while/parallel_preorder/Makefile
new file mode 100644
index 0000000..64d8142
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/Makefile
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+PROG=parallel_preorder
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug
+
+clean:
+	rm -f $(PROG) *.o *.d
+
+test:
+	./$(PROG) 1:4
diff --git a/examples/parallel_while/parallel_preorder/Makefile.windows b/examples/parallel_while/parallel_preorder/Makefile.windows
new file mode 100644
index 0000000..8f52240
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/Makefile.windows
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Parallel_Preorder
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CRT_SECURE_NO_DEPRECATE /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS)
+debug:
+	$(CXX) *.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS)
+clean:
+	@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest
+test:
+	$(PROG) 1:4
diff --git a/examples/parallel_while/parallel_preorder/Matrix.h b/examples/parallel_while/parallel_preorder/Matrix.h
new file mode 100644
index 0000000..32c4ea5
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/Matrix.h
@@ -0,0 +1,68 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+class Matrix {
+    static const int n = 10;
+    float array[n][n];
+public:
+    Matrix() {}
+    Matrix( float z ) {
+        for( int i=0; i<n; ++i )
+            for( int j=0; j<n; ++j )
+                array[i][j] = i==j ? z : 0;
+    }
+    friend Matrix operator-( const Matrix& x ) {
+        Matrix result;
+        for( int i=0; i<n; ++i )
+            for( int j=0; j<n; ++j )
+                result.array[i][j] = -x.array[i][j];
+        return result;
+    }
+    friend Matrix operator+( const Matrix& x, const Matrix& y ) {
+        Matrix result;
+        for( int i=0; i<n; ++i )
+            for( int j=0; j<n; ++j )
+                result.array[i][j] = x.array[i][j] + y.array[i][j];
+        return result;
+    }
+    friend Matrix operator-( const Matrix& x, const Matrix& y ) {
+        Matrix result;
+        for( int i=0; i<n; ++i )
+            for( int j=0; j<n; ++j )
+                result.array[i][j] = x.array[i][j] - y.array[i][j];
+        return result;
+    }
+    friend Matrix operator*( const Matrix& x, const Matrix& y ) {
+        Matrix result(0);
+        for( int i=0; i<n; ++i ) 
+            for( int k=0; k<n; ++k )
+                for( int j=0; j<n; ++j )
+                    result.array[i][j] += x.array[i][k] * y.array[k][j];
+        return result;
+    }
+};
diff --git a/examples/parallel_while/parallel_preorder/index.html b/examples/parallel_while/parallel_preorder/index.html
new file mode 100644
index 0000000..d617ed9
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/index.html
@@ -0,0 +1,93 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Example that uses parallel_while to do parallel preorder traversal of a sparse graph.
+<P>
+Each vertex in the graph is called a "cell".  
+Each cell has a value. 
+The value is a matrix. 
+Some of the cells have operators
+that compute the cell's value, using other cell's values as input.
+A cell that uses the value of cell x is called a successor of x.
+</P><P>
+The algorithm works as follows. 
+<OL>
+<LI> Compute the set of cells that have no inputs. This set is called <TT>root_set</TT>.
+<LI> Each cell has an associated field <TT>ref_count</TT> that is an atomic integer.
+     Initialize <TT>ref_count</TT> to the number of inputs for the Cell.
+<LI> Update each cell in <TT>root_set</TT>, by applying a <TT>parallel_while</TT> to a stream 
+     that iterates over <TT>root_set</TT>
+<LI> After updating a cell, for each of its successors 
+<OL>
+<LI> Atomically decrement the successor's <TT>ref_count</TT>
+<LI> If the count became zero, add the cell to the set of cells to be updated,
+     by calling <TT>parallel_while::add</TT>.
+</OL>
+</OL>
+</P><P>
+The times printed are for the traversal and update, 
+and do not include time for computing the root_set.
+</P>
+<B>NOTE: </B>It is important to understand that this example is unlikely to show speedup 
+if the cell values are changed to type "float".  The reason is twofold.
+<UL>
+<LI> The smaller value type causes each Cell to be significantly smaller than a cache line,
+     which leads to false sharing conflicts.
+<LI> The time to update the cells becomes very small, and consequently the overhead of
+     parallel_while swamps the useful work.
+</UL>
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="parallel_preorder.cpp">parallel_preorder.cpp</A>
+<DD>Source code for example.
+<DT><A HREF="Graph.cpp">Graph.cpp</A>
+<DD>Source code for example.
+<DT><A HREF="Graph.h">Graph.h</A>
+<DD>Source code for example.
+<DT><A HREF="Matrix.h">Matrix.h</A>
+<DD>Source code for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>parallel_preorder [<I>M</I>[:<I>N</I>] [<I>Rounds</I> [<I>'pause'</I>]]]</TT>
+<DD><I>M</I> and <I>N</I> are a range of numbers of threads to be used.
+<DD><I>Rounds</I> is the number of rounds the example runs internally. Default value 
+    is 50; reduce it to shorten example run time.
+<DD>If 'pause' is specified, the application will wait for a user to hit return before it exits.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with the desired number of threads and smaller number of rounds, e.g., <TT>parallel_preorder 4 5</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/parallel_while/parallel_preorder/parallel_preorder.cpp b/examples/parallel_while/parallel_preorder/parallel_preorder.cpp
new file mode 100644
index 0000000..da17c95
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/parallel_preorder.cpp
@@ -0,0 +1,188 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/* Example program that shows how to use parallel_while to do parallel preorder 
+   traversal of a directed acyclic graph. */
+
+#include "tbb/parallel_while.h"
+#include "tbb/atomic.h"
+#include <vector>
+#include <algorithm>
+#include "Graph.h"
+
+//! Number of trials. Can be changed from command line
+int ntrial = 50;
+
+class Body {
+    tbb::parallel_while<Body>& my_while; 
+public:
+    Body( tbb::parallel_while<Body>& w ) : my_while(w) {};
+
+    //------------------------------------------------------------------------
+    // Following signatures required by parallel_while
+    //------------------------------------------------------------------------
+    typedef Cell* argument_type;
+    void operator()( Cell* c ) const {
+        c->update();
+        // Restore ref_count in preparation for subsequent traversal.
+        c->ref_count = ArityOfOp[c->op];
+        for( size_t k=0; k<c->successor.size(); ++k ) {
+            Cell* successor = c->successor[k];
+            if( 0 == --(successor->ref_count) ) {
+                my_while.add( successor );
+            }
+        }
+    }
+};   
+
+class Stream {
+    size_t k;
+    const std::vector<Cell*>& my_roots;
+public:
+    Stream( const std::vector<Cell*>& root_set ) : my_roots(root_set), k(0) {}
+    bool pop_if_present( Cell*& item ) {
+        bool result = k<my_roots.size();
+        if( result ) 
+            item = my_roots[k++];
+        return result;
+    }
+};    
+
+void ParallelPreorderTraversal( const std::vector<Cell*>& root_set ) {
+    tbb::parallel_while<Body> w;
+    Stream s(root_set);
+    w.run(s,Body(w));
+}
+
+//------------------------------------------------------------------------
+// Test driver
+//------------------------------------------------------------------------
+
+#include <cctype>
+#include "tbb/task_scheduler_init.h"
+#include "tbb/tick_count.h"
+
+//! A closed range of int.
+struct IntRange {
+    int low;
+    int high;
+    void set_from_string( const char* s );
+    IntRange( int low_, int high_ ) : low(low_), high(high_) {}
+};
+
+void IntRange::set_from_string( const char* s ) {
+    char* end;
+    high = low = strtol(s,&end,0);
+    switch( *end ) {
+    case ':': 
+        high = strtol(end+1,0,0); 
+        break;
+    case '\0':
+        break;
+    default:
+        printf("unexpected character = %c\n",*end);
+    }
+}
+
+//! Number of threads to use.
+static IntRange NThread(1,4);
+
+//! If true, then at end wait for user to hit return
+static bool PauseFlag = false;
+
+//! Displays usage message
+void Usage(char * argv0) {
+    fprintf(stderr, "Usage: %s [nthread [ntrials ['pause']]]\n", argv0);
+    fprintf(stderr, "where nthread is a non-negative integer, or range of the form low:high [%d:%d]\n", NThread.low, NThread.high);
+    fprintf(stderr, "ntrials is a positive integer. Default value is 50, reduce it (e.g. to 5) to shorten example run time\n");
+    fprintf(stderr, "The application waits for user to hit return if 'pause' is specified\n");
+}
+
+//! Parse the command line.
+static void ParseCommandLine( int argc, char* argv[] ) {
+    int i = 1;
+        if( i<argc && !isdigit(argv[i][0]) ) { 
+        // Command line is garbled.
+        Usage(argv[0]);
+        exit(1);
+    }
+    if( i<argc )
+        NThread.set_from_string(argv[i++]);
+    if( i<argc && !isdigit(argv[i][0]) ) { 
+        // Command line is garbled.
+        Usage(argv[0]);
+        exit(1);
+    }
+    if (i<argc) {
+        ntrial = strtol(argv[i++], 0, 0);
+    }
+    if (ntrial == 0) {
+        // Command line is garbled.
+        Usage(argv[0]);
+        exit(1);
+    }
+    if (i<argc && strcmp( argv[i], "pause" )==0 ) {
+        PauseFlag = true;
+    }
+}
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine(argc,argv);
+
+    // Start scheduler with given number of threads.
+    for( int p=NThread.low; p<=NThread.high; ++p ) {
+        tbb::task_scheduler_init init(p);
+        srand(2);
+        tbb::tick_count::interval_t interval;
+        size_t total_root_set_size = 0;
+        for( int trial=0; trial<ntrial; ++trial ) {
+            Graph g;
+            g.create_random_dag(1000);
+            std::vector<Cell*> root_set;
+            g.get_root_set(root_set);
+            total_root_set_size += root_set.size();
+
+            tbb::tick_count t0 = tbb::tick_count::now();
+            for( int i=0; i<10; ++i ) {
+                ParallelPreorderTraversal(root_set);
+            }
+            tbb::tick_count t1 = tbb::tick_count::now();
+
+            interval += t1-t0;
+        }
+        printf("%g seconds using %d threads (average of %g nodes in root_set)\n",interval.seconds(),p,(double)total_root_set_size/ntrial);
+    }
+
+    if (PauseFlag) {
+        printf ("Press return key to exit");
+        char c;
+        scanf("%c", &c);
+    }
+
+    return 0;
+}
diff --git a/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.sln b/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.sln
new file mode 100644
index 0000000..1cda54a
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "parallel_preorder", "parallel_preorder.vcproj", "{519446A2-AF27-429B-A5DF-625B8F034021}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{519446A2-AF27-429B-A5DF-625B8F034021}.Debug.ActiveCfg = Debug|Win32
+		{519446A2-AF27-429B-A5DF-625B8F034021}.Debug.Build.0 = Debug|Win32
+		{519446A2-AF27-429B-A5DF-625B8F034021}.Release.ActiveCfg = Release|Win32
+		{519446A2-AF27-429B-A5DF-625B8F034021}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.suo b/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.suo
new file mode 100644
index 0000000..ffa0587
Binary files /dev/null and b/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.suo differ
diff --git a/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.vcproj b/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.vcproj
new file mode 100644
index 0000000..7d05a1b
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/vc7.1/parallel_preorder.vcproj
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="parallel_preorder"
+	ProjectGUID="{519446A2-AF27-429B-A5DF-625B8F034021}"
+	RootNamespace="parallel_preorder"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\Graph.cpp">
+			</File>
+			<File
+				RelativePath="..\parallel_preorder.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File
+				RelativePath="..\Graph.h">
+			</File>
+			<File
+				RelativePath="..\Matrix.h">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.sln b/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.sln
new file mode 100644
index 0000000..6b466e9
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "parallel_preorder", "parallel_preorder.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.suo b/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.suo
new file mode 100644
index 0000000..5395b93
Binary files /dev/null and b/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.suo differ
diff --git a/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.vcproj b/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.vcproj
new file mode 100644
index 0000000..59e1fda
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/vc8/parallel_preorder.vcproj
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="parallel_preorder"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A252B}"
+	RootNamespace="parallel_preorder"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\Graph.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\parallel_preorder.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\Graph.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Matrix.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/parallel_while/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj b/examples/parallel_while/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..2da175e
--- /dev/null
+++ b/examples/parallel_while/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj
@@ -0,0 +1,304 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		05593AAB0B8F55D500DE73AB /* parallel_preorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593AA70B8F55D500DE73AB /* parallel_preorder.cpp */; };
+		05593AA80B8F55D500DE73AB /* Graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593AA40B8F55D500DE73AB /* Graph.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8DD76F6C0486A84900D96B5E /* parallel_preorder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = parallel_preorder; sourceTree = BUILT_PRODUCTS_DIR; };
+		05593AA70B8F55D500DE73AB /* parallel_preorder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = parallel_preorder.cpp; path = ../parallel_preorder.cpp; sourceTree = SOURCE_ROOT; };
+		05593AA40B8F55D500DE73AB /* Graph.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Graph.cpp; path = ../Graph.cpp; sourceTree = SOURCE_ROOT; };
+		05593AA50B8F55D500DE73AB /* Graph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Graph.h; path = ../Graph.h; sourceTree = SOURCE_ROOT; };
+		05593AA60B8F55D500DE73AB /* Matrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Matrix.h; path = ../Matrix.h; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* parallel_preorder */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = parallel_preorder;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				05593AA70B8F55D500DE73AB /* parallel_preorder.cpp */,
+				05593AA40B8F55D500DE73AB /* Graph.cpp */,
+				05593AA50B8F55D500DE73AB /* Graph.h */,
+				05593AA60B8F55D500DE73AB /* Matrix.h */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* parallel_preorder */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* parallel_preorder */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "parallel_preorder" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = parallel_preorder;
+			productInstallPath = "$(HOME)/bin";
+			productName = parallel_preorder;
+			productReference = 8DD76F6C0486A84900D96B5E /* parallel_preorder */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "parallel_preorder" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* parallel_preorder */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* parallel_preorder */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				05593AA80B8F55D500DE73AB /* Graph.cpp in Sources */,
+				05593AAB0B8F55D500DE73AB /* parallel_preorder.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = parallel_preorder;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = parallel_preorder;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = parallel_preorder;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = parallel_preorder;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "parallel_preorder" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "parallel_preorder" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/pipeline/index.html b/examples/pipeline/index.html
new file mode 100644
index 0000000..f6e5be3
--- /dev/null
+++ b/examples/pipeline/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has examples of the template <code>pipeline</code>.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="text_filter/index.html">text_filter</A>
+<DD>A simple text filter.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/pipeline/text_filter/Makefile b/examples/pipeline/text_filter/Makefile
new file mode 100644
index 0000000..6bae9fb
--- /dev/null
+++ b/examples/pipeline/text_filter/Makefile
@@ -0,0 +1,48 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+PROG=text_filter
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug
+
+clean:
+	rm -f $(PROG) *.o *.d input.txt output.txt
+
+test:
+	cat /usr/include/*.h >input.txt
+	./$(PROG) input.txt output.txt 1
+	./$(PROG) input.txt output.txt 2
+	./$(PROG) input.txt output.txt 4
diff --git a/examples/pipeline/text_filter/Makefile.windows b/examples/pipeline/text_filter/Makefile.windows
new file mode 100644
index 0000000..c6b1336
--- /dev/null
+++ b/examples/pipeline/text_filter/Makefile.windows
@@ -0,0 +1,50 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Text_Filter
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CRT_SECURE_NO_DEPRECATE /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS)
+debug:
+	$(CXX) *.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS)
+clean:
+	@cmd.exe /C del $(PROG).exe input.txt output.txt *.obj *.?db *.manifest
+input.txt:
+	@echo Constructing input.txt
+	@-cmd.exe /C "copy %WINDIR%\*.log input.txt >NUL"
+test: input.txt
+	$(PROG) input.txt output.txt 1
+	$(PROG) input.txt output.txt 2
+	$(PROG) input.txt output.txt 4
diff --git a/examples/pipeline/text_filter/index.html b/examples/pipeline/text_filter/index.html
new file mode 100644
index 0000000..c7b3605
--- /dev/null
+++ b/examples/pipeline/text_filter/index.html
@@ -0,0 +1,56 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Text filter that demonstrates class pipeline.  
+The <A href=" ../../../doc/Tutorial.pdf">Tutorial</A> explains this example in detail.
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="text_filter.cpp">text_filter.cpp</A>
+<DD>Source code for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+<P></P>
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>text_filter <I>inputfile</I> <I>outputfile</I> <I>N</I></TT>
+<DD>Run the example on the named <I>inputfile</I> and produce the named <I>outputfile</I>.
+    <I>N</I> is the number of threads to be used.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Prepare an <I>inputfile</I> with about 5,000 lines of text (e.g., by concatenating all the index.html
+	files in the examples/ directory tree).
+    <BR>Run it with this <I>inputfile</I> and the desired number of threads,
+	e.g., <TT>text_filter <I>inputfile</I> <I>outputfile</I> 4</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/pipeline/text_filter/text_filter.cpp b/examples/pipeline/text_filter/text_filter.cpp
new file mode 100644
index 0000000..b2006d9
--- /dev/null
+++ b/examples/pipeline/text_filter/text_filter.cpp
@@ -0,0 +1,232 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+//
+// Example program that reads a file of text and changes the first letter
+// of each word to upper case.
+// 
+#include "tbb/pipeline.h"
+#include "tbb/tick_count.h"
+#include "tbb/task_scheduler_init.h"
+#include <cstring>
+#include <cstdlib>
+#include <cstdio>
+#include <cctype>
+
+using namespace std;
+
+//! Buffer that holds block of characters and last character of previous buffer.
+class MyBuffer {
+    static const size_t buffer_size = 10000;
+    char* my_end;
+    //! storage[0] holds the last character of the previous buffer.
+    char storage[1+buffer_size];
+public:
+    //! Pointer to first character in the buffer
+    char* begin() {return storage+1;}
+    const char* begin() const {return storage+1;}
+    //! Pointer to one past last character in the buffer
+    char* end() const {return my_end;}
+    //! Set end of buffer.
+    void set_end( char* new_ptr ) {my_end=new_ptr;}
+    //! Number of bytes a buffer can hold
+    size_t max_size() const {return buffer_size;}
+    //! Number of bytes appended to buffer.
+    size_t size() const {return my_end-begin();}
+};
+
+class MyInputFilter: public tbb::filter {
+public:
+    static const size_t n_buffer = 8;
+    MyInputFilter( FILE* input_file_ );
+private:
+    FILE* input_file;
+    size_t next_buffer;
+    char last_char_of_previous_buffer;
+    MyBuffer buffer[n_buffer];
+    /*override*/ void* operator()(void*);
+};
+
+MyInputFilter::MyInputFilter( FILE* input_file_ ) : 
+    filter(/*is_serial=*/true),
+    next_buffer(0),
+    input_file(input_file_),
+    last_char_of_previous_buffer(' ')
+{ 
+}
+
+void* MyInputFilter::operator()(void*) {
+    MyBuffer& b = buffer[next_buffer];
+    next_buffer = (next_buffer+1) % n_buffer;
+    size_t n = fread( b.begin(), 1, b.max_size(), input_file );
+    if( !n ) {
+        // end of file
+        return NULL;
+    } else {
+        b.begin()[-1] = last_char_of_previous_buffer;
+        last_char_of_previous_buffer = b.begin()[n-1];
+        b.set_end( b.begin()+n );
+        return &b;
+    }
+}
+
+//! Filter that changes the first letter of each word from lower case to upper case.
+class MyTransformFilter: public tbb::filter {
+public:
+    MyTransformFilter();
+    /*override*/void* operator()( void* item );
+};
+
+MyTransformFilter::MyTransformFilter() : 
+    tbb::filter(/*ordered=*/false) 
+{}  
+
+/*override*/void* MyTransformFilter::operator()( void* item ) {
+    MyBuffer& b = *static_cast<MyBuffer*>(item);
+    int prev_char_is_space = b.begin()[-1]==' ';
+    for( char* s=b.begin(); s!=b.end(); ++s ) {
+        if( prev_char_is_space && islower(*s) )
+            *s = toupper(*s);
+        prev_char_is_space = isspace((unsigned char)*s);
+    }
+    return &b;  
+}
+         
+//! Filter that writes each buffer to a file.
+class MyOutputFilter: public tbb::filter {
+    FILE* my_output_file;
+public:
+    MyOutputFilter( FILE* output_file );
+    /*override*/void* operator()( void* item );
+};
+
+MyOutputFilter::MyOutputFilter( FILE* output_file ) : 
+    tbb::filter(/*is_serial=*/true),
+    my_output_file(output_file)
+{
+}
+
+void* MyOutputFilter::operator()( void* item ) {
+    MyBuffer& b = *static_cast<MyBuffer*>(item);
+    fwrite( b.begin(), 1, b.size(), my_output_file );
+    return NULL;
+}
+
+static int NThread = tbb::task_scheduler_init::automatic;
+static const char* InputFileName = "input.txt";
+static const char* OutputFileName = "output.txt";
+static bool is_number_of_threads_set = false;
+
+void Usage()
+{
+    fprintf( stderr, "Usage:\ttext_filter [input-file [output-file [nthread]]]\n");
+    exit(1);
+}
+
+void ParseCommandLine(  int argc, char* argv[] ) {
+    // Parse command line
+    if( argc> 4 ) Usage();
+    if( argc>=2 ) InputFileName = argv[1];
+    if( argc>=3 ) OutputFileName = argv[2];
+    if( argc>=4 ) {
+        NThread = strtol(argv[3],0,0);
+        if( NThread<1 ) {
+            fprintf(stderr,"nthread set to %d, but must be at least 1\n",NThread);
+            exit(1);
+        }
+        is_number_of_threads_set = true; //Number of threads is set explicitly
+    }
+}
+
+void run_pipeline( int nthreads )
+{
+    FILE* input_file = fopen(InputFileName,"r");
+    if( !input_file ) {
+        perror( InputFileName );
+        Usage();
+    }
+    FILE* output_file = fopen(OutputFileName,"w");
+    if( !output_file ) {
+        perror( OutputFileName );
+        exit(1);
+    }
+
+    // Create the pipeline
+    tbb::pipeline pipeline;
+
+    // Create file-reading writing stage and add it to the pipeline
+    MyInputFilter input_filter( input_file );
+    pipeline.add_filter( input_filter );
+
+    // Create capitalization stage and add it to the pipeline
+    MyTransformFilter transform_filter; 
+    pipeline.add_filter( transform_filter );
+
+    // Create file-writing stage and add it to the pipeline
+    MyOutputFilter output_filter( output_file );
+    pipeline.add_filter( output_filter );
+
+    // Run the pipeline
+    tbb::tick_count t0 = tbb::tick_count::now();
+    pipeline.run( MyInputFilter::n_buffer );
+    tbb::tick_count t1 = tbb::tick_count::now();
+
+    // Remove filters from pipeline before they are implicitly destroyed.
+    pipeline.clear(); 
+
+    fclose( output_file );
+    fclose( input_file );
+
+    if (is_number_of_threads_set) {
+        printf("threads = %d time = %g\n", nthreads, (t1-t0).seconds());
+    } else {
+        if ( nthreads == 1 ){
+            printf("serial run   time = %g\n", (t1-t0).seconds());
+        } else {
+            printf("parallel run time = %g\n", (t1-t0).seconds());
+        }
+    }
+}
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine( argc, argv );
+    if (is_number_of_threads_set) {
+        // Start task scheduler
+        tbb::task_scheduler_init init( NThread );
+        run_pipeline (NThread);
+    } else { // Number of threads wasn't set explicitly. Run serial and parallel version
+        { // serial run
+            tbb::task_scheduler_init init_serial(1);
+            run_pipeline (1);
+        }
+        { // parallel run (number of threads is selected automatically)
+            tbb::task_scheduler_init init_parallel;
+            run_pipeline (0);
+        }
+    }
+}
diff --git a/examples/pipeline/text_filter/vc7.1/text_filter.sln b/examples/pipeline/text_filter/vc7.1/text_filter.sln
new file mode 100644
index 0000000..1ca790a
--- /dev/null
+++ b/examples/pipeline/text_filter/vc7.1/text_filter.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_filter", "text_filter.vcproj", "{4A021AFA-E254-4BCE-918D-377DF1C0BEEF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{4A021AFA-E254-4BCE-918D-377DF1C0BEEF}.Debug.ActiveCfg = Debug|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0BEEF}.Debug.Build.0 = Debug|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0BEEF}.Release.ActiveCfg = Release|Win32
+		{4A021AFA-E254-4BCE-918D-377DF1C0BEEF}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/pipeline/text_filter/vc7.1/text_filter.suo b/examples/pipeline/text_filter/vc7.1/text_filter.suo
new file mode 100644
index 0000000..022ecbc
Binary files /dev/null and b/examples/pipeline/text_filter/vc7.1/text_filter.suo differ
diff --git a/examples/pipeline/text_filter/vc7.1/text_filter.vcproj b/examples/pipeline/text_filter/vc7.1/text_filter.vcproj
new file mode 100644
index 0000000..82dfad0
--- /dev/null
+++ b/examples/pipeline/text_filter/vc7.1/text_filter.vcproj
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="text_filter"
+	ProjectGUID="{4A021AFA-E254-4BCE-918D-377DF1C0BEEF}"
+	RootNamespace="text_filter"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"
+				Description="Constructing input.txt"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\doc\*.txt"+"$(TBB20_INSTALL_DIR)\doc\html\*.html" "$(OutDir)\input.txt" >NUL"
+				Outputs=""$(OutDir)\input.txt""/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"
+				Description="Constructing input.txt"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\doc\*.txt"+"$(TBB20_INSTALL_DIR)\doc\html\*.html" "$(OutDir)\input.txt" >NUL"
+				Outputs=""$(OutDir)\input.txt""/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\text_filter.cpp">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/pipeline/text_filter/vc8/text_filter.sln b/examples/pipeline/text_filter/vc8/text_filter.sln
new file mode 100644
index 0000000..735b680
--- /dev/null
+++ b/examples/pipeline/text_filter/vc8/text_filter.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_filter", "text_filter.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411D}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Debug|Win32.Build.0 = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Debug|x64.ActiveCfg = Debug|x64
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Debug|x64.Build.0 = Debug|x64
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Release|Win32.ActiveCfg = Release|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Release|Win32.Build.0 = Release|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Release|x64.ActiveCfg = Release|x64
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/pipeline/text_filter/vc8/text_filter.suo b/examples/pipeline/text_filter/vc8/text_filter.suo
new file mode 100644
index 0000000..c5ebac8
Binary files /dev/null and b/examples/pipeline/text_filter/vc8/text_filter.suo differ
diff --git a/examples/pipeline/text_filter/vc8/text_filter.vcproj b/examples/pipeline/text_filter/vc8/text_filter.vcproj
new file mode 100644
index 0000000..a101498
--- /dev/null
+++ b/examples/pipeline/text_filter/vc8/text_filter.vcproj
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="text_filter"
+	ProjectGUID="{C931C7A2-074E-4150-9E7A-39A03250411D}"
+	RootNamespace="text_filter"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				Description="Constructing input.txt"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\doc\*.txt"+"$(TBB20_INSTALL_DIR)\doc\html\*.html" input.txt >NUL"
+				Outputs="input.txt"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				Description="Constructing input.txt"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\doc\*.txt"+"$(TBB20_INSTALL_DIR)\doc\html\*.html" input.txt >NUL"
+				Outputs="input.txt"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				Description="Constructing input.txt"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\doc\*.txt"+"$(TBB20_INSTALL_DIR)\doc\html\*.html" input.txt >NUL"
+				Outputs="input.txt"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				Description="Constructing input.txt"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\doc\*.txt"+"$(TBB20_INSTALL_DIR)\doc\html\*.html" input.txt >NUL"
+				Outputs="input.txt"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\text_filter.cpp"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/pipeline/text_filter/xcode/text_filter.xcodeproj/project.pbxproj b/examples/pipeline/text_filter/xcode/text_filter.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..de0763e
--- /dev/null
+++ b/examples/pipeline/text_filter/xcode/text_filter.xcodeproj/project.pbxproj
@@ -0,0 +1,314 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A1F593A60B8F042A00073279 /* text_filter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* text_filter.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8DD76F6C0486A84900D96B5E /* text_filter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = text_filter; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F593A50B8F042A00073279 /* text_filter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = text_filter.cpp; path = ../text_filter.cpp; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* text_filter */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = text_filter;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593A50B8F042A00073279 /* text_filter.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* text_filter */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* text_filter */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "text_filter" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+				A1F594850B8F293800073279 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = text_filter;
+			productInstallPath = "$(HOME)/bin";
+			productName = text_filter;
+			productReference = 8DD76F6C0486A84900D96B5E /* text_filter */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "text_filter" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* text_filter */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* text_filter */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		A1F594850B8F293800073279 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+				"$(TARGET_BUILD_DIR)/input.txt",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "cat /usr/include/*.h >$TARGET_BUILD_DIR/input.txt";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593A60B8F042A00073279 /* text_filter.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = text_filter;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = text_filter;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = text_filter;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = text_filter;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "text_filter" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "text_filter" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/task/index.html b/examples/task/index.html
new file mode 100644
index 0000000..3f8ba28
--- /dev/null
+++ b/examples/task/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory has examples of how to use the raw task scheduler.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="tree_sum/index.html">tree_sum</A>
+<DD>Sum values in a tree.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/task/tree_sum/Makefile b/examples/task/tree_sum/Makefile
new file mode 100644
index 0000000..f75fdcc
--- /dev/null
+++ b/examples/task/tree_sum/Makefile
@@ -0,0 +1,46 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+PROG=sum_tree
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb -ltbbmalloc
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug -ltbbmalloc_debug
+
+clean:
+	rm -f $(PROG) *.o *.d
+
+test:
+	./$(PROG)
+	./$(PROG) -stdmalloc
diff --git a/examples/task/tree_sum/Makefile.windows b/examples/task/tree_sum/Makefile.windows
new file mode 100644
index 0000000..6d08507
--- /dev/null
+++ b/examples/task/tree_sum/Makefile.windows
@@ -0,0 +1,46 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Tree_sum
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib tbbmalloc.lib $(MYLDFLAGS)
+debug:
+	$(CXX) *.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib tbbmalloc_debug.lib $(MYLDFLAGS)
+clean:
+	@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest
+test:
+	$(PROG)
+	$(PROG) -stdmalloc
diff --git a/examples/task/tree_sum/OptimizedParallelSumTree.cpp b/examples/task/tree_sum/OptimizedParallelSumTree.cpp
new file mode 100644
index 0000000..4933beb
--- /dev/null
+++ b/examples/task/tree_sum/OptimizedParallelSumTree.cpp
@@ -0,0 +1,77 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "common.h"
+#include "tbb/task.h"
+
+class OptimizedSumTask: public tbb::task {
+    Value* const sum;
+    TreeNode* root;
+    bool is_continuation;
+    Value x, y;
+public:
+    OptimizedSumTask( TreeNode* root_, Value* sum_ ) : root(root_), sum(sum_), is_continuation(false) {
+    }
+    tbb::task* execute() {
+        tbb::task* next = NULL;
+        if( !is_continuation ) {
+            if( root->node_count<1000 ) {
+                *sum = SerialSumTree(root);
+            } else {
+                // Create tasks before spawning any of them.
+                tbb::task* a = NULL;
+                tbb::task* b = NULL;
+                if( root->left )
+                    a = new( allocate_child() ) OptimizedSumTask(root->left,&x);
+                if( root->right )
+                    b = new( allocate_child() ) OptimizedSumTask(root->right,&y);
+                recycle_as_continuation();
+                is_continuation = true;
+                set_ref_count( (a!=NULL)+(b!=NULL) );
+                if( a )
+                    if( b ) spawn(*b);
+                else 
+                    a = b;
+                next = a;
+            }
+        } else {
+            *sum = root->value;
+            if( root->left ) *sum += x;
+            if( root->right ) *sum += y;
+        } 
+        return next;
+    }
+};
+
+Value OptimizedParallelSumTree( TreeNode* root ) {
+    Value sum;
+    OptimizedSumTask& a = *new(tbb::task::allocate_root()) OptimizedSumTask(root,&sum);
+    tbb::task::spawn_root_and_wait(a);
+    return sum;
+}
+
diff --git a/examples/task/tree_sum/SerialSumTree.cpp b/examples/task/tree_sum/SerialSumTree.cpp
new file mode 100644
index 0000000..450972c
--- /dev/null
+++ b/examples/task/tree_sum/SerialSumTree.cpp
@@ -0,0 +1,38 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "common.h"
+
+Value SerialSumTree( TreeNode* root ) {
+    Value result = root->value;
+    if( root->left )
+        result += SerialSumTree(root->left);
+    if( root->right )
+        result += SerialSumTree(root->right);
+    return result;
+}
diff --git a/examples/task/tree_sum/SimpleParallelSumTree.cpp b/examples/task/tree_sum/SimpleParallelSumTree.cpp
new file mode 100644
index 0000000..99da8eb
--- /dev/null
+++ b/examples/task/tree_sum/SimpleParallelSumTree.cpp
@@ -0,0 +1,70 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "common.h"
+#include "tbb/task.h"
+
+class SimpleSumTask: public tbb::task {
+    Value* const sum;
+    TreeNode* root;
+public:
+    SimpleSumTask( TreeNode* root_, Value* sum_ ) : root(root_), sum(sum_) {}
+    task* execute() {
+        if( root->node_count<1000 ) {
+            *sum = SerialSumTree(root);
+        } else {
+            Value x, y;
+            int count = 1; 
+            tbb::task_list list;
+            if( root->left ) {
+                ++count;
+                list.push_back( *new( allocate_child() ) SimpleSumTask(root->left,&x) );
+            }
+            if( root->right ) {
+                ++count;
+                list.push_back( *new( allocate_child() ) SimpleSumTask(root->right,&y) );
+            }
+            // Argument to set_ref_count is one more than size of the list,
+            // because spawn_and_wait_for_all expects an augmented ref_count.
+            set_ref_count(count);
+            spawn_and_wait_for_all(list);
+            *sum = root->value;
+            if( root->left ) *sum += x;
+            if( root->right ) *sum += y;
+        }
+        return NULL;
+    }
+};
+
+Value SimpleParallelSumTree( TreeNode* root ) {
+    Value sum;
+    SimpleSumTask& a = *new(tbb::task::allocate_root()) SimpleSumTask(root,&sum);
+    tbb::task::spawn_root_and_wait(a);
+    return sum;
+}
+
diff --git a/examples/task/tree_sum/common.h b/examples/task/tree_sum/common.h
new file mode 100644
index 0000000..c4531ea
--- /dev/null
+++ b/examples/task/tree_sum/common.h
@@ -0,0 +1,44 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+typedef float Value;
+
+struct TreeNode {
+    //! Pointer to left subtree
+    TreeNode* left; 
+    //! Pointer to right subtree
+    TreeNode* right;
+    //! Number of nodes in this subtree, including this node.
+    long node_count;
+    //! Value associated with the node.
+    Value value;
+};
+
+Value SerialSumTree( TreeNode* root );
+Value SimpleParallelSumTree( TreeNode* root );
+Value OptimizedParallelSumTree( TreeNode* root );
diff --git a/examples/task/tree_sum/index.html b/examples/task/tree_sum/index.html
new file mode 100644
index 0000000..29d4e18
--- /dev/null
+++ b/examples/task/tree_sum/index.html
@@ -0,0 +1,77 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains a simple example that sums values in a tree.
+The example exhibits some speedup, but not a lot,  because it quickly saturates 
+the system bus on a multiprocessor.  For good speedup, there needs to be 
+more computation cycles per memory reference.  The point of the example 
+is to teach how to use the raw task interface, so the computation is
+deliberately trivial.
+<P>
+The performance of this example is better when objects are allocated
+by the Threading Building Blocks scalable_allocator instead of
+the default "operator new".  The reason is that the scalable_allocator typically
+packs small objects more tightly than the default "operator new", resulting in
+a smaller memory footprint, and thus more efficient use of cache and virtual memory.
+In addition, the scalable_allocator performs better for multi-threaded allocations.
+</P>
+<H2>Files</H2>
+<DL>
+<DT><A HREF="SerialSumTree.cpp">SerialSumTree.cpp</A>
+<DD>Sums sequentially.
+<DT><A HREF="SimpleParallelSumTree.cpp">SimpleParallelSumTree.cpp</A><DT>
+<DD>Sums in parallel without any fancy tricks.
+<DT><A HREF="OptimizedParallelSumTree.cpp">OptimizedParallelSumTree.cpp</A><DT>
+<DD>Sums in parallel, using "recycling" and "continuation-passing" tricks. 
+    In this case, it is only slightly faster than the simple version.  
+<DT><A HREF="common.h">common.h</A>
+<DD>Shared declarations.
+<DT><A HREF="main.cpp">main.cpp</A>
+<DD>Driver.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A>
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+<P></P>
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>tree_sum [-stdmalloc] <I>S</I> <I>N</I></TT>
+<DD><I>S</I> is the problem size (the number of nodes in the tree).
+    <I>N</I> is the number of threads to be used.
+    <BR>
+    Passing "-stdmalloc" as the 1st parameter causes the default "operator new"
+    to be used for memory allocations instead of the TBB scalable_allocator.
+
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with a small problem size and the desired number of threads, e.g., <TT>tree_sum 100000 4</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/examples/task/tree_sum/main.cpp b/examples/task/tree_sum/main.cpp
new file mode 100644
index 0000000..5870bd3
--- /dev/null
+++ b/examples/task/tree_sum/main.cpp
@@ -0,0 +1,193 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "common.h"
+#include "tbb/tick_count.h"
+#include "tbb/task.h"
+#include "tbb/task_scheduler_init.h"
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
+
+// The performance of this example can be significantly better when
+// the objects are allocated by the scalable_allocator instead of the
+// default "operator new".  The reason is that the scalable_allocator
+// typically packs small objects more tightly than the default "operator new",
+// resulting in a smaller memory footprint, and thus more efficient use of
+// cache and virtual memory.  Also the scalable_allocator works faster for
+// multi-threaded allocations.
+//
+// Pass -stdmalloc as the 1st command line parameter to use the default "operator new"
+// and see the performance difference.
+
+#include "tbb/scalable_allocator.h"
+
+using namespace std;
+
+static double Pi = 3.14159265358979;
+
+const bool tbbmalloc = true;
+const bool stdmalloc = false;
+
+template<bool use_tbbmalloc>
+class TreeMaker {
+
+    class SubTreeCreationTask: public tbb::task {
+        TreeNode*& my_root;
+        bool is_continuation;
+        typedef TreeMaker<use_tbbmalloc> MyTreeMaker;
+
+    public:
+        SubTreeCreationTask( TreeNode*& root, long number_of_nodes ) : my_root(root), is_continuation(false) {
+            my_root = MyTreeMaker::allocate_node();
+            my_root->node_count = number_of_nodes;
+            my_root->value = Value(Pi*number_of_nodes);
+        }
+
+        tbb::task* execute() {
+            tbb::task* next = NULL;
+            if( !is_continuation ) {
+                long subtree_size = my_root->node_count - 1;
+                if( subtree_size<1000 ) { /* grainsize */
+                    my_root->left  = MyTreeMaker::do_in_one_thread(subtree_size/2);
+                    my_root->right = MyTreeMaker::do_in_one_thread(subtree_size - subtree_size/2);
+                } else {
+                    // Create tasks before spawning any of them.
+                    tbb::task* a = new( allocate_child() ) SubTreeCreationTask(my_root->left,subtree_size/2);
+                    tbb::task* b = new( allocate_child() ) SubTreeCreationTask(my_root->right,subtree_size - subtree_size/2);
+                    recycle_as_continuation();
+                    is_continuation = true;
+                    set_ref_count(2);
+                    spawn(*b);
+                    next = a;
+                }
+            } 
+            return next;
+        }
+    };
+
+public:
+    static TreeNode* allocate_node() {
+        return use_tbbmalloc? tbb::scalable_allocator<TreeNode>().allocate(1) : new TreeNode;
+    }
+
+    static TreeNode* do_in_one_thread( long number_of_nodes ) {
+        if( number_of_nodes==0 ) {
+            return NULL;
+        } else {
+            TreeNode* n = allocate_node();
+            n->node_count = number_of_nodes;
+            n->value = Value(Pi*number_of_nodes);
+            --number_of_nodes;
+            n->left  = do_in_one_thread( number_of_nodes/2 ); 
+            n->right = do_in_one_thread( number_of_nodes - number_of_nodes/2 );
+            return n;
+        }
+    }
+
+    static TreeNode* do_in_parallel( long number_of_nodes ) {
+        TreeNode* root_node;
+        SubTreeCreationTask& a = *new(tbb::task::allocate_root()) SubTreeCreationTask(root_node, number_of_nodes);
+        tbb::task::spawn_root_and_wait(a);
+        return root_node;
+    }
+
+    static TreeNode* create_and_time( long number_of_nodes ) {
+        tbb::tick_count t0, t1;
+        TreeNode* root = allocate_node();
+        root->node_count = number_of_nodes;
+        root->value = Value(Pi*number_of_nodes);
+        --number_of_nodes;
+
+        t0 = tbb::tick_count::now();
+        root->left  = do_in_one_thread( number_of_nodes/2 );
+        t1 = tbb::tick_count::now();
+        printf ("%24s: time = %.1f msec\n", "half created serially", (t1-t0).seconds()*1000);
+
+        t0 = tbb::tick_count::now();
+        root->right = do_in_parallel( number_of_nodes - number_of_nodes/2 );
+        t1 = tbb::tick_count::now();
+        printf ("%24s: time = %.1f msec\n", "half done in parallel", (t1-t0).seconds()*1000);
+
+        return root;
+    }
+};
+
+int main( int argc, char *argv[] ) {
+    // Parse command line parameters
+    // The format is: <exe_name> [-stdmalloc] [num_of_nodes [num_of_threads]]
+    bool use_tbbmalloc = true;
+    int arg_idx = 1;
+    if( argc>1 && strcmp(argv[1], "-stdmalloc")==0 ) {
+        use_tbbmalloc = false;
+        arg_idx = 2;
+    }
+    long number_of_nodes = argc>arg_idx ? strtol(argv[arg_idx],0,0) : 10000000;
+    ++arg_idx;
+    int nthread = argc>arg_idx ? strtol(argv[arg_idx],0,0) : tbb::task_scheduler_init::automatic;
+
+    // Start up scheduler
+    // For production, no argument should be provided to the constructor, so that
+    // the application gets the number of threads that are physically available.
+    tbb::task_scheduler_init init(nthread);
+
+    TreeNode* root;
+    if( use_tbbmalloc ) {
+        printf("Tree creation using TBB scalable allocator\n");
+        root = TreeMaker<tbbmalloc>::create_and_time( number_of_nodes );
+    } else {
+        printf("Tree creation using standard operator new\n");
+        root = TreeMaker<stdmalloc>::create_and_time( number_of_nodes );
+    }
+
+    // Warm up caches
+    SerialSumTree(root);
+    printf("Calculations:\n");
+    const char* which;
+    for( int i=0; i<3; ++i ) {
+        tbb::tick_count t0 = tbb::tick_count::now();
+        Value result;
+        switch( i ) {
+            case 0: 
+                which = "SerialSumTree";
+                result = SerialSumTree(root); 
+                break;
+            case 1: 
+                which = "SimpleParallelSumTree";
+                result = SimpleParallelSumTree(root); 
+                break;
+            case 2: 
+                which = "OptimizedParallelSumTree";
+                result = OptimizedParallelSumTree(root); 
+                break;
+        }
+        tbb::tick_count t1 = tbb::tick_count::now();
+        printf ("%24s: time = %.1f msec, sum=%g\n", which, (t1-t0).seconds()*1000, result);
+    }
+    return 0;
+}
diff --git a/examples/task/tree_sum/vc7.1/tree_sum.sln b/examples/task/tree_sum/vc7.1/tree_sum.sln
new file mode 100644
index 0000000..2c1d774
--- /dev/null
+++ b/examples/task/tree_sum/vc7.1/tree_sum.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tree_sum", "tree_sum.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Debug.ActiveCfg = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Debug.Build.0 = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Release.ActiveCfg = Release|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411D}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/task/tree_sum/vc7.1/tree_sum.suo b/examples/task/tree_sum/vc7.1/tree_sum.suo
new file mode 100644
index 0000000..60eb2f2
Binary files /dev/null and b/examples/task/tree_sum/vc7.1/tree_sum.suo differ
diff --git a/examples/task/tree_sum/vc7.1/tree_sum.vcproj b/examples/task/tree_sum/vc7.1/tree_sum.vcproj
new file mode 100644
index 0000000..e1182b1
--- /dev/null
+++ b/examples/task/tree_sum/vc7.1/tree_sum.vcproj
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="tree_sum"
+	ProjectGUID="{C931C7A2-074E-4150-9E7A-39A03250411D}"
+	RootNamespace="tree_sum"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib tbbmalloc_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll and tbbmalloc_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)" && copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbbmalloc_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib tbbmalloc.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll and tbbmalloc.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)" && copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbbmalloc.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\main.cpp">
+			</File>
+			<File
+				RelativePath="..\OptimizedParallelSumTree.cpp">
+			</File>
+			<File
+				RelativePath="..\SerialSumTree.cpp">
+			</File>
+			<File
+				RelativePath="..\SimpleParallelSumTree.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="">
+			<File
+				RelativePath="..\common.h">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/task/tree_sum/vc8/tree_sum.sln b/examples/task/tree_sum/vc8/tree_sum.sln
new file mode 100644
index 0000000..d417699
--- /dev/null
+++ b/examples/task/tree_sum/vc8/tree_sum.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tree_sum", "tree_sum.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64
+		{C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/task/tree_sum/vc8/tree_sum.suo b/examples/task/tree_sum/vc8/tree_sum.suo
new file mode 100644
index 0000000..d03bcea
Binary files /dev/null and b/examples/task/tree_sum/vc8/tree_sum.suo differ
diff --git a/examples/task/tree_sum/vc8/tree_sum.vcproj b/examples/task/tree_sum/vc8/tree_sum.vcproj
new file mode 100644
index 0000000..4eda874
--- /dev/null
+++ b/examples/task/tree_sum/vc8/tree_sum.vcproj
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="tree_sum"
+	ProjectGUID="{C931C7A2-074E-4150-9E7A-39A03250411E}"
+	RootNamespace="tree_sum"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib tbbmalloc_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll and tbbmalloc_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)" && copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbbmalloc_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib tbbmalloc_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll and tbbmalloc_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)" && copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbbmalloc_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib tbbmalloc.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll and tbbmalloc.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)" && copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbbmalloc.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib tbbmalloc.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll and tbbmalloc.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)" && copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbbmalloc.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\common.h"
+				>
+			</File>
+			<File
+				RelativePath="..\main.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\OptimizedParallelSumTree.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\SerialSumTree.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\SimpleParallelSumTree.cpp"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj b/examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..2e977df
--- /dev/null
+++ b/examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj
@@ -0,0 +1,325 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		05593A100B8F4F4500DE73AB /* common.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 05593A0B0B8F4F4500DE73AB /* common.h */; };
+		05593A110B8F4F4500DE73AB /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0C0B8F4F4500DE73AB /* main.cpp */; };
+		05593A120B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0D0B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp */; };
+		05593A130B8F4F4500DE73AB /* SerialSumTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0E0B8F4F4500DE73AB /* SerialSumTree.cpp */; };
+		05593A140B8F4F4500DE73AB /* SimpleParallelSumTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0F0B8F4F4500DE73AB /* SimpleParallelSumTree.cpp */; };
+		05593A160B8F4F5D00DE73AB /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */; };
+		05593A170B8F4F6E00DE73AB /* libtbbmalloc.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+				05593A170B8F4F6E00DE73AB /* libtbbmalloc.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		05593A4A0B8F51E000DE73AB /* tree_sum */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tree_sum; sourceTree = BUILT_PRODUCTS_DIR; };
+		05593A0B0B8F4F4500DE73AB /* common.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../common.h; sourceTree = SOURCE_ROOT; };
+		05593A0C0B8F4F4500DE73AB /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = SOURCE_ROOT; };
+		05593A0D0B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = OptimizedParallelSumTree.cpp; path = ../OptimizedParallelSumTree.cpp; sourceTree = SOURCE_ROOT; };
+		05593A0E0B8F4F4500DE73AB /* SerialSumTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SerialSumTree.cpp; path = ../SerialSumTree.cpp; sourceTree = SOURCE_ROOT; };
+		05593A0F0B8F4F4500DE73AB /* SimpleParallelSumTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SimpleParallelSumTree.cpp; path = ../SimpleParallelSumTree.cpp; sourceTree = SOURCE_ROOT; };
+		05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbbmalloc.dylib; sourceTree = "<absolute>"; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+				05593A160B8F4F5D00DE73AB /* libtbbmalloc.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* tree_sum */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = tree_sum;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				05593A0B0B8F4F4500DE73AB /* common.h */,
+				05593A0C0B8F4F4500DE73AB /* main.cpp */,
+				05593A0D0B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp */,
+				05593A0E0B8F4F4500DE73AB /* SerialSumTree.cpp */,
+				05593A0F0B8F4F4500DE73AB /* SimpleParallelSumTree.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				05593A4A0B8F51E000DE73AB /* tree_sum */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */,
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* tree_sum */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "tree_sum" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = tree_sum;
+			productInstallPath = "$(HOME)/bin";
+			productName = tree_sum;
+			productReference = 05593A4A0B8F51E000DE73AB /* tree_sum */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "tree_sum" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* tree_sum */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* tree_sum */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				05593A110B8F4F4500DE73AB /* main.cpp in Sources */,
+				05593A120B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp in Sources */,
+				05593A130B8F4F4500DE73AB /* SerialSumTree.cpp in Sources */,
+				05593A140B8F4F4500DE73AB /* SimpleParallelSumTree.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = tree_sum;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = tree_sum;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = tree_sum;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = tree_sum;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "tree_sum" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "tree_sum" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/test_all/fibonacci/Fibonacci.cpp b/examples/test_all/fibonacci/Fibonacci.cpp
new file mode 100644
index 0000000..1f27787
--- /dev/null
+++ b/examples/test_all/fibonacci/Fibonacci.cpp
@@ -0,0 +1,583 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/* Example program that computes Fibonacci numbers in different ways.
+   Arguments are: [ Number [Threads [Repeats]]]
+   The defaults are Number=100 Threads=1:4 Repeats=1.
+
+   The point of this program is to check that the library is working properly.
+   Most of the computations are deliberately silly and not expected to
+   show any speedup on multiprocessors.
+*/
+#include <cstdio>
+#include <cstdlib>
+#include <cassert>
+#include <utility>
+#include "tbb/task.h"
+#include "tbb/task_scheduler_init.h"
+#include "tbb/tick_count.h"
+#include "tbb/blocked_range.h"
+#include "tbb/concurrent_vector.h"
+#include "tbb/concurrent_queue.h"
+#include "tbb/concurrent_hash_map.h"
+#include "tbb/parallel_while.h"
+#include "tbb/parallel_for.h"
+#include "tbb/parallel_reduce.h"
+#include "tbb/parallel_scan.h"
+#include "tbb/pipeline.h"
+#include "tbb/atomic.h"
+#include "tbb/mutex.h"
+#include "tbb/spin_mutex.h"
+#include "tbb/queuing_mutex.h"
+
+using namespace std;
+using namespace tbb;
+
+//! type used for Fibonacci number computations
+typedef long long value;
+
+//! Matrix 2x2 class
+struct Matrix2x2
+{
+    //! Array of values
+    value v[2][2];
+    Matrix2x2() {}
+    Matrix2x2(value v00, value v01, value v10, value v11) {
+        v[0][0] = v00; v[0][1] = v01; v[1][0] = v10; v[1][1] = v11;
+    }
+    Matrix2x2 operator * (const Matrix2x2 &to) const; //< Multiply two Matrices
+};
+//! Default matrix to multiply
+static const Matrix2x2 Matrix1110(1, 1, 1, 0);
+//! Raw arrays matrices multiply
+void Matrix2x2Multiply(const value a[2][2], const value b[2][2], value c[2][2]);
+
+/////////////////////// Serial methods ////////////////////////
+
+//! Plain serial sum
+value SerialFib(int n)
+{
+    if(n < 2)
+        return n;
+    value a = 0, b = 1, sum; int i;
+    for( i = 2; i <= n; i++ )
+    {   // n is really index of Fibonacci number
+        sum = a + b; a = b; b = sum;
+    }
+    return sum;
+}
+//! Serial n-1 matrices multiplication
+value SerialMatrixFib(int n)
+{
+    value c[2][2], a[2][2] = {{1, 1}, {1, 0}}, b[2][2] = {{1, 1}, {1, 0}}; int i;
+    for(i = 2; i < n; i++)
+    {   // Using condition to prevent copying of values
+        if(i & 1) Matrix2x2Multiply(a, c, b);
+        else      Matrix2x2Multiply(a, b, c);
+    }
+    return (i & 1) ? c[0][0] : b[0][0]; // get result from upper left cell
+}
+//! Recursive summing. Just for complete list of serial algorithms, not used
+value SerialRecursiveFib(int n)
+{
+    value result;
+    if(n < 2)
+        result = n;
+    else
+        result = SerialRecursiveFib(n - 1) + SerialRecursiveFib(n - 2);
+    return result;
+}
+//! Introducing of queue method in serial
+value SerialQueueFib(int n)
+{
+    concurrent_queue<Matrix2x2> Q;
+    for(int i = 1; i < n; i++)
+        Q.push(Matrix1110);
+    Matrix2x2 A, B;
+    while(true) {
+        Q.pop(A);
+        if(Q.empty()) break;
+        Q.pop(B);
+        Q.push(A * B);
+    }
+    return A.v[0][0];
+}
+//! Trying to use concurrent_vector
+value SerialVectorFib(int n)
+{
+    concurrent_vector<value> A;
+    A.grow_by(2);
+    A[0] = 0; A[1] = 1;
+    for( int i = 2; i <= n; i++)
+    {
+        A.grow_to_at_least(i+1);
+        A[i] = A[i-1] + A[i-2];
+    }
+    return A[n];
+}
+
+///////////////////// Parallel methods ////////////////////////
+
+// *** Serial shared by mutexes *** //
+
+//! Shared glabals
+value SharedA = 0, SharedB = 1; int SharedI = 1, SharedN;
+
+//! Template task class which computes Fibonacci numbers with shared globals
+template<typename M>
+class SharedSerialFibBody {
+    M &mutex;
+public:
+    SharedSerialFibBody( M &m ) : mutex( m ) {}
+    //! main loop
+    void operator()( const blocked_range<int>& range ) const {
+        for(;;) {
+            typename M::scoped_lock lock( mutex );
+            if(SharedI >= SharedN) break;
+            value sum = SharedA + SharedB;
+            SharedA = SharedB; SharedB = sum;
+            ++SharedI;
+        }
+    }
+};
+
+//! Root function
+template<class M>
+value SharedSerialFib(int n)
+{
+    SharedA = 0; SharedB = 1; SharedI = 1; SharedN = n; M mutex;
+    parallel_for( blocked_range<int>(0,4,1), SharedSerialFibBody<M>( mutex ) );
+    return SharedB;
+}
+
+// *** Serial shared by concurrent hash *** //
+
+//! Hash comparer
+struct IntHashCompare {
+    bool equal( const int j, const int k ) const { return j == k; }
+    unsigned long hash( const int k ) const { return (unsigned long)k; }   
+};
+//! NumbersTable type based on concurrent_hash_map
+typedef concurrent_hash_map<int, value, IntHashCompare> NumbersTable;
+//! task for serial method using shared concurrent_hash_map
+class ConcurrentHashSerialFibTask: public task {
+    NumbersTable &Fib;
+    int my_n;
+public:
+    //! constructor
+    ConcurrentHashSerialFibTask( NumbersTable &cht, int n ) : Fib(cht), my_n(n) { }
+    //! executing task
+    /*override*/ task* execute()
+    {
+        for( int i = 2; i <= my_n; ++i ) { // there is no difference in to recycle or to make loop
+            NumbersTable::const_accessor f1, f2; // same as iterators
+            if( !Fib.find(f1, i-1) || !Fib.find(f2, i-2) ) {
+                // Something is seriously wrong, because i-1 and i-2 must have been inserted 
+                // earlier by this thread or another thread.
+                assert(0);
+            }
+            value sum = f1->second + f2->second;
+            NumbersTable::accessor fsum;
+            if(Fib.insert(fsum, i)) // inserting. is new element?
+                fsum->second = sum; // new, assign value
+            else
+                assert( fsum->second == sum ); // no, check value
+        }
+        return 0;
+    }
+};
+
+//! Root function
+value ConcurrentHashSerialFib(int n)
+{
+    NumbersTable Fib; 
+    {   // We need to declare the accessor in a local block before using its values outside the block.
+        NumbersTable::accessor fref;
+        bool okay;
+        okay = Fib.insert(fref, 0); assert(okay); fref->second = 0; // assign initial values
+        okay = Fib.insert(fref, 1); assert(okay); fref->second = 1;
+        // Lifetime of fref ends here, which implicitly releases the write lock on what it points to.
+    }
+    task_list list;
+    // allocate tasks
+    list.push_back(*new(task::allocate_root()) ConcurrentHashSerialFibTask(Fib, n));
+    list.push_back(*new(task::allocate_root()) ConcurrentHashSerialFibTask(Fib, n));
+    task::spawn_root_and_wait(list);
+    NumbersTable::const_accessor fresult;
+    bool okay = Fib.find( fresult, n );
+    assert(okay);
+    return fresult->second;
+}
+
+// *** Queue with parallel_for and parallel_while *** //
+
+//! Stream of matrices
+struct QueueStream {
+    volatile bool producer_is_done;
+    concurrent_queue<Matrix2x2> Queue;
+    //! Get pair of matricies if present
+    bool pop_if_present( pair<Matrix2x2, Matrix2x2> &mm ) {
+        // get first matrix if present
+        if(!Queue.pop_if_present(mm.first)) return false;
+        // get second matrix if present
+        if(!Queue.pop_if_present(mm.second)) {
+            // if not, then push back first matrix
+            Queue.push(mm.first); return false;
+        }
+        return true;
+    }
+};
+
+//! Functor for parallel_for which fills the queue
+struct parallel_forFibBody { 
+    QueueStream &my_stream;
+    //! fill functor arguments
+    parallel_forFibBody(QueueStream &s) : my_stream(s) { }
+    //! iterate thorough range
+    void operator()( const blocked_range<int> &range ) const {
+        int i_end = range.end();
+        for( int i = range.begin(); i != i_end; ++i ) {
+            my_stream.Queue.push( Matrix1110 ); // push initial matrix
+        }
+    }
+};
+//! Functor for parallel_while which process the queue
+class parallel_whileFibBody
+{
+    QueueStream &my_stream;
+    parallel_while<parallel_whileFibBody> &my_while;
+public:
+    typedef pair<Matrix2x2, Matrix2x2> argument_type;
+    //! fill functor arguments
+    parallel_whileFibBody(parallel_while<parallel_whileFibBody> &w, QueueStream &s)
+        : my_while(w), my_stream(s) { }
+    //! process pair of matrices
+    void operator() (argument_type mm) const {
+        mm.first = mm.first * mm.second;
+        // note: it can run concurrently with QueueStream::pop_if_present()
+        if(my_stream.Queue.pop_if_present(mm.second))
+             my_while.add( mm ); // now, two matrices available. Add next iteration.
+        else my_stream.Queue.push( mm.first ); // or push back calculated value if queue is empty
+    }
+};
+
+//! Parallel queue's filling task
+struct QueueInsertTask: public task {
+    QueueStream &my_stream;
+    int my_n;
+    //! fill task arguments
+    QueueInsertTask( int n, QueueStream &s ) : my_n(n), my_stream(s) { }
+    //! executing task
+    /*override*/ task* execute() {
+        // Execute of parallel pushing of n-1 initial matrices
+        parallel_for( blocked_range<int>( 1, my_n, 10 ), parallel_forFibBody(my_stream) ); 
+        my_stream.producer_is_done = true; 
+        return 0;
+    }
+};
+//! Parallel queue's processing task
+struct QueueProcessTask: public task {
+    QueueStream &my_stream;
+    //! fill task argument
+    QueueProcessTask( QueueStream &s ) : my_stream(s) { }
+    //! executing task
+    /*override*/ task* execute() {
+        while( !my_stream.producer_is_done || my_stream.Queue.size()>1 ) {
+            parallel_while<parallel_whileFibBody> w; // run while loop in parallel
+            w.run( my_stream, parallel_whileFibBody( w, my_stream ) );
+        }
+        return 0;
+    }
+};
+//! Root function
+value ParallelQueueFib(int n)
+{
+    QueueStream stream;
+    stream.producer_is_done = false;
+    task_list list;
+    list.push_back(*new(task::allocate_root()) QueueInsertTask( n, stream ));
+    list.push_back(*new(task::allocate_root()) QueueProcessTask( stream ));
+    // last runs first - scheduler is as LIFO
+    task::spawn_root_and_wait(list);
+    assert(stream.Queue.size() == 1); // it is easy to lose some work
+    Matrix2x2 M; stream.Queue.pop( M ); // get last matrix
+    return M.v[0][0]; // and result number
+}
+
+// *** Queue with pipeline *** //
+
+//! filter to fills queue
+class InputFilter: public filter {
+    atomic<int> N; //< index of Fibonacci number
+public:
+    concurrent_queue<Matrix2x2> Queue;
+    //! fill filter arguments
+    InputFilter( int n ) : filter(false /*is not serial*/) { N = n; }
+    //! executing filter
+    /*override*/ void* operator()(void*)
+    {
+        int n = --N;
+        if(n <= 0) return 0;
+        Queue.push( Matrix1110 );
+        return n == 1? 0 : &Queue; // one less multiplications
+    }
+};
+//! filter to process queue
+class MultiplyFilter: public filter {
+public:
+    MultiplyFilter( ) : filter(false /*is not serial*/) { }
+    //! executing filter
+    /*override*/ void* operator()(void*p)
+    {
+        concurrent_queue<Matrix2x2> &Queue = *static_cast<concurrent_queue<Matrix2x2> *>(p);
+        Matrix2x2 m1, m2;
+        Queue.pop( m1 ); Queue.pop( m2 ); // get two elements
+        m1 = m1 * m2; // process them
+        Queue.push( m1 ); // and push back
+        return this; // just nothing
+    }
+};
+//! Root function
+value ParallelPipeFib(int n)
+{
+    InputFilter input( n );
+    MultiplyFilter process;
+    // Create the pipeline
+    pipeline pipeline;
+    // add filters
+    pipeline.add_filter( input ); // first
+    pipeline.add_filter( process ); // second
+
+    // Run the pipeline
+    pipeline.run( n ); // must be larger then max threads number
+    pipeline.clear(); // do not forget clear the pipeline
+
+    Matrix2x2 M; input.Queue.pop( M ); // get last element
+    return M.v[0][0]; // get value
+}
+
+// *** parallel_reduce *** //
+
+//! Functor for parallel_reduce
+struct parallel_reduceFibBody {
+    Matrix2x2 sum;
+    int splitted;  //< flag to make one less operation for splitted bodies
+    //! Constructor fills sum with initial matrix
+    parallel_reduceFibBody() : sum( Matrix1110 ), splitted(0) { }
+    //! Splitting constructor
+    parallel_reduceFibBody( parallel_reduceFibBody& other, split ) : sum( Matrix1110 ), splitted(1/*note that it is splitted*/) {}
+    //! Join point
+    void join( parallel_reduceFibBody &s ) {
+        sum = sum * s.sum;
+    }
+    //! Process multiplications
+    void operator()( const blocked_range<int> &r ) {
+        for( int k = r.begin() + splitted; k < r.end(); ++k )
+            sum = sum * Matrix1110;
+        splitted = 0; // reset flag, because this method can be reused for next range
+    }
+};
+//! Root function
+value parallel_reduceFib(int n)
+{
+    parallel_reduceFibBody b;
+    parallel_reduce(blocked_range<int>(2, n, 3), b); // do parallel reduce on range [2, n) for b
+    return b.sum.v[0][0];
+}
+
+// *** parallel_scan *** //
+
+//! Functor for parallel_scan
+struct parallel_scanFibBody {
+    Matrix2x2 sum;
+    int first;  // flag to make one less operation for first range
+    //! Constructor fills sum with initial matrix
+    parallel_scanFibBody() : sum( Matrix1110 ), first(1) {}
+    //! Splitting constructor
+    parallel_scanFibBody( parallel_scanFibBody &b, split) : sum( Matrix1110 ), first(1) {}
+    //! Join point
+    void reverse_join( parallel_scanFibBody &a ) {
+        sum = sum * a.sum;
+    }
+    //! Assign point
+    void assign( parallel_scanFibBody &b ) {
+        sum = b.sum;
+    }
+    //! Process multiplications. For two tags
+    template<typename T>
+    void operator()( const blocked_range<int> &r, T) {
+        // see tag.is_final_scan() for what tag is used
+        for( int k = r.begin() + first; k < r.end(); ++k )
+            sum = sum * Matrix1110;
+        first = 0; // reset flag, because this method can be reused for next range
+    }
+};
+//! Root function
+value parallel_scanFib(int n)
+{
+    parallel_scanFibBody b;
+    parallel_scan(blocked_range<int>(1/*one less, because body skip first*/, n, 3), b);
+    return b.sum.v[0][0];
+}
+
+// *** Raw tasks *** //
+
+//! task class which computes Fibonacci numbers by Lucas formula
+struct FibTask: public task {
+    const int n;
+    value& sum;
+    value x, y;
+    bool second_phase; //< flag of continuation
+    // task arguments
+    FibTask( int n_, value& sum_ ) : 
+        n(n_), sum(sum_), second_phase(false)
+    {}
+    //! Execute task
+    /*override*/ task* execute() {
+        // Using Lucas' formula here
+        if( second_phase ) { // childs finished
+            sum = n&1 ? x*x + y*y : x*x - y*y;
+            return NULL;
+        }
+        if( n <= 2 ) {
+            sum = n!=0;
+            return NULL;
+        } else {
+            recycle_as_continuation();  // repeat this task when childs finish
+            second_phase = true; // mark second phase
+            FibTask& a = *new( allocate_child() ) FibTask( n/2 + 1, x );
+            FibTask& b = *new( allocate_child() ) FibTask( n/2 - 1 + (n&1), y );
+            set_ref_count(2);
+            spawn( a );
+            return &b;
+        }
+    }
+};
+//! Root function
+value ParallelTaskFib(int n) { 
+    value sum;
+    FibTask& a = *new(task::allocate_root()) FibTask(n, sum);
+    task::spawn_root_and_wait(a);
+    return sum;
+}
+
+/////////////////////////// Main ////////////////////////////////////////////////////
+
+//! A closed range of int.
+struct IntRange {
+    int low;
+    int high;
+    void set_from_string( const char* s );
+    IntRange( int low_, int high_ ) : low(low_), high(high_) {}
+};
+
+void IntRange::set_from_string( const char* s ) {
+    char* end;
+    high = low = strtol(s,&end,0);
+    switch( *end ) {
+    case ':': 
+        high = strtol(end+1,0,0); 
+        break;
+    case '\0':
+        break;
+    default:
+        printf("unexpected character = %c\n",*end);
+    }
+}
+
+//! Tick count for start
+static tick_count t0;
+
+typedef value (*MeasureFunc)(int);
+//! Measure ticks count in loop [2..n]
+value Measure(const char *name, MeasureFunc func, int n)
+{
+    value result;
+    printf(name); t0 = tick_count::now();
+    for(int number = 2; number <= n; number++)
+        result = func(number);
+    printf("\t- in %f msec\n", (tick_count::now() - t0).seconds()*1000);
+    return result;
+}
+
+//! program entry
+int main(int argc, char* argv[])
+{
+    int NumbersCount = argc>1 ? strtol(argv[1],0,0) : 100;
+    IntRange NThread(1,4);// Number of threads to use.
+    if(argc>2) NThread.set_from_string(argv[2]);
+    unsigned long ntrial = argc>3? (unsigned long)strtoul(argv[3],0,0) : 1;
+    value result, sum;
+
+    printf("Fibonacci numbers example. Generating %d numbers..\n",  NumbersCount);
+
+    result = Measure("Serial loop", SerialFib, NumbersCount);
+    sum = Measure("Serial matrix", SerialMatrixFib, NumbersCount); assert(result == sum);
+    sum = Measure("Serial vector", SerialVectorFib, NumbersCount); assert(result == sum);
+    sum = Measure("Serial queue", SerialQueueFib, NumbersCount); assert(result == sum);
+    // now in parallel
+    for( unsigned long i=0; i<ntrial; ++i ) {
+        for(int threads = NThread.low; threads <= NThread.high; threads++)
+        {
+            task_scheduler_init scheduler_init(threads); printf("Threads number is %d\n", threads);
+
+            sum = Measure("Shared serial (mutex)\t", SharedSerialFib<mutex>, NumbersCount); assert(result == sum);
+            sum = Measure("Shared serial (spin_mutex)", SharedSerialFib<spin_mutex>, NumbersCount); assert(result == sum);
+            sum = Measure("Shared serial (queuing_mutex)", SharedSerialFib<queuing_mutex>, NumbersCount); assert(result == sum);
+            sum = Measure("Shared serial (Conc.HashTable)", ConcurrentHashSerialFib, NumbersCount); assert(result == sum);
+            sum = Measure("Parallel while+for/queue", ParallelQueueFib, NumbersCount); assert(result == sum);
+            sum = Measure("Parallel pipe/queue\t", ParallelPipeFib, NumbersCount); assert(result == sum);
+            sum = Measure("Parallel reduce\t\t", parallel_reduceFib, NumbersCount); assert(result == sum);
+            sum = Measure("Parallel scan\t\t", parallel_scanFib, NumbersCount); assert(result == sum);
+            sum = Measure("Parallel tasks\t\t", ParallelTaskFib, NumbersCount); assert(result == sum);
+        }
+
+    #ifdef __GNUC__
+        printf("Fibonacci number #%d modulo 2^64 is %lld\n\n", NumbersCount, result);
+    #else
+        printf("Fibonacci number #%d modulo 2^64 is %I64d\n\n", NumbersCount, result);
+    #endif
+    }
+    return 0;
+}
+
+// Utils
+
+void Matrix2x2Multiply(const value a[2][2], const value b[2][2], value c[2][2])
+{
+    for( int i = 0; i <= 1; i++)
+        for( int j = 0; j <= 1; j++)
+            c[i][j] = a[i][0]*b[0][j] + a[i][1]*b[1][j];
+}
+
+Matrix2x2 Matrix2x2::operator *(const Matrix2x2 &to) const
+{
+    Matrix2x2 result;
+    Matrix2x2Multiply(v, to.v, result.v);
+    return result;
+}
diff --git a/examples/test_all/fibonacci/Makefile b/examples/test_all/fibonacci/Makefile
new file mode 100644
index 0000000..5e57454
--- /dev/null
+++ b/examples/test_all/fibonacci/Makefile
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# GNU Makefile that builds and runs example.
+PROG=fibonacci
+
+# The C++ compiler
+#CXX=g++
+
+all:	release test
+
+release: *.cpp
+	$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb
+
+debug: *.cpp
+	$(CXX) -O0 -g -DTBB_DO_ASSERT $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug
+
+clean:
+	rm -f $(PROG) *.o *.d
+
+test:
+	./$(PROG) 500
diff --git a/examples/test_all/fibonacci/Makefile.windows b/examples/test_all/fibonacci/Makefile.windows
new file mode 100644
index 0000000..0c7f986
--- /dev/null
+++ b/examples/test_all/fibonacci/Makefile.windows
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Common Makefile that builds and runs example.
+
+# Just specify your program basename
+PROG=Fibonacci
+
+# The C++ compiler options
+CXX = cl.exe
+MYCXXFLAGS=/TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS)
+MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO /OUT:$(PROG).exe $(LDFLAGS)
+
+all: release test
+release:
+	$(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MYLDFLAGS)
+debug:
+	$(CXX) *.cpp /MDd /Od /Zi /D TBB_DO_ASSERT /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MYLDFLAGS)
+clean:
+	@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest
+test:
+	$(PROG) 500
diff --git a/examples/test_all/fibonacci/index.html b/examples/test_all/fibonacci/index.html
new file mode 100644
index 0000000..0095280
--- /dev/null
+++ b/examples/test_all/fibonacci/index.html
@@ -0,0 +1,54 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains an example that computes Fibonacci numbers in several
+different ways. The purpose of the example is to exercise every include file
+and class in Threading Building Blocks.
+Most of the computations are deliberately silly and not expected to
+show any speedup on multiprocessors.
+<H2>Files</H2>
+<DL>
+<DT><A HREF="Fibonacci.cpp">Fibonacci.cpp</A>
+<DD>Source code for example.
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Makefile for building example.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="vc7.1">vc7.1</A>
+<DD>Contains Microsoft* Visual Studio* .NET 2003 workspace for building and running the example.
+<DT><A HREF="vc8">vc8</A> 
+<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
+<DT><A HREF="xcode">xcode</A>
+<DD>Contains Xcode* IDE workspace for building and running the example.
+</DL>
+
+<H2>To Build</H2>
+General build directions can be found <A HREF=../../index.html#build>here</A>.
+
+<H2>Usage</H2>
+<DL>
+<DT><TT>fibonacci <I>K</I> [<I>M</I>[:<I>N</I>]] [<I>R</I>]</TT>
+<DD>Calculates the <I>K</I>-th fibonacci number.
+    <I>M</I> and <I>N</I> are a range of numbers of threads to be used.
+    <I>R</I> is the number of times to repeat the calculation.
+<DT>To run a short version of this example, e.g., for use with Intel® Threading Tools:
+<DD>Build a <I>debug</I> version of the example
+    (see the <A HREF=../../index.html#build>build directions</A>).
+    <BR>Run it with a small fibonacci number and the desired number of threads, e.g., <TT>fibonacci 100 4</TT>.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/examples/test_all/fibonacci/vc7.1/fibonacci.sln b/examples/test_all/fibonacci/vc7.1/fibonacci.sln
new file mode 100644
index 0000000..7fc4219
--- /dev/null
+++ b/examples/test_all/fibonacci/vc7.1/fibonacci.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Fibonacci", "Fibonacci.vcproj", "{D3A5A89E-2165-45AD-97D4-1AB22D852826}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{D3A5A89E-2165-45AD-97D4-1AB22D852826}.Debug.ActiveCfg = Debug|Win32
+		{D3A5A89E-2165-45AD-97D4-1AB22D852826}.Debug.Build.0 = Debug|Win32
+		{D3A5A89E-2165-45AD-97D4-1AB22D852826}.Release.ActiveCfg = Release|Win32
+		{D3A5A89E-2165-45AD-97D4-1AB22D852826}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/examples/test_all/fibonacci/vc7.1/fibonacci.suo b/examples/test_all/fibonacci/vc7.1/fibonacci.suo
new file mode 100644
index 0000000..74b19c3
Binary files /dev/null and b/examples/test_all/fibonacci/vc7.1/fibonacci.suo differ
diff --git a/examples/test_all/fibonacci/vc7.1/fibonacci.vcproj b/examples/test_all/fibonacci/vc7.1/fibonacci.vcproj
new file mode 100644
index 0000000..40403b2
--- /dev/null
+++ b/examples/test_all/fibonacci/vc7.1/fibonacci.vcproj
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="fibonacci"
+	ProjectGUID="{D3A5A89E-2165-45AD-97D4-1AB22D852826}"
+	RootNamespace="fibonacci"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb_debug.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc7.1\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc7.1\bin\tbb.dll" "$(OutDir)""/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx">
+			<File
+				RelativePath="..\fibonacci.cpp">
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/test_all/fibonacci/vc8/fibonacci.sln b/examples/test_all/fibonacci/vc8/fibonacci.sln
new file mode 100644
index 0000000..b2cb826
--- /dev/null
+++ b/examples/test_all/fibonacci/vc8/fibonacci.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fibonacci", "fibonacci.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.Build.0 = Debug|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.ActiveCfg = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.Build.0 = Debug|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.ActiveCfg = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.Build.0 = Release|Win32
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.ActiveCfg = Release|x64
+		{3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/examples/test_all/fibonacci/vc8/fibonacci.suo b/examples/test_all/fibonacci/vc8/fibonacci.suo
new file mode 100644
index 0000000..dd720db
Binary files /dev/null and b/examples/test_all/fibonacci/vc8/fibonacci.suo differ
diff --git a/examples/test_all/fibonacci/vc8/fibonacci.vcproj b/examples/test_all/fibonacci/vc8/fibonacci.vcproj
new file mode 100644
index 0000000..d5903ca
--- /dev/null
+++ b/examples/test_all/fibonacci/vc8/fibonacci.vcproj
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="fibonacci"
+	ProjectGUID="{3AA40693-F93D-4D4B-B32E-068F511A252E}"
+	RootNamespace="fibonacci"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;TBB_DO_ASSERT"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb_debug.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb_debug.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb_debug.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(TEMP)\tbb_examples\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				Detect64BitPortabilityProblems="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\ia32\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\ia32\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(TEMP)\tbb_examples\$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(TEMP)\tbb_examples\$(SolutionName)\$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="$(TBB20_INSTALL_DIR)\include"
+				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="tbb.lib"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="$(TBB20_INSTALL_DIR)\em64t\vc8\lib"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+				FixedBaseAddress="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				Description="Copying tbb.dll"
+				CommandLine="copy "$(TBB20_INSTALL_DIR)\em64t\vc8\bin\tbb.dll" "$(OutDir)""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\Fibonacci.cpp"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\index.html"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj b/examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..4652bc2
--- /dev/null
+++ b/examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj
@@ -0,0 +1,296 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A1F593A60B8F042A00073279 /* Fibonacci.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* Fibonacci.cpp */; };
+		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 12;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8DD76F6C0486A84900D96B5E /* Fibonacci */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Fibonacci; sourceTree = BUILT_PRODUCTS_DIR; };
+		A1F593A50B8F042A00073279 /* Fibonacci.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Fibonacci.cpp; path = ../Fibonacci.cpp; sourceTree = SOURCE_ROOT; };
+		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* Fibonacci */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = Fibonacci;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593A50B8F042A00073279 /* Fibonacci.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* Fibonacci */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				A1F593B30B8F06F900073279 /* libtbb.dylib */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* Fibonacci */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Fibonacci" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Fibonacci;
+			productInstallPath = "$(HOME)/bin";
+			productName = Fibonacci;
+			productReference = 8DD76F6C0486A84900D96B5E /* Fibonacci */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "Fibonacci" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* Fibonacci */;
+			projectDirPath = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* Fibonacci */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A1F593A60B8F042A00073279 /* Fibonacci.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = Fibonacci;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = Fibonacci;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release;
+		};
+		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = Fibonacci;
+				ZERO_LINK = NO;
+			};
+			name = Debug64;
+		};
+		A1F593C70B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				INSTALL_PATH = "$(HOME)/bin";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
+				PRODUCT_NAME = Fibonacci;
+				ZERO_LINK = NO;
+			};
+			name = Release64;
+		};
+		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Debug64;
+		};
+		A1F593C90B8F0E6E00073279 /* Release64 */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = i386;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_MODEL_TUNING = "";
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"$(OTHER_CFLAGS)",
+					"-m64",
+				);
+				OTHER_LDFLAGS = "-m64";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SYMROOT = "/tmp/tbb-$(USER)";
+			};
+			name = Release64;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Fibonacci" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				A1F593C60B8F0E6E00073279 /* Debug64 */,
+				1DEB923308733DC60010E9CD /* Release */,
+				A1F593C70B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "Fibonacci" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				A1F593C80B8F0E6E00073279 /* Debug64 */,
+				1DEB923708733DC60010E9CD /* Release */,
+				A1F593C90B8F0E6E00073279 /* Release64 */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/examples/test_all/index.html b/examples/test_all/index.html
new file mode 100644
index 0000000..05082f6
--- /dev/null
+++ b/examples/test_all/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains programs that exercise all the components of Threading Building Blocks.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="fibonacci/index.html">fibonacci</A>
+<DD>Compute Fibonacci numbers in different ways.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/include/index.html b/include/index.html
new file mode 100644
index 0000000..869de18
--- /dev/null
+++ b/include/index.html
@@ -0,0 +1,24 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Include files for Threading Building Blocks.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="tbb">tbb</A>
+<DD>Include files for Threading Building Blocks.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/include/tbb/_tbb_windef.h b/include/tbb/_tbb_windef.h
new file mode 100644
index 0000000..e47aa03
--- /dev/null
+++ b/include/tbb/_tbb_windef.h
@@ -0,0 +1,61 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_tbb_windef_H
+#error Do not #include this file directly.  Use "#include tbb/tbb_stddef.h" instead.
+#endif /* __TBB_tbb_windef_H */
+
+#if !defined(_MT) || !defined(_DLL)
+#    error The library requires dynamic linkage with multithreaded MSVC runtime. \
+           Choose proper project settings or use /MD[d] compiler switch.
+#endif
+
+// Workaround for problem in which MVSC headers fail to define namespace std::.
+namespace std {
+  using ::size_t; using ::ptrdiff_t;
+}
+
+#define __TBB_STRING_AUX(x) #x
+#define __TBB_STRING(x) __TBB_STRING_AUX(x)
+
+// Default setting of TBB_DO_ASSERT
+#ifdef TBB_DO_ASSERT
+#    if TBB_DO_ASSERT 
+#        if !defined(_DEBUG)
+#            pragma message(__FILE__ "(" __TBB_STRING(__LINE__) ") : Warning: Recommend using /MDd if compiling with TBB_DO_ASSERT!=0")
+#        endif
+#    else
+#        if defined(_DEBUG)
+#            pragma message(__FILE__ "(" __TBB_STRING(__LINE__) ") : Warning: Recommend using /MD if compiling with TBB_DO_ASSERT==0")
+#        endif
+#    endif
+#else
+#    ifdef _DEBUG
+#        define TBB_DO_ASSERT 1
+#    endif
+#endif 
diff --git a/include/tbb/aligned_space.h b/include/tbb/aligned_space.h
new file mode 100644
index 0000000..9c85ce7
--- /dev/null
+++ b/include/tbb/aligned_space.h
@@ -0,0 +1,64 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_aligned_space_H
+#define __TBB_aligned_space_H
+
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+//! Block of space aligned sufficiently to construct an array T with N elements.
+/** The elements are not constructed or destroyed by this class.
+    @ingroup memory_allocation */
+template<typename T,size_t N>
+class aligned_space {
+private:
+    union element_type {
+        size_t s;
+        long z;
+#if  _MSC_VER
+        __int64 l;
+#else
+        long long l;
+#endif /*  _MSC_VER */
+        long double x;
+        double y;
+    };
+    element_type array[(sizeof(T)*N+sizeof(element_type)-1)/sizeof(element_type)];
+public:
+    //! Pointer to beginning of array
+    T* begin() {return reinterpret_cast<T*>(this);}
+
+    //! Pointer to one past last element in array.
+    T* end() {return begin()+N;}
+};
+
+} // namespace tbb 
+
+#endif /* __TBB_aligned_space_H */
diff --git a/include/tbb/atomic.h b/include/tbb/atomic.h
new file mode 100644
index 0000000..4ecceea
--- /dev/null
+++ b/include/tbb/atomic.h
@@ -0,0 +1,372 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_atomic_H
+#define __TBB_atomic_H
+
+#include <cstddef>
+#include "tbb_stddef.h"
+
+#if _MSC_VER 
+#define __TBB_LONG_LONG __int64
+#else
+#define __TBB_LONG_LONG long long
+#endif /* _MSC_VER */
+
+#include "tbb_machine.h"
+
+namespace tbb {
+
+//! Specifies memory fencing.
+enum memory_semantics {
+    //! For internal use only.
+    __TBB_full_fence,
+    //! Acquire fence
+    acquire,
+    //! Release fence
+    release
+};
+
+//! @cond INTERNAL
+namespace internal {
+
+template<size_t Size, memory_semantics M>
+struct atomic_traits {       // Primary template
+};
+
+template<size_t Size>
+struct atomic_word {             // Primary template
+    typedef intptr word;
+};
+
+template<typename I>            // Primary template
+struct atomic_base {
+    volatile I my_value;
+};
+
+#if __GNUC__ 
+#define __TBB_DECL_ATOMIC_FIELD(t,f,a) t f  __attribute__ ((aligned(a)));
+#elif defined(__INTEL_COMPILER)||_MSC_VER >= 1300
+#define __TBB_DECL_ATOMIC_FIELD(t,f,a) __declspec(align(a)) t f;
+#else 
+#error Do not know syntax for forcing alignment.
+#endif /* __GNUC__ */
+
+template<>
+struct atomic_word<8> {          // Specialization
+    typedef int64_t word;
+};
+
+#if _WIN32 && __TBB_x86_64
+// ATTENTION: On 64-bit Windows, we currently have to specialize atomic_word
+// for every size to avoid type conversion warnings
+// See declarations of atomic primitives in machine/windows_em64t.h
+template<>
+struct atomic_word<1> {          // Specialization
+    typedef int8_t word;
+};
+template<>
+struct atomic_word<2> {          // Specialization
+    typedef int16_t word;
+};
+template<>
+struct atomic_word<4> {          // Specialization
+    typedef int32_t word;
+};
+#endif
+
+template<>
+struct atomic_base<uint64_t> {   // Specialization
+    __TBB_DECL_ATOMIC_FIELD(volatile uint64_t,my_value,8)
+};
+
+template<>
+struct atomic_base<int64_t> {    // Specialization
+    __TBB_DECL_ATOMIC_FIELD(volatile int64_t,my_value,8)
+};
+
+#define __TBB_DECL_FENCED_ATOMIC_PRIMITIVES(S,M)                         \
+    template<> struct atomic_traits<S,M> {                               \
+        typedef atomic_word<S>::word word;                               \
+        inline static word compare_and_swap( volatile void* location, word new_value, word comparand ) {\
+            return __TBB_CompareAndSwap##S##M(location,new_value,comparand);    \
+        }                                                                       \
+        inline static word fetch_and_add( volatile void* location, word addend ) { \
+            return __TBB_FetchAndAdd##S##M(location,addend);                    \
+        }                                                                       \
+        inline static word fetch_and_store( volatile void* location, word value ) {\
+            return __TBB_FetchAndStore##S##M(location,value);                   \
+        }                                                                       \
+    };
+
+#define __TBB_DECL_ATOMIC_PRIMITIVES(S)                                  \
+    template<memory_semantics M>                                         \
+    struct atomic_traits<S,M> {                                          \
+        typedef atomic_word<S>::word word;                               \
+        inline static word compare_and_swap( volatile void* location, word new_value, word comparand ) {\
+            return __TBB_CompareAndSwap##S(location,new_value,comparand);       \
+        }                                                                       \
+        inline static word fetch_and_add( volatile void* location, word addend ) { \
+            return __TBB_FetchAndAdd##S(location,addend);                       \
+        }                                                                       \
+        inline static word fetch_and_store( volatile void* location, word value ) {\
+            return __TBB_FetchAndStore##S(location,value);                      \
+        }                                                                       \
+    };
+
+#if __TBB_DECL_FENCED_ATOMICS
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,__TBB_full_fence)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,__TBB_full_fence)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,__TBB_full_fence)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,__TBB_full_fence)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,acquire)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,acquire)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,acquire)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,acquire)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,release)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,release)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,release)
+__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,release)
+#else
+__TBB_DECL_ATOMIC_PRIMITIVES(1)
+__TBB_DECL_ATOMIC_PRIMITIVES(2)
+__TBB_DECL_ATOMIC_PRIMITIVES(4)
+__TBB_DECL_ATOMIC_PRIMITIVES(8)
+#endif
+
+//! Additive inverse of 1 for type T.
+/** Various compilers issue various warnings if -1 is used with various integer types.
+    The baroque expression below avoids all the warnings (we hope). */
+#define __TBB_MINUS_ONE(T) (T(T(0)-T(1)))
+
+template<typename I, typename D, size_t Step>
+struct atomic_impl: private atomic_base<I> {
+private:
+    typedef typename atomic_word<sizeof(I)>::word word;
+public:
+    typedef I value_type;
+
+    template<memory_semantics M>
+    value_type fetch_and_add( D addend ) {
+        return value_type(internal::atomic_traits<sizeof(value_type),M>::fetch_and_add( &this->my_value, addend*Step ));
+    }
+
+    value_type fetch_and_add( D addend ) {
+        return fetch_and_add<__TBB_full_fence>(addend);
+    }
+
+    template<memory_semantics M>
+    value_type fetch_and_increment() {
+        return fetch_and_add<M>(1);
+    }
+
+    value_type fetch_and_increment() {
+        return fetch_and_add(1);
+    }
+
+    template<memory_semantics M>
+    value_type fetch_and_decrement() {
+        return fetch_and_add<M>(__TBB_MINUS_ONE(D));
+    }
+
+    value_type fetch_and_decrement() {
+        return fetch_and_add(__TBB_MINUS_ONE(D));
+    }
+
+    template<memory_semantics M>
+    value_type fetch_and_store( value_type value ) {
+        return value_type(internal::atomic_traits<sizeof(value_type),M>::fetch_and_store(&this->my_value,word(value)));
+    }
+
+    value_type fetch_and_store( value_type value ) {
+        return fetch_and_store<__TBB_full_fence>(value);
+    }
+
+    template<memory_semantics M>
+    value_type compare_and_swap( value_type value, value_type comparand ) {
+        return value_type(internal::atomic_traits<sizeof(value_type),M>::compare_and_swap(&this->my_value,word(value),word(comparand)));
+    }
+
+    value_type compare_and_swap( value_type value, value_type comparand ) {
+        return compare_and_swap<__TBB_full_fence>(value,comparand);
+    }
+
+    operator value_type() const volatile {
+        return __TBB_load_with_acquire( this->my_value );
+    }
+
+    value_type& _internal_reference() const {
+        return static_cast<value_type&>(this->my_value);
+    }
+
+protected:
+    value_type store_with_release( value_type rhs ) {
+        __TBB_store_with_release(this->my_value,rhs);
+        return rhs;
+    }
+
+public:
+    value_type operator+=( D addend ) {
+        return fetch_and_add(addend)+addend;
+    }
+
+    value_type operator-=( D addend ) {
+        // Additive inverse of addend computed using binary minus,
+        // instead of unary minus, for sake of avoiding compiler warnings.
+        return operator+=(D(0)-addend);    
+    }
+
+    value_type operator++() {
+        return fetch_and_add(1)+1;
+    }
+
+    value_type operator--() {
+        return fetch_and_add(__TBB_MINUS_ONE(D))-1;
+    }
+
+    value_type operator++(int) {
+        return fetch_and_add(1);
+    }
+
+    value_type operator--(int) {
+        return fetch_and_add(__TBB_MINUS_ONE(D));
+    }
+};
+
+#if WORDSIZE == 4
+#if defined(__INTEL_COMPILER)||!defined(_MSC_VER)||_MSC_VER>=1400
+
+template<>
+inline atomic_impl<__TBB_LONG_LONG,__TBB_LONG_LONG,1>::operator atomic_impl<__TBB_LONG_LONG,__TBB_LONG_LONG,1>::value_type() const volatile {
+    return __TBB_Load8(&this->my_value);
+}
+
+template<>
+inline atomic_impl<unsigned __TBB_LONG_LONG,unsigned __TBB_LONG_LONG,1>::operator atomic_impl<unsigned __TBB_LONG_LONG,unsigned __TBB_LONG_LONG,1>::value_type() const volatile {
+    return __TBB_Load8(&this->my_value);
+}
+
+template<>
+inline atomic_impl<__TBB_LONG_LONG,__TBB_LONG_LONG,1>::value_type atomic_impl<__TBB_LONG_LONG,__TBB_LONG_LONG,1>::store_with_release( value_type rhs ) {
+    __TBB_Store8(&this->my_value,rhs);
+    return rhs;
+}
+
+template<>
+inline atomic_impl<unsigned __TBB_LONG_LONG,unsigned __TBB_LONG_LONG,1>::value_type atomic_impl<unsigned __TBB_LONG_LONG,unsigned __TBB_LONG_LONG,1>::store_with_release( value_type rhs ) {
+    __TBB_Store8(&this->my_value,rhs);
+    return rhs;
+}
+
+#endif /* defined(__INTEL_COMPILER)||!defined(_MSC_VER)||_MSC_VER>=1400 */
+#endif
+
+} /* Internal */
+//! @endcond
+
+//! Primary template for atomic.
+/** See the Reference for details.
+    @ingroup synchronization */
+template<typename T>
+struct atomic {
+};
+
+#define __TBB_DECL_ATOMIC(T) \
+    template<> struct atomic<T>: internal::atomic_impl<T,T,1> {  \
+        T operator=( T rhs ) {return store_with_release(rhs);}  \
+    };
+
+#if defined(__INTEL_COMPILER)||!defined(_MSC_VER)||_MSC_VER>=1400
+__TBB_DECL_ATOMIC(__TBB_LONG_LONG)
+__TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG)
+#else
+// Some old versions of MVSC cannot correctly compile templates with "long long".
+#endif /* defined(__INTEL_COMPILER)||!defined(_MSC_VER)||_MSC_VER>=1400 */
+__TBB_DECL_ATOMIC(long)
+__TBB_DECL_ATOMIC(unsigned long)
+__TBB_DECL_ATOMIC(unsigned int)
+__TBB_DECL_ATOMIC(int)
+__TBB_DECL_ATOMIC(unsigned short)
+__TBB_DECL_ATOMIC(short)
+__TBB_DECL_ATOMIC(char)
+__TBB_DECL_ATOMIC(signed char)
+__TBB_DECL_ATOMIC(unsigned char)
+
+#if !defined(_MSC_VER)||defined(_NATIVE_WCHAR_T_DEFINED) 
+__TBB_DECL_ATOMIC(wchar_t)
+#endif /* _MSC_VER||!defined(_NATIVE_WCHAR_T_DEFINED) */
+
+template<typename T> struct atomic<T*>: internal::atomic_impl<T*,ptrdiff_t,sizeof(T)> {
+    T* operator=( T* rhs ) {
+        // "this" required here in strict ISO C++ because store_with_release is a dependent name
+        return this->store_with_release(rhs);
+    }
+    T* operator->() const {
+        return (*this);
+    }
+};
+
+template<>
+struct atomic<void*> {
+private:
+    void* volatile my_value;
+
+public:
+    typedef void* value_type;
+
+    template<memory_semantics M>
+    value_type compare_and_swap( value_type value, value_type comparand ) {
+        return value_type(internal::atomic_traits<sizeof(value_type),M>::compare_and_swap(&my_value,internal::intptr(value),internal::intptr(comparand)));
+    }
+
+    value_type compare_and_swap( value_type value, value_type comparand ) {
+        return compare_and_swap<__TBB_full_fence>(value,comparand);
+    }
+
+    template<memory_semantics M>
+    value_type fetch_and_store( value_type value ) {
+        return value_type(internal::atomic_traits<sizeof(value_type),M>::fetch_and_store(&my_value,internal::intptr(value)));
+    }
+
+    value_type fetch_and_store( value_type value ) {
+        return fetch_and_store<__TBB_full_fence>(value);
+    }
+
+    operator value_type() const {
+        return __TBB_load_with_acquire(this->my_value);
+    }
+
+    value_type operator=( value_type rhs ) {
+        __TBB_store_with_release(this->my_value,rhs);
+        return rhs;
+    }
+};
+
+} // namespace tbb
+
+#endif /* __TBB_atomic_H */
diff --git a/include/tbb/blocked_range.h b/include/tbb/blocked_range.h
new file mode 100644
index 0000000..5d9fcf5
--- /dev/null
+++ b/include/tbb/blocked_range.h
@@ -0,0 +1,120 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_blocked_range_H
+#define __TBB_blocked_range_H
+
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+//! A range over which to iterate.
+/** @ingroup algorithms */
+template<typename Value>
+class blocked_range {
+public:
+    //! Type of a value
+    /** Called a const_iterator for sake of algorithms that need to treat a blocked_range
+        as an STL container. */
+    typedef Value const_iterator;
+
+    //! Type for size of a range
+    typedef size_t size_type;
+
+    //! Construct range with default-constructed values for begin and end.
+    /** Requires that Value have a default constructor. */
+    blocked_range() : my_begin(), my_end() {}
+
+    //! Construct range over half-open interval [begin,end), with the given grainsize.
+    blocked_range( Value begin_, Value end_, size_type grainsize_=1 ) : 
+        my_end(end_), my_begin(begin_), my_grainsize(grainsize_) 
+    {
+        __TBB_ASSERT( my_grainsize>0, "grainsize must be positive" );
+    }
+
+    //! Beginning of range.
+    const_iterator begin() const {return my_begin;}
+
+    //! One past last value in range.
+    const_iterator end() const {return my_end;}
+
+    //! Size of the range
+    /** Unspecified if end()<begin(). */
+    size_type size() const {
+        __TBB_ASSERT( !(end()<begin()), "size() unspecified if end()<begin()" );
+        return size_type(my_end-my_begin);
+    }
+
+    //! The grain size for this range.
+    size_type grainsize() const {return my_grainsize;}
+
+    //------------------------------------------------------------------------
+    // Methods that implement Range concept
+    //------------------------------------------------------------------------
+
+    //! True if range is empty.
+    bool empty() const {return !(my_begin<my_end);}
+
+    //! True if range is divisible.
+    /** Unspecified if end()<begin(). */
+    bool is_divisible() const {return my_grainsize<size();}
+
+    //! Split range.  
+    /** The new Range *this has the second half, the old range r has the first half. 
+        Unspecified if end()<begin() or !is_divisible(). */
+    blocked_range( blocked_range& r, split ) : 
+        my_end(r.my_end),
+        my_begin(do_split(r)),
+        my_grainsize(r.my_grainsize)
+    {}
+
+private:
+    /** NOTE: my_end MUST be declared before my_begin, otherwise the forking constructor will break. */
+    Value my_end;
+    Value my_begin;
+    size_type my_grainsize;
+
+    //! Auxilary function used by forking constructor.
+    /** Using this function lets us not require that Value support assignment or default construction. */
+    static Value do_split( blocked_range& r ) {
+        __TBB_ASSERT( r.is_divisible(), "cannot split blocked_range that is not divisible" );
+        Value middle = r.my_begin + (r.my_end-r.my_begin)/2u;
+        r.my_end = middle;
+        return middle;
+    }
+
+    template<typename RowValue, typename ColValue>
+    friend class blocked_range2d;
+
+    template<typename RowValue, typename ColValue, typename PageValue>
+    friend class blocked_range3d;
+};
+
+} // namespace tbb 
+
+#endif /* __TBB_blocked_range_H */
diff --git a/include/tbb/blocked_range2d.h b/include/tbb/blocked_range2d.h
new file mode 100644
index 0000000..bd2c375
--- /dev/null
+++ b/include/tbb/blocked_range2d.h
@@ -0,0 +1,97 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_blocked_range2d_H
+#define __TBB_blocked_range2d_H
+
+#include "tbb_stddef.h"
+#include "blocked_range.h"
+
+namespace tbb {
+
+//! A 2-dimensional range that models the Range concept.
+/** @ingroup algorithms */
+template<typename RowValue, typename ColValue=RowValue>
+class blocked_range2d {
+public:
+    //! Type for size of an iteation range
+    typedef blocked_range<RowValue> row_range_type;
+    typedef blocked_range<ColValue> col_range_type;
+ 
+private:
+    row_range_type my_rows;
+    col_range_type my_cols;
+
+public:
+
+    blocked_range2d( RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize,
+                     ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize ) : 
+        my_rows(row_begin,row_end,row_grainsize),
+        my_cols(col_begin,col_end,col_grainsize)
+    {
+    }
+
+    blocked_range2d( RowValue row_begin, RowValue row_end,
+                     ColValue col_begin, ColValue col_end ) : 
+        my_rows(row_begin,row_end),
+        my_cols(col_begin,col_end)
+    {
+    }
+
+    //! True if range is empty
+    bool empty() const {
+        // Yes, it is a logical OR here, not AND.
+        return my_rows.empty() || my_cols.empty();
+    }
+
+    //! True if range is divisible into two pieces.
+    bool is_divisible() const {
+        return my_rows.is_divisible() || my_cols.is_divisible();
+    }
+
+    blocked_range2d( blocked_range2d& r, split ) : 
+        my_rows(r.my_rows),
+        my_cols(r.my_cols)
+    {
+        if( my_rows.size()*double(my_cols.grainsize()) < my_cols.size()*double(my_rows.grainsize()) ) {
+            my_cols.my_begin = col_range_type::do_split(r.my_cols);
+        } else {
+            my_rows.my_begin = row_range_type::do_split(r.my_rows);
+        }
+    }
+
+    //! The rows of the iteration space 
+    const row_range_type& rows() const {return my_rows;}
+
+    //! The columns of the iteration space 
+    const col_range_type& cols() const {return my_cols;}
+};
+
+} // namespace tbb 
+
+#endif /* __TBB_blocked_range2d_H */
diff --git a/include/tbb/blocked_range3d.h b/include/tbb/blocked_range3d.h
new file mode 100644
index 0000000..bbabf11
--- /dev/null
+++ b/include/tbb/blocked_range3d.h
@@ -0,0 +1,116 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_blocked_range3d_H
+#define __TBB_blocked_range3d_H
+
+#include "tbb_stddef.h"
+#include "blocked_range.h"
+
+namespace tbb {
+
+//! A 3-dimensional range that models the Range concept.
+/** @ingroup algorithms */
+template<typename PageValue, typename RowValue=PageValue, typename ColValue=RowValue>
+class blocked_range3d {
+public:
+    //! Type for size of an iteation range
+    typedef blocked_range<PageValue> page_range_type;
+    typedef blocked_range<RowValue>  row_range_type;
+    typedef blocked_range<ColValue>  col_range_type;
+ 
+private:
+    page_range_type my_pages;
+    row_range_type  my_rows;
+    col_range_type  my_cols;
+
+public:
+
+    blocked_range3d( PageValue page_begin, PageValue page_end,
+                     RowValue  row_begin,  RowValue row_end,
+                     ColValue  col_begin,  ColValue col_end ) : 
+        my_pages(page_begin,page_end),
+        my_rows(row_begin,row_end),
+        my_cols(col_begin,col_end)
+    {
+    }
+
+    blocked_range3d( PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, 
+                     RowValue  row_begin,  RowValue row_end,   typename row_range_type::size_type row_grainsize,
+                     ColValue  col_begin,  ColValue col_end,   typename col_range_type::size_type col_grainsize ) :  
+        my_pages(page_begin,page_end,page_grainsize),
+        my_rows(row_begin,row_end,row_grainsize),
+        my_cols(col_begin,col_end,col_grainsize)
+    {
+    }
+
+    //! True if range is empty
+    bool empty() const {
+        // Yes, it is a logical OR here, not AND.
+        return my_pages.empty() || my_rows.empty() || my_cols.empty();
+    }
+
+    //! True if range is divisible into two pieces.
+    bool is_divisible() const {
+        return  my_pages.is_divisible() || my_rows.is_divisible() || my_cols.is_divisible();
+    }
+
+    blocked_range3d( blocked_range3d& r, split ) : 
+        my_pages(r.my_pages),
+        my_rows(r.my_rows),
+        my_cols(r.my_cols)
+    {
+        if( my_pages.size()*double(my_rows.grainsize()) < my_rows.size()*double(my_pages.grainsize()) ) {
+            if ( my_rows.size()*double(my_cols.grainsize()) < my_cols.size()*double(my_rows.grainsize()) ) {
+                my_cols.my_begin = col_range_type::do_split(r.my_cols);
+            } else {
+                my_rows.my_begin = row_range_type::do_split(r.my_rows);
+            }
+	} else {
+            if ( my_pages.size()*double(my_cols.grainsize()) < my_cols.size()*double(my_pages.grainsize()) ) {
+                my_cols.my_begin = col_range_type::do_split(r.my_cols);
+            } else {
+                    my_pages.my_begin = page_range_type::do_split(r.my_pages);
+            }
+        }
+    }
+
+    //! The pages of the iteration space 
+    const page_range_type& pages() const {return my_pages;}
+
+    //! The rows of the iteration space 
+    const row_range_type& rows() const {return my_rows;}
+
+    //! The columns of the iteration space 
+    const col_range_type& cols() const {return my_cols;}
+
+};
+
+} // namespace tbb 
+
+#endif /* __TBB_blocked_range3d_H */
diff --git a/include/tbb/cache_aligned_allocator.h b/include/tbb/cache_aligned_allocator.h
new file mode 100644
index 0000000..7a91503
--- /dev/null
+++ b/include/tbb/cache_aligned_allocator.h
@@ -0,0 +1,137 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_cache_aligned_allocator_H
+#define __TBB_cache_aligned_allocator_H
+
+#include <new>
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+//! @cond INTERNAL
+namespace internal {
+    //! Compile-time constant that is upper bound on cache line/sector size.
+    /** It should be used only in situations where having a compile-time upper 
+        bound is more useful than a run-time exact answer.
+        @ingroup memory_allocation */
+    const size_t NFS_MaxLineSize = 128;
+
+    //! Cache/sector line size.
+    /** @ingroup memory_allocation */
+    size_t NFS_GetLineSize();
+
+    //! Allocate memory on cache/sector line boundary.
+    /** @ingroup memory_allocation */
+    void* NFS_Allocate( size_t n_element, size_t element_size, void* hint );
+
+    //! Free memory allocated by NFS_Allocate.
+    /** Freeing a NULL pointer is allowed, but has no effect.
+        @ingroup memory_allocation */
+    void NFS_Free( void* );
+}
+//! @endcond
+
+//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
+/** The members are ordered the same way they are in section 20.4.1
+    of the ISO C++ standard.
+    @ingroup memory_allocation */
+template<typename T>
+class cache_aligned_allocator {
+public:
+    typedef T* pointer;
+    typedef const T* const_pointer;
+    typedef T& reference;
+    typedef const T& const_reference;
+    typedef T value_type;
+    typedef size_t size_type;
+    typedef ptrdiff_t difference_type;
+    template<typename U> struct rebind {
+        typedef cache_aligned_allocator<U> other;
+    };
+
+#if _WIN64
+    //! Non-ISO method required by Microsoft's STL containers 
+    /** Some versions of Microsoft's container classes seem to require that 
+        allocators supply this method. */
+    char* _Charalloc( size_type size ) {
+        return (char*)internal::NFS_Allocate( size, sizeof(T), 0 );
+    }
+#endif /* _WIN64 */
+
+    cache_aligned_allocator() throw() {}
+    cache_aligned_allocator( const cache_aligned_allocator& ) throw() {}
+    template<typename U> cache_aligned_allocator(const cache_aligned_allocator<U>&) throw() {}
+
+    pointer address(reference x) const {return &x;}
+    const_pointer address(const_reference x) const {return &x;}
+    
+    //! Allocate space for n objects, starting on a cache/sector line.
+    pointer allocate( size_type n, void* hint=0 ) {
+        return pointer(internal::NFS_Allocate( n, sizeof(T), hint ));
+    }
+
+    //! Free block of memory that starts on a cache line
+    void deallocate( pointer p, size_type ) {
+        internal::NFS_Free(p);
+    }
+
+    //! Largest value for which method allocate might succeed.
+    size_type max_size() const throw() {
+        return (~size_t(0)-internal::NFS_MaxLineSize)/sizeof(T);
+    }
+
+    //! Copy-construct value at location pointed to by p.
+    void construct( pointer p, const T& value ) {new(static_cast<void*>(p)) T(value);}
+
+    //! Destroy value at location pointed to by p.
+    void destroy( pointer p ) {p->~T();}
+};
+
+//! Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
+/** @ingroup memory_allocation */
+template<> 
+class cache_aligned_allocator<void> {
+public:
+    typedef void* pointer;
+    typedef const void* const_pointer;
+    typedef void value_type;
+    template<typename U> struct rebind {
+        typedef cache_aligned_allocator<U> other;
+    };
+};
+
+template<typename T, typename U>
+inline bool operator==( const cache_aligned_allocator<T>&, const cache_aligned_allocator<U>& ) {return true;}
+
+template<typename T, typename U>
+inline bool operator!=( const cache_aligned_allocator<T>&, const cache_aligned_allocator<U>& ) {return false;}
+
+} // namespace ThreadBuildingBlocks 
+
+#endif /* __TBB_cache_aligned_allocator_H */
diff --git a/include/tbb/concurrent_hash_map.h b/include/tbb/concurrent_hash_map.h
new file mode 100644
index 0000000..ac6c649
--- /dev/null
+++ b/include/tbb/concurrent_hash_map.h
@@ -0,0 +1,714 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_concurrent_hash_map_H
+#define __TBB_concurrent_hash_map_H
+
+#include "tbb_stddef.h"
+#include "cache_aligned_allocator.h"
+#include "spin_rw_mutex.h"
+#include "atomic.h"
+#include <iterator>
+#include <utility>      // Need std::pair from here
+
+namespace tbb {
+
+//! @cond INTERNAL
+namespace internal {
+    template<typename Value, typename Iterator>
+    class hash_map_range;
+
+    struct hash_map_segment_base {
+        //! Mutex that protects this segment
+        spin_rw_mutex my_mutex;
+
+        // Number of buckets
+        atomic<size_t> my_logical_size;
+
+        // Size of chains
+        /** Always zero or a a power of two */
+        size_t my_physical_size;
+
+        //! True if my_logical_size>=my_physical_size.
+        /** Used to support Intel(R) Thread Checker. */
+        bool internal_grow_predicate() const;
+    };
+
+    //! Meets requirements of a forward iterator for STL */
+    /** Value is either the T or const T type of the container.
+        @ingroup containers */ 
+    template<typename Container, typename Value>
+    class hash_map_iterator {
+        typedef typename Container::bucket bucket;
+        typedef typename Container::chain chain;
+
+        //! concurrent_hash_map over which we are iterating.
+        Container* my_table;
+
+        //! Pointer to bucket that has current item
+        bucket* my_bucket;
+
+        //! Index into hash table's array for current item
+        size_t my_array_index;  
+
+        //! Index of segment that has array for current item
+        size_t my_segment_index;
+
+        template<typename C, typename T, typename U>
+        friend bool operator==( const hash_map_iterator<C,T>& i, const hash_map_iterator<C,U>& j );
+
+        template<typename C, typename T, typename U>
+        friend bool operator!=( const hash_map_iterator<C,T>& i, const hash_map_iterator<C,U>& j );
+
+        template<typename C, typename T, typename U>
+        friend ptrdiff_t operator-( const hash_map_iterator<C,T>& i, const hash_map_iterator<C,U>& j );
+    
+        template<typename C, typename U>
+        friend class internal::hash_map_iterator;
+
+        template<typename V, typename I>
+        friend class internal::hash_map_range;
+
+        void advance_to_next_bucket() {
+            size_t i = my_array_index+1;
+            do {
+                while( i<my_table->my_segment[my_segment_index].my_physical_size ) {
+                    my_bucket = my_table->my_segment[my_segment_index].my_array[i].bucket_list;
+                    if( my_bucket ) goto done;
+                    ++i;
+                }
+                i = 0;
+            } while( ++my_segment_index<my_table->n_segment );
+        done:
+            my_array_index = i;
+        }
+    public:
+        //! Construct undefined iterator
+        hash_map_iterator() {}
+        hash_map_iterator( const Container& table, size_t segment_index, size_t array_index=0 );
+        hash_map_iterator( const hash_map_iterator<Container,const Value>& other ) :
+            my_table(other.my_table),
+            my_bucket(other.my_bucket),
+            my_array_index(other.my_array_index),
+            my_segment_index(other.my_segment_index)
+        {}
+        Value& operator*() const {
+            __TBB_ASSERT( my_bucket, "iterator uninitialized or at end of container?" );
+            return my_bucket->item;
+        }
+        Value* operator->() const {return &operator*();}
+        hash_map_iterator& operator++();
+        
+        //! Post increment
+        Value* operator++(int) {
+            Value* result = &operator*();
+            operator++();
+            return result;
+        }
+
+        // STL support
+
+        typedef ptrdiff_t difference_type;
+        typedef Value value_type;
+        typedef Value* pointer;
+        typedef Value& reference;
+        typedef std::forward_iterator_tag iterator_category;
+    };
+
+    template<typename Container, typename Value>
+    hash_map_iterator<Container,Value>::hash_map_iterator( const Container& table, size_t segment_index, size_t array_index ) : 
+        my_table(const_cast<Container*>(&table)),
+        my_bucket(NULL),
+        my_array_index(array_index),
+        my_segment_index(segment_index)
+    {
+        if( segment_index<my_table->n_segment ) {
+            chain* first_chain = my_table->my_segment[segment_index].my_array;
+            my_bucket = first_chain ? first_chain[my_array_index].bucket_list : NULL;
+            if( !my_bucket ) advance_to_next_bucket();
+        }
+    }
+
+    template<typename Container, typename Value>
+    hash_map_iterator<Container,Value>& hash_map_iterator<Container,Value>::operator++() {
+        my_bucket=my_bucket->next;
+        if( !my_bucket ) advance_to_next_bucket();
+        return *this;
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator==( const hash_map_iterator<Container,T>& i, const hash_map_iterator<Container,U>& j ) {
+        return i.my_bucket==j.my_bucket;
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator!=( const hash_map_iterator<Container,T>& i, const hash_map_iterator<Container,U>& j ) {
+        return i.my_bucket!=j.my_bucket;
+    }
+
+    //! Range class used with concurrent_hash_map
+    /** @ingroup containers */ 
+    template<typename Value, typename Iterator>
+    class hash_map_range{
+    private:
+        Iterator my_begin;
+        Iterator my_end;
+        mutable Iterator my_midpoint;
+        size_t my_grainsize;
+        //! Set my_midpoint to point approximately half way between my_begin and my_end.
+        void set_midpoint() const;
+    public:
+        typedef Value value_type;
+        typedef Value& reference;
+        typedef const Value& const_reference;
+        typedef Iterator iterator;
+        typedef ptrdiff_t difference_type;
+
+        //! True if range is empty.
+        bool empty() const {return my_begin==my_end;}
+
+        //! True if range can be partitioned into two subranges.
+        bool is_divisible() const {
+            return my_midpoint!=my_end;
+        }
+        //! Split range.
+        hash_map_range( hash_map_range& r, split ) : 
+            my_end(r.my_end),
+            my_grainsize(r.my_grainsize)
+        {
+            r.my_end = my_begin = r.my_midpoint;
+            set_midpoint();
+            r.set_midpoint();
+        }
+        hash_map_range( const Iterator& begin_, const Iterator& end_, size_t grainsize ) : 
+            my_begin(begin_), 
+            my_end(end_), 
+            my_grainsize(grainsize) 
+        {
+            set_midpoint();
+            __TBB_ASSERT( grainsize>0, "grainsize must be positive" );
+        }
+        const Iterator& begin() const {return my_begin;}
+        const Iterator& end() const {return my_end;}
+    };
+
+    template<typename Value, typename Iterator>
+    void hash_map_range<Value,Iterator>::set_midpoint() const {
+        size_t n = my_end.my_segment_index-my_begin.my_segment_index;
+        if( n>1 || (n==1 && my_end.my_array_index>0) ) {
+            // Split by groups of segments
+            my_midpoint = Iterator(*my_begin.my_table,(my_end.my_segment_index+my_begin.my_segment_index)/2u);
+        } else {
+            // Split by groups of buckets
+            size_t m = my_end.my_array_index-my_begin.my_array_index;
+            if( m>my_grainsize ) {
+                my_midpoint = Iterator(*my_begin.my_table,my_begin.my_segment_index,m/2u);
+            } else {
+                my_midpoint = my_end;
+            }
+        }
+        __TBB_ASSERT( my_midpoint.my_segment_index<=my_begin.my_table->n_segment, NULL );
+    }  
+} // namespace internal
+//! @endcond
+
+//! Unorderd map from Key to T.
+/** @ingroup containers */
+template<typename Key, typename T, typename HashCompare>
+class concurrent_hash_map {
+public:
+    class const_accessor;
+    class accessor;
+
+    typedef Key key_type;
+    typedef T mapped_type;
+    typedef std::pair<const Key,T> value_type;
+    typedef size_t size_type;
+    typedef ptrdiff_t difference_type;
+
+private:
+    template<typename Container, typename Value>
+    friend class internal::hash_map_iterator;
+
+    template<typename V, typename I>
+    friend class internal::hash_map_range;
+
+    typedef spin_rw_mutex bucket_mutex_t;
+    typedef spin_rw_mutex chain_mutex_t;
+    typedef spin_rw_mutex segment_mutex_t;
+
+    //! Type of a hash code.
+    typedef size_t hashcode_t;
+
+    struct bucket;
+    friend struct bucket;
+
+    //! Basic unit of storage used in chain.
+    struct bucket {
+        //! Next bucket in chain
+        bucket* next;
+        bucket_mutex_t mutex;
+        value_type item;
+        bucket( const Key& key ) : item(key,T()) {}
+        bucket( const Key& key, const T& t ) : item(key,t) {}
+    };
+
+    struct chain;
+    friend struct chain;
+
+    //! A linked-list of buckets.
+    /** Should be zero-initialized before use. */
+    struct chain {
+        void push_front( bucket& b ) {
+            b.next = bucket_list;
+            bucket_list = &b;
+        }
+        chain_mutex_t mutex;
+        bucket* bucket_list;
+    };
+
+    struct segment;
+    friend struct segment;
+
+    //! Segment of the table.
+    /** The table is partioned into disjoint segments to reduce conflicts.
+        A segment should be zero-intialized before use. */
+    struct segment: internal::hash_map_segment_base {
+#if TBB_DO_ASSERT
+        ~segment() {
+            __TBB_ASSERT( !my_array, "should have been cleared earlier" );
+        }
+#endif /* TBB_DO_ASSERT */
+
+        // Pointer to array of chains
+        chain* my_array;
+
+        // Get chain in this segment that corresponds to given hash code.
+        chain& get_chain( hashcode_t hashcode, size_t n_segment_bits ) {
+            return my_array[(hashcode>>n_segment_bits)&(my_physical_size-1)];
+        }
+     
+        //! Allocate an array with at least new_size chains. 
+        /** "new_size" is rounded up to a power of two that occupies at least one cache line.
+            Does not deallocate the old array.  Overwrites my_array. */
+        void allocate_array( size_t new_size ) {
+            size_t n=(internal::NFS_GetLineSize()+sizeof(chain)-1)/sizeof(chain);
+            __TBB_ASSERT((n&(n-1))==0, NULL);
+            while( n<new_size ) n<<=1;
+            chain* array = cache_aligned_allocator<chain>().allocate( n );
+            memset( array, 0, n*sizeof(chain) );
+            my_array = array;
+            my_physical_size = n;
+        }
+    };
+
+    segment& get_segment( hashcode_t hashcode ) {
+        return my_segment[hashcode&n_segment-1];
+    }
+        
+    HashCompare my_hash_compare;
+
+    //! Log2 of n_segment
+    /** Placed after my_hash_compare for sake of efficient packing. */
+    unsigned char n_segment_bits;
+
+    //! Number of segments 
+    size_t n_segment;
+
+    segment* my_segment;
+
+    bucket* search_list( const Key& key, chain& c ) {
+        bucket* b = c.bucket_list;
+        while( b&& !my_hash_compare.equal(key,b->item.first) )
+            b=b->next;
+        return b;
+    }
+
+    bucket* remove_from_list( const Key& key, chain& c ) {
+        bucket** p = &c.bucket_list;
+        bucket* b=*p;
+        while( b && !my_hash_compare.equal(key,b->item.first ) ) {
+            p = &b->next;
+            b= *p;
+        }
+        if( b )
+            *p = b->next;
+        return b;
+    }
+
+    //! Grow segment for which caller has acquired a write lock.
+    void grow_segment( segment_mutex_t::scoped_lock& segment_lock, segment& s );
+
+    enum operation {
+        op_insert,
+        op_find,
+        op_remove
+    };
+
+    //! Does heavy lifting for "find" and "insert".
+    bool lookup( const_accessor* result, const Key& key, bool write, operation op );
+
+    //! Perform initialization on behalf of a constructor
+    void initialize() {
+        n_segment_bits = 6; 
+        n_segment = size_t(1)<<n_segment_bits; 
+        my_segment = cache_aligned_allocator<segment>().allocate(n_segment);
+        memset( my_segment, 0, sizeof(segment)*n_segment );
+     }
+
+    //! Copy "source" to *this, where *this must start out empty.
+    void internal_copy( const concurrent_hash_map& source );
+public:
+    friend class const_accessor;
+
+    //! Combines data access, locking, and garbage collection.
+    class const_accessor {
+        friend class concurrent_hash_map;
+        friend class accessor;
+        void operator=( const accessor& ) const; // Deny access
+        const_accessor( const accessor& );       // Deny access
+    public:
+        //! Type of value
+        typedef const std::pair<const Key,T> value_type;
+
+        //! True if result is empty.
+        bool empty() const {return !my_bucket;}
+
+        //! Set to null
+        void release() {
+            if( my_bucket ) {
+                my_lock.release();
+                my_bucket = NULL;
+            }   
+        }
+
+        //! Return reference to associated value in hash table.
+        const value_type& operator*() const {
+            __TBB_ASSERT( my_bucket, "attempt to deference empty result" );
+            return my_bucket->item;
+        }
+
+        //! Return pointer to associated value in hash table.
+        const value_type* operator->() const {
+            return &operator*();
+        }
+
+        //! Create empty result
+        const_accessor() : my_bucket(NULL) {}
+
+        //! Destroy result after releasing the underlying reference.
+        ~const_accessor() {
+            my_bucket = NULL; // my_lock.release() is called in scoped_lock destructor
+        }
+    private:
+        bucket* my_bucket;
+        bucket_mutex_t::scoped_lock my_lock;
+    };   
+
+    //! Allows write access to elements and combines data access, locking, and garbage collection.
+    class accessor: public const_accessor {
+    public:
+        //! Type of value
+        typedef std::pair<const Key,T> value_type;
+
+        //! Return reference to associated value in hash table.
+        value_type& operator*() const {
+            __TBB_ASSERT( this->my_bucket, "attempt to deference empty result" );
+            return this->my_bucket->item;
+        }
+
+        //! Return pointer to associated value in hash table.
+        value_type* operator->() const {
+            return &operator*();
+        }       
+    };
+
+    //! Construct empty table.
+    concurrent_hash_map();
+
+    //! Copy constructor
+    concurrent_hash_map( const concurrent_hash_map& table ) {
+        initialize();
+        internal_copy(table);
+    }
+
+    //! Assignment
+    concurrent_hash_map& operator=( const concurrent_hash_map& table ) {
+        if( this!=&table ) {
+            clear();
+            internal_copy(table);
+        } 
+        return *this;
+    }
+
+    //! Clear table
+    void clear();
+
+    //! Clear table and destroy it.  
+    ~concurrent_hash_map();
+
+    //------------------------------------------------------------------------
+    // concurrent map operations
+    //------------------------------------------------------------------------
+
+    //! Find item and acquire a read lock on the item.
+    /** Return true if item is found, false otherwise. */
+    bool find( const_accessor& result, const Key& key ) const {
+        return const_cast<concurrent_hash_map*>(this)->lookup(&result,key,/*write=*/false,op_find);
+    }   
+
+    //! Find item and acquire a write lock on the item.
+    /** Return true if item is found, false otherwise. */
+    bool find( accessor& result, const Key& key ) {
+        return lookup(&result,key,/*write=*/true,op_find);
+    }
+        
+    //! Insert item (if not already present) and acquire a read lock on the item.
+    /** Returns true if item is new. */
+    bool insert( const_accessor& result, const Key& key ) {
+        return lookup(&result,key,/*write=*/false,op_insert);
+    }
+
+    //! Insert item (if not already present) and acquire a write lock on the item.
+    /** Returns true if item is new. */
+    bool insert( accessor& result, const Key& key ) {
+        return lookup(&result,key,/*write=*/true,op_insert);
+    }
+
+    //! Erase item.
+    /** Return true if item was erased. */
+    bool erase( const Key& key ) {
+        return lookup(NULL,key,/*write=*/true,op_remove);
+    }
+
+    //------------------------------------------------------------------------
+    // Parallel algorithm support
+    //------------------------------------------------------------------------
+    typedef internal::hash_map_iterator<concurrent_hash_map,value_type> iterator;
+    typedef internal::hash_map_iterator<concurrent_hash_map,const value_type> const_iterator;
+
+    typedef internal::hash_map_range<value_type,iterator> range_type;
+    typedef internal::hash_map_range<const value_type,const_iterator> const_range_type;
+
+    range_type range( size_type grainsize ) {
+        return range_type( begin(), end(), grainsize );
+    }
+
+    const_range_type range( size_type grainsize ) const {
+        return const_range_type( begin(), end(), grainsize );
+    }
+
+    //------------------------------------------------------------------------
+    // STL support
+    //------------------------------------------------------------------------
+    iterator begin() {return iterator(*this,0);}
+    iterator end() {return iterator(*this,n_segment);}
+    const_iterator begin() const {return const_iterator(*this,0);}
+    const_iterator end() const {return const_iterator(*this,n_segment);}
+    
+    //! Number of items in table.
+    /** Be aware that this method is relatively slow compared to the 
+        typical size() method for an STL container. */
+    size_type size() const;
+
+    //! True if size()==0.
+    bool empty() const;
+
+    //! Upper bound on size.
+    size_type max_size() const {return (~size_type(0))/sizeof(bucket);}
+};
+
+template<typename Key, typename T, typename HashCompare>
+typename concurrent_hash_map<Key,T,HashCompare>::size_type concurrent_hash_map<Key,T,HashCompare>::size() const {
+    size_type result = 0;
+    for( size_t k=0; k<n_segment; ++k )
+        result += my_segment[k].my_logical_size;
+    return result;
+}
+
+template<typename Key, typename T, typename HashCompare>
+bool concurrent_hash_map<Key,T,HashCompare>::empty() const {
+    for( size_t k=0; k<n_segment; ++k )
+        if( my_segment[k].my_logical_size )
+            return false;
+    return true;
+}
+
+template<typename Key, typename T, typename HashCompare>
+bool concurrent_hash_map<Key,T,HashCompare>::lookup( const_accessor* result, const Key& key, bool write, operation op ) {
+    if( result && result->my_bucket )
+        result->release();
+    hashcode_t h = my_hash_compare.hash( key );
+    bucket* b = NULL;
+    bucket* b_temp = NULL;
+    bool return_value = false;  
+    {
+        segment& s = get_segment(h);
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+        bool grow = op==op_insert && s.internal_grow_predicate();
+#else
+        bool grow = op==op_insert && s.my_logical_size >= s.my_physical_size;
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT */
+        segment_mutex_t::scoped_lock segment_lock( s.my_mutex, /*write=*/grow );
+        if( grow ) {
+            // Load factor is too high  
+            grow_segment(segment_lock,s);
+        }
+        {
+            if( !s.my_array ) {
+                __TBB_ASSERT( op!=op_insert, NULL ); 
+                goto done;
+            }
+            __TBB_ASSERT( (s.my_physical_size&s.my_physical_size-1)==0, NULL );
+            chain& c = s.get_chain(h,n_segment_bits);
+            chain_mutex_t::scoped_lock chain_lock( c.mutex, /*write=*/false );
+            b = search_list(key,c);
+            if( b ) {
+                if( op==op_find )
+                    return_value = true;
+                else if( op==op_remove ) {
+                    return_value = true;
+                    chain_lock.upgrade_to_writer();
+                    bucket_mutex_t::scoped_lock item_lock( b->mutex, true );
+                    b_temp = remove_from_list(key,c);
+                    --s.my_logical_size;
+                    goto delete_temp;
+                } 
+            } else {
+                if( op==op_insert ) {
+                    // Search failed
+                    b_temp = new bucket(key);
+
+                    if( !chain_lock.upgrade_to_writer() ) {
+                        // Rerun search_list, in case another thread inserted the item during the upgrade.
+                        b = search_list(key,c);
+                    }
+                    if( !b ) {
+                        return_value = true;
+                        b = b_temp;
+                        b_temp = NULL;
+                        c.push_front( *b );
+                        ++s.my_logical_size;
+                    }
+                }
+            }
+            if( b ) {
+                result->my_lock.acquire(b->mutex,write);
+                result->my_bucket = b;
+            }
+        }
+    }
+delete_temp:   
+    if( b_temp ) {
+        {
+            // Get write lock after slicing from list, to ensure no one else
+            // is currently using *b
+            bucket_mutex_t::scoped_lock item_lock( b_temp->mutex, /*write=*/true );
+        }
+        delete b_temp;
+    }
+done:
+    return return_value;        
+}
+
+template<typename Key, typename T, typename HashCompare>
+void concurrent_hash_map<Key,T,HashCompare>::clear() {
+    for( size_t i=0; i<n_segment; ++i ) {
+        segment& s = my_segment[i];
+        if( chain* array = s.my_array ) {
+            size_t n = s.my_physical_size;
+            s.my_array = NULL;
+            s.my_physical_size = 0;
+            s.my_logical_size = 0;
+            for( size_t j=0; j<n; ++j ) {
+                while( bucket* b = array[j].bucket_list ) {
+                    array[j].bucket_list = b->next;
+                    delete b;
+                }
+            }
+            cache_aligned_allocator<chain>().deallocate( array, n );
+        }
+    }
+}
+
+template<typename Key, typename T, typename HashCompare>
+void concurrent_hash_map<Key,T,HashCompare>::grow_segment( segment_mutex_t::scoped_lock& segment_lock, segment& s ) {
+    // Following is second check in a double-check.
+    if( s.my_logical_size >= s.my_physical_size ) {
+        chain* old_array = s.my_array;
+        size_t old_size = s.my_physical_size;
+        s.allocate_array( s.my_logical_size );
+        for( size_t k=0; k<old_size; ++k )
+            while( bucket* b = old_array[k].bucket_list ) {
+                old_array[k].bucket_list = b->next;
+                hashcode_t h = my_hash_compare.hash( b->item.first );
+                __TBB_ASSERT( &get_segment(h)==&s, "hash function changed?" );
+                s.get_chain(h,n_segment_bits).push_front(*b);
+            }   
+        cache_aligned_allocator<chain>().deallocate( old_array, old_size );
+    }
+    segment_lock.downgrade_to_reader();
+}
+
+template<typename Key, typename T, typename HashCompare>
+void concurrent_hash_map<Key,T,HashCompare>::internal_copy( const concurrent_hash_map<Key,T,HashCompare>& source ) {
+    __TBB_ASSERT( n_segment==source.n_segment, NULL );
+    for( size_t i=0; i<n_segment; ++i ) {
+        segment& s = source.my_segment[i];
+        __TBB_ASSERT( !my_segment[i].my_array, "caller should have cleared" );
+        if( s.my_logical_size ) {
+            segment& d = my_segment[i];
+            d.my_logical_size = s.my_logical_size;
+            d.allocate_array( s.my_logical_size );
+            size_t s_size = s.my_physical_size;
+            chain* s_array = s.my_array;
+            for( size_t k=0; k<s_size; ++k )
+                for( bucket* b = s_array[k].bucket_list; b; b=b->next ) {
+                    hashcode_t h = my_hash_compare.hash( b->item.first );
+                    __TBB_ASSERT( &get_segment(h)==&d, "hash function changed?" );
+                    bucket* b_new = new bucket(b->item.first,b->item.second);
+                    d.get_chain(h,n_segment_bits).push_front(*b_new);
+                }
+        }
+    }
+}
+
+template<typename Key, typename T, typename HashCompare>
+concurrent_hash_map<Key,T,HashCompare>::concurrent_hash_map() {
+    initialize();
+}
+
+template<typename Key, typename T, typename HashCompare>
+concurrent_hash_map<Key,T,HashCompare>::~concurrent_hash_map() {
+    clear();
+    cache_aligned_allocator<segment>().deallocate( my_segment, n_segment );
+}
+
+} // namespace tbb
+
+#endif /* __TBB_concurrent_hash_map_H */
diff --git a/include/tbb/concurrent_queue.h b/include/tbb/concurrent_queue.h
new file mode 100644
index 0000000..abb221c
--- /dev/null
+++ b/include/tbb/concurrent_queue.h
@@ -0,0 +1,328 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_concurrent_queue_H
+#define __TBB_concurrent_queue_H
+
+#include "tbb_stddef.h"
+#include <new>
+
+namespace tbb {
+
+template<typename T> class concurrent_queue;
+
+//! @cond INTERNAL
+namespace internal {
+
+class concurrent_queue_rep;
+class concurrent_queue_iterator_rep;
+class concurrent_queue_iterator_base;
+template<typename Container, typename Value> class concurrent_queue_iterator;
+
+//! For internal use only.
+/** Type-independent portion of concurrent_queue.
+    @ingroup containers */
+class concurrent_queue_base: no_copy {
+    //! Internal representation
+    concurrent_queue_rep* my_rep;
+
+    friend class concurrent_queue_rep;
+    friend struct micro_queue;
+    friend class concurrent_queue_iterator_rep;
+    friend class concurrent_queue_iterator_base;
+protected:
+    //! Prefix on a page
+    struct page {
+        page* next;
+        uintptr mask; 
+    };
+
+    //! Capacity of the queue
+    ptrdiff_t my_capacity;
+   
+    //! Always a power of 2
+    size_t items_per_page;
+
+    //! Size of an item
+    size_t item_size;
+private:
+    virtual void copy_item( page& dst, size_t index, const void* src ) = 0;
+    virtual void assign_and_destroy_item( void* dst, page& src, size_t index ) = 0;
+protected:
+    concurrent_queue_base( size_t item_size );
+    virtual ~concurrent_queue_base();
+
+    //! Enqueue item at tail of queue
+    void internal_push( const void* src );
+
+    //! Dequeue item from head of queue
+    void internal_pop( void* dst );
+
+    //! Attempt to enqueue item onto queue.
+    bool internal_push_if_not_full( const void* src );
+
+    //! Attempt to dequeue item from queue.
+    /** NULL if there was no item to dequeue. */
+    bool internal_pop_if_present( void* dst );
+
+    //! Get size of queue
+    ptrdiff_t internal_size() const;
+
+    void internal_set_capacity( ptrdiff_t capacity, size_t element_size );
+};
+
+//! Type-independent portion of concurrent_queue_iterator.
+/** @ingroup containers */
+class concurrent_queue_iterator_base {
+    //! Concurrentconcurrent_queue over which we are iterating.
+    /** NULL if one past last element in queue. */
+    concurrent_queue_iterator_rep* my_rep;
+
+    template<typename C, typename T, typename U>
+    friend bool operator==( const concurrent_queue_iterator<C,T>& i, const concurrent_queue_iterator<C,U>& j );
+
+    template<typename C, typename T, typename U>
+    friend bool operator!=( const concurrent_queue_iterator<C,T>& i, const concurrent_queue_iterator<C,U>& j );
+protected:
+    //! Pointer to current item
+    mutable void* my_item;
+
+    //! Default constructor
+    concurrent_queue_iterator_base() : my_rep(NULL), my_item(NULL) {}
+
+    //! Copy constructor
+    concurrent_queue_iterator_base( const concurrent_queue_iterator_base& i ) : my_rep(NULL), my_item(NULL) {
+        assign(i);
+    }
+
+    //! Construct iterator pointing to head of queue.
+    concurrent_queue_iterator_base( const concurrent_queue_base& queue );
+
+    //! Assignment
+    void assign( const concurrent_queue_iterator_base& i );
+
+    //! Advance iterator one step towards tail of queue.
+    void advance();
+
+    //! Destructor
+    ~concurrent_queue_iterator_base();
+};
+
+//! Meets requirements of a forward iterator for STL.
+/** Value is either the T or const T type of the container.
+    @ingroup containers */
+template<typename Container, typename Value>
+class concurrent_queue_iterator: public concurrent_queue_iterator_base {
+#if !defined(_MSC_VER) || defined(__INTEL_COMPILER)
+    template<typename T>
+    friend class ::tbb::concurrent_queue;
+#else
+public: // workaround for MSVC
+#endif 
+    //! Construct iterator pointing to head of queue.
+    concurrent_queue_iterator( const concurrent_queue_base& queue ) :
+        concurrent_queue_iterator_base(queue)
+    {
+    }
+public:
+    concurrent_queue_iterator() {}
+
+    /** If Value==Container::value_type, then this routine is the copy constructor. 
+        If Value==const Container::value_type, then this routine is a conversion constructor. */
+    concurrent_queue_iterator( const concurrent_queue_iterator<Container,typename Container::value_type>& other ) :
+        concurrent_queue_iterator_base(other)
+    {}
+
+    //! Iterator assignment
+    concurrent_queue_iterator& operator=( const concurrent_queue_iterator& other ) {
+        assign(other);
+        return *this;
+    }
+
+    //! Reference to current item 
+    Value& operator*() const {
+        return *static_cast<Value*>(my_item);
+    }
+
+    Value* operator->() const {return &operator*();}
+
+    //! Advance to next item in queue
+    concurrent_queue_iterator& operator++() {
+        advance();
+        return *this;
+    }
+
+    //! Post increment
+    Value* operator++(int) {
+        Value* result = &operator*();
+        operator++();
+        return result;
+    }
+}; // concurrent_queue_iterator
+
+template<typename C, typename T, typename U>
+bool operator==( const concurrent_queue_iterator<C,T>& i, const concurrent_queue_iterator<C,U>& j ) {
+    return i.my_item==j.my_item;
+}
+
+template<typename C, typename T, typename U>
+bool operator!=( const concurrent_queue_iterator<C,T>& i, const concurrent_queue_iterator<C,U>& j ) {
+    return i.my_item!=j.my_item;
+}
+
+} // namespace internal;
+//! @endcond
+
+//! A high-performance thread-safe queue.
+/** Multiple threads may each push and pop concurrently.
+    Assignment and copy construction are not allowed.
+    @ingroup containers */
+template<typename T>
+class concurrent_queue: public internal::concurrent_queue_base {
+    template<typename Container, typename Value> friend class internal::concurrent_queue_iterator;
+
+    //! Class used to ensure exception-safety of method "pop" 
+    class destroyer {
+        T& my_value;
+    public:
+        destroyer( T& value ) : my_value(value) {}
+        ~destroyer() {my_value.~T();}          
+    };
+
+    T& get_ref( page& page, size_t index ) {
+        __TBB_ASSERT( index<items_per_page, NULL );
+        return static_cast<T*>(static_cast<void*>(&page+1))[index];
+    }
+
+    /*override*/ virtual void copy_item( page& dst, size_t index, const void* src ) {
+        new( &get_ref(dst,index) ) T(*static_cast<const T*>(src)); 
+    }
+
+    /*override*/ virtual void assign_and_destroy_item( void* dst, page& src, size_t index ) {
+        T& from = get_ref(src,index);
+        destroyer d(from);
+        *static_cast<T*>(dst) = from;
+    }
+
+public:
+    //! Element type in the queue.
+    typedef T value_type;
+
+    //! Reference type
+    typedef T& reference;
+
+    //! Const reference type
+    typedef const T& const_reference;
+
+    //! Integral type for representing size of the queue.
+    /** Notice that the size_type is a signed integral type.
+        This is because the size can be negative if there are pending pops without corresponding pushes. */
+    typedef std::ptrdiff_t size_type;
+
+    //! Difference type for iterator
+    typedef std::ptrdiff_t difference_type;
+
+    //! Construct empty queue
+    concurrent_queue() : 
+        concurrent_queue_base( sizeof(T) )
+    {
+    }
+
+    //! Destroy queue
+    ~concurrent_queue();
+
+    //! Enqueue an item at tail of queue.
+    void push( const T& source ) {
+        internal_push( &source );
+    }
+
+    //! Dequeue item from head of queue.
+    /** Block until an item becomes available, and then dequeue it. */
+    void pop( T& destination ) {
+        internal_pop( &destination );
+    }
+
+    //! Enqueue an item at tail of queue if queue is not already full.
+    /** Does not wait for queue to become not full.
+        Returns true if item is pushed; false if queue was already full. */
+    bool push_if_not_full( const T& source ) {
+        return internal_push_if_not_full( &source );
+    }
+
+    //! Attempt to dequeue an item from head of queue.
+    /** Does not wait for item to become available.
+        Returns true if successful; false otherwise. */
+    bool pop_if_present( T& destination ) {
+        return internal_pop_if_present( &destination );
+    }
+
+    //! Return number of pushes minus number of pops.
+    /** Note that the result can be negative if there are pops waiting for the 
+        corresponding pushes.  The result can also exceed capacity() if there 
+        are push operations in flight. */
+    size_type size() const {return internal_size();}
+
+    //! Equivalent to size()==0.
+    bool empty() const {return size()==0;}
+
+    //! Maximum number of allowed elements
+    size_type capacity() const {
+        return my_capacity;
+    }
+
+    //! Set the capacity
+    /** Setting the capacity to 0 causes subsequent push_if_not_full operations to always fail,
+        and subsequent push operations to block forever. */
+    void set_capacity( size_type capacity ) {
+        internal_set_capacity( capacity, sizeof(T) );
+    }
+
+    typedef internal::concurrent_queue_iterator<concurrent_queue,T> iterator;
+    typedef internal::concurrent_queue_iterator<concurrent_queue,const T> const_iterator;
+
+    //------------------------------------------------------------------------
+    // The iterators are intended only for debugging.  They are slow and not thread safe.
+    //------------------------------------------------------------------------
+    iterator begin() {return iterator(*this);}
+    iterator end() {return iterator();}
+    const_iterator begin() const {return const_iterator(*this);}
+    const_iterator end() const {return const_iterator();}
+    
+}; 
+
+template<typename T>
+concurrent_queue<T>::~concurrent_queue() {
+    while( !empty() ) {
+        T value;
+        internal_pop(&value);
+    }
+}
+
+} // namespace tbb
+
+#endif /* __TBB_concurrent_queue_H */
diff --git a/include/tbb/concurrent_vector.h b/include/tbb/concurrent_vector.h
new file mode 100644
index 0000000..66a795c
--- /dev/null
+++ b/include/tbb/concurrent_vector.h
@@ -0,0 +1,512 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_concurrent_vector_H
+#define __TBB_concurrent_vector_H
+
+#include "tbb_stddef.h"
+#include <iterator>
+#include <new>
+#include "atomic.h"
+#include "cache_aligned_allocator.h"
+#include "blocked_range.h"
+
+#include "tbb_machine.h"
+
+namespace tbb {
+
+template<typename T>
+class concurrent_vector;
+
+//! @cond INTERNAL
+namespace internal {
+
+    //! Base class of concurrent vector implementation.
+    /** @ingroup containers */
+    class concurrent_vector_base {
+    protected:
+        typedef unsigned long segment_index_t;
+
+        //! Log2 of "min_segment_size".  
+        static const int lg_min_segment_size = 4;
+
+        //! Minimum size (in physical items) of a segment.
+        static const int min_segment_size = segment_index_t(1)<<lg_min_segment_size;
+      
+        static segment_index_t segment_index_of( size_t index ) { 
+            uintptr i = index|1<<(lg_min_segment_size-1);
+            uintptr j = __TBB_Log2(i); 
+            return segment_index_t(j-(lg_min_segment_size-1)); 
+        }
+
+        static segment_index_t segment_base( segment_index_t k ) { 
+            return min_segment_size>>1<<k & -min_segment_size;
+        }
+
+        static segment_index_t segment_size( segment_index_t k ) {
+            segment_index_t result = k==0 ? min_segment_size : min_segment_size/2<<k;
+            __TBB_ASSERT( result==segment_base(k+1)-segment_base(k), NULL );
+            return result;
+        }
+
+        typedef size_t size_type;
+
+        void internal_reserve( size_type n, size_type element_size, size_type max_size );
+
+        size_type internal_capacity() const;
+
+        //! Requested size of vector
+        atomic<size_type> my_early_size;
+
+        /** Can be zero-initialized. */
+        struct segment_t {
+            /** Declared volatile because in weak memory model, must have ld.acq/st.rel  */
+            void* volatile array;
+#if TBB_DO_ASSERT
+            ~segment_t() {
+                __TBB_ASSERT( !array, "should have been set to NULL by clear" );
+            }
+#endif /* TBB_DO_ASSERT */
+        };
+ 
+        atomic<segment_t*> my_segment;
+
+        segment_t my_storage[2];
+
+        concurrent_vector_base() {
+            my_early_size = 0;
+            my_storage[0].array = NULL;
+            my_storage[1].array = NULL;
+            my_segment = my_storage;
+        }
+
+        //! An operation on an n-lement array starting at begin.
+        typedef void(*internal_array_op1)(void* begin, size_type n );
+
+        //! An operation on n-element destination array and n-element source array.
+        typedef void(*internal_array_op2)(void* dst, const void* src, size_type n );
+
+        void internal_grow_to_at_least( size_type new_size, size_type element_size, internal_array_op1 init );
+        void internal_grow( size_type start, size_type finish, size_type element_size, internal_array_op1 init );
+        size_type internal_grow_by( size_type delta, size_type element_size, internal_array_op1 init );
+        void* internal_push_back( size_type element_size, size_type& index ); 
+        void internal_clear( internal_array_op1 destroy, bool reclaim_storage );
+        void internal_copy( const concurrent_vector_base& src, size_type element_size, internal_array_op2 copy );
+        void internal_assign( const concurrent_vector_base& src, size_type element_size, 
+                              internal_array_op1 destroy, internal_array_op2 assign, internal_array_op2 copy );
+private:
+        //! Private functionality that does not cross DLL boundary.
+        class helper;
+
+        friend class helper;
+    };
+
+    //! Meets requirements of a forward iterator for STL and a Value for a blocked_range.*/
+    /** Value is either the T or const T type of the container.
+        @ingroup containers */
+    template<typename Container, typename Value>
+    class vector_iterator 
+#if defined(_WIN64) && defined(_MSC_VER) 
+        // Ensure that Microsoft's internal template function _Val_type works correctly.
+        : public std::iterator<std::random_access_iterator_tag,Value>
+#endif /* defined(_WIN64) && defined(_MSC_VER) */
+    {
+        //! concurrent_vector over which we are iterating.
+        Container* my_vector;
+
+        //! Index into the vector 
+        size_t my_index;
+
+        //! Caches my_vector->internal_subscript(my_index)
+        /** NULL if cached value is not available */
+        mutable Value* my_item;
+    
+        template<typename C, typename T, typename U>
+        friend bool operator==( const vector_iterator<C,T>& i, const vector_iterator<C,U>& j );
+
+        template<typename C, typename T, typename U>
+        friend bool operator<( const vector_iterator<C,T>& i, const vector_iterator<C,U>& j );
+
+        template<typename C, typename T, typename U>
+        friend ptrdiff_t operator-( const vector_iterator<C,T>& i, const vector_iterator<C,U>& j );
+    
+        template<typename C, typename U>
+        friend class internal::vector_iterator;
+
+#if !defined(_MSC_VER) || defined(__INTEL_COMPILER)
+        template<typename T>
+        friend class tbb::concurrent_vector;
+#else
+public: // workaround for MSVC
+#endif 
+
+        vector_iterator( const Container& vector, size_t index ) : 
+            my_vector(const_cast<Container*>(&vector)), 
+            my_index(index), 
+            my_item(NULL)
+        {}
+
+    public:
+        //! Default constructor
+        vector_iterator() : my_vector(NULL), my_index(~size_t(0)), my_item(NULL) {}
+
+        vector_iterator( const vector_iterator<Container,typename Container::value_type>& other ) :
+            my_vector(other.my_vector),
+            my_index(other.my_index),
+            my_item(other.my_item)
+        {}
+
+        vector_iterator operator+( ptrdiff_t offset ) const {
+            return vector_iterator( *my_vector, my_index+offset );
+        }
+        friend vector_iterator operator+( ptrdiff_t offset, const vector_iterator& v ) {
+            return vector_iterator( *v.my_vector, v.my_index+offset );
+        }
+        vector_iterator operator+=( ptrdiff_t offset ) {
+            my_index+=offset;
+            my_item = NULL;
+            return *this;
+        }
+        vector_iterator operator-( ptrdiff_t offset ) const {
+            return vector_iterator( *my_vector, my_index-offset );
+        }
+        vector_iterator operator-=( ptrdiff_t offset ) {
+            my_index-=offset;
+            my_item = NULL;
+            return *this;
+        }
+        Value& operator*() const {
+            Value* item = my_item;
+            if( !item ) {
+                item = my_item = &my_vector->internal_subscript(my_index);
+            }
+            __TBB_ASSERT( item==&my_vector->internal_subscript(my_index), "corrupt cache" );
+            return *item;
+        }
+        Value& operator[]( ptrdiff_t k ) const {
+            return my_vector->internal_subscript(my_index+k);
+        }
+        Value* operator->() const {return &operator*();}
+
+        //! Pre increment
+        vector_iterator& operator++() {
+            size_t k = ++my_index;
+            if( my_item ) {
+                // Following test uses 2's-complement wizardry and fact that
+                // min_segment_size is a power of 2.
+                if( (k& k-concurrent_vector<Container>::min_segment_size)==0 ) {
+                    // k is a power of two that is at least k-min_segment_size  
+                    my_item= NULL;
+                } else {
+                    ++my_item;
+                }
+            }
+            return *this;
+        }
+
+        //! Pre decrement
+        vector_iterator& operator--() {
+            __TBB_ASSERT( my_index>0, "operator--() applied to iterator already at beginning of concurrent_vector" ); 
+            size_t k = my_index--;
+            if( my_item ) {
+                // Following test uses 2's-complement wizardry and fact that
+                // min_segment_size is a power of 2.
+                if( (k& k-concurrent_vector<Container>::min_segment_size)==0 ) {
+                    // k is a power of two that is at least k-min_segment_size  
+                    my_item= NULL;
+                } else {
+                    --my_item;
+                }
+            }
+            return *this;
+        }
+
+        //! Post increment
+        vector_iterator operator++(int) {
+            vector_iterator result = *this;
+            operator++();
+            return result;
+        }
+
+        //! Post decrement
+        vector_iterator operator--(int) {
+            vector_iterator result = *this;
+            operator--();
+            return result;
+        }
+
+        // STL support
+
+        typedef ptrdiff_t difference_type;
+        typedef Value value_type;
+        typedef Value* pointer;
+        typedef Value& reference;
+        typedef std::random_access_iterator_tag iterator_category;
+    };
+
+    template<typename Container, typename T, typename U>
+    bool operator==( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return i.my_index==j.my_index;
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator!=( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return !(i==j);
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator<( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return i.my_index<j.my_index;
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator>( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return j<i;
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator>=( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return !(i<j);
+    }
+
+    template<typename Container, typename T, typename U>
+    bool operator<=( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return !(j<i);
+    }
+
+    template<typename Container, typename T, typename U>
+    ptrdiff_t operator-( const vector_iterator<Container,T>& i, const vector_iterator<Container,U>& j ) {
+        return ptrdiff_t(i.my_index)-ptrdiff_t(j.my_index);
+    }
+
+} // namespace internal
+//! @endcond
+
+//! Concurrent vector
+/** @ingroup containers */
+template<typename T>
+class concurrent_vector: private internal::concurrent_vector_base {
+public:
+    using internal::concurrent_vector_base::size_type;
+private:
+    template<typename I>
+    class generic_range_type: public blocked_range<I> {
+    public:
+        typedef T value_type;
+        typedef T& reference;
+        typedef const T& const_reference;
+        typedef I iterator;
+        typedef ptrdiff_t difference_type;
+        generic_range_type( I begin_, I end_, size_t grainsize ) : blocked_range<I>(begin_,end_,grainsize) {} 
+        generic_range_type( generic_range_type& r, split ) : blocked_range<I>(r,split()) {}
+    };
+
+    template<typename C, typename U>
+    friend class internal::vector_iterator;
+public:
+    typedef T& reference;
+    typedef const T& const_reference;
+
+    //! Construct empty vector.
+    concurrent_vector() {}
+
+    //! Copy a vector.
+    concurrent_vector( const concurrent_vector& vector ) {internal_copy(vector,sizeof(T),&copy_array);}
+
+    //! Assignment 
+    concurrent_vector& operator=( const concurrent_vector& vector ) {
+        if( this!=&vector )
+            internal_assign(vector,sizeof(T),&destroy_array,&assign_array,&copy_array);
+        return *this;
+    }
+
+    //! Clear and destroy vector.
+    ~concurrent_vector() {internal_clear(&destroy_array,/*reclaim_storage=*/true);}
+
+    //------------------------------------------------------------------------
+    // Concurrent operations
+    //------------------------------------------------------------------------
+    //! Grow by "delta" elements.
+    /** Returns old size. */
+    size_type grow_by( size_type delta ) {
+        return delta ? internal_grow_by( delta, sizeof(T), &initialize_array ) : my_early_size;
+    }
+
+    //! Grow array until it has at least n elements.
+    void grow_to_at_least( size_type n ) {
+        if( my_early_size<n )
+            internal_grow_to_at_least( n, sizeof(T), &initialize_array );
+    };
+
+    //! Push item 
+    size_type push_back( const_reference item ) {
+        size_type k;
+        new( internal_push_back(sizeof(T),k) ) T(item);
+        return k;
+    }
+
+    //! Get reference to element at given index.
+    /** This method is thread-safe for concurrent reads, and also while growing the vector,
+        as long as the calling thread has checked that index<size(). */
+    reference operator[]( size_type index ) {
+        return internal_subscript(index);
+    }
+
+    //! Get const reference to element at given index.
+    const_reference operator[]( size_type index ) const {
+        return internal_subscript(index);
+    }
+
+    //------------------------------------------------------------------------
+    // Parallel algorithm support
+    //------------------------------------------------------------------------
+    typedef internal::vector_iterator<concurrent_vector,T> iterator;
+    typedef internal::vector_iterator<concurrent_vector,const T> const_iterator;
+
+#if !defined(_MSC_VER) || _CPPLIB_VER>=300 
+    // Assume ISO standard definition of std::reverse_iterator
+    typedef std::reverse_iterator<iterator> reverse_iterator;
+    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+#else
+    // Use non-standard std::reverse_iterator
+    typedef std::reverse_iterator<iterator,T,T&,T*> reverse_iterator;
+    typedef std::reverse_iterator<const_iterator,T,const T&,const T*> const_reverse_iterator;
+#endif /* defined(_MSC_VER) && (_MSC_VER<1300) */
+
+    typedef generic_range_type<iterator> range_type;
+    typedef generic_range_type<const_iterator> const_range_type;
+
+    range_type range( size_t grainsize = 1 ) {
+        return range_type( begin(), end(), grainsize );
+    }
+
+    const_range_type range( size_t grainsize = 1 ) const {
+        return const_range_type( begin(), end(), grainsize );
+    }
+
+    //------------------------------------------------------------------------
+    // Capacity
+    //------------------------------------------------------------------------
+    //! Return size of vector.
+    size_type size() const {return my_early_size;}
+
+    //! Return size of vector.
+    bool empty() const {return !my_early_size;}
+
+    //! Maximum size to which array can grow without allocating more memory.
+    size_type capacity() const {return internal_capacity();}
+
+    //! Allocate enough space to grow to size n without having to allocate more memory later.
+    /** Like most of the methods provided for STL compatibility, this method is *not* thread safe. 
+        The capacity afterwards may be bigger than the requested reservation. */
+    void reserve( size_type n ) {
+        if( n )
+            internal_reserve(n, sizeof(T), max_size());
+    }
+
+    //! Upper bound on argument to reserve.
+    size_type max_size() const {return (~size_t(0))/sizeof(T);}
+
+    //------------------------------------------------------------------------
+    // STL support
+    //------------------------------------------------------------------------
+
+    typedef T value_type;
+    typedef ptrdiff_t difference_type;
+
+    iterator begin() {return iterator(*this,0);}
+    iterator end() {return iterator(*this,size());}
+    const_iterator begin() const {return const_iterator(*this,0);}
+    const_iterator end() const {return const_iterator(*this,size());}
+
+    reverse_iterator rbegin() {return reverse_iterator(end());}
+    reverse_iterator rend() {return reverse_iterator(begin());}
+    const_reverse_iterator rbegin() const {return const_reverse_iterator(end());}
+    const_reverse_iterator rend() const {return const_reverse_iterator(begin());}
+
+    //! Not thread safe
+    /** Does not change capacity. */
+    void clear() {internal_clear(&destroy_array,/*reclaim_storage=*/false);}       
+private:
+    //! Get reference to element at given index.
+    T& internal_subscript( size_type index ) const;
+
+    //! Construct n instances of T, starting at "begin".
+    static void initialize_array( void* begin, size_type n );
+
+    //! Construct n instances of T, starting at "begin".
+    static void copy_array( void* dst, const void* src, size_type n );
+
+    //! Assign n instances of T, starting at "begin".
+    static void assign_array( void* dst, const void* src, size_type n );
+
+    //! Destroy n instances of T, starting at "begin".
+    static void destroy_array( void* begin, size_type n );
+};
+
+template<typename T>
+T& concurrent_vector<T>::internal_subscript( size_type index ) const {
+    __TBB_ASSERT( index<size(), "index out of bounds" );
+    segment_index_t k = segment_index_of( index );
+    size_type j = index-segment_base(k);
+    return static_cast<T*>(my_segment[k].array)[j];
+}
+
+template<typename T>
+void concurrent_vector<T>::initialize_array( void* begin, size_type n ) {
+    T* array = static_cast<T*>(begin);
+    for( size_type j=0; j<n; ++j )
+        new( &array[j] ) T();
+}
+
+template<typename T>
+void concurrent_vector<T>::copy_array( void* dst, const void* src, size_type n ) {
+    T* d = static_cast<T*>(dst);
+    const T* s = static_cast<const T*>(src);
+    for( size_type j=0; j<n; ++j )
+        new( &d[j] ) T(s[j]);
+}
+
+template<typename T>
+void concurrent_vector<T>::assign_array( void* dst, const void* src, size_type n ) {
+    T* d = static_cast<T*>(dst);
+    const T* s = static_cast<const T*>(src);
+    for( size_type j=0; j<n; ++j )
+        d[j] = s[j];
+}
+
+template<typename T>
+void concurrent_vector<T>::destroy_array( void* begin, size_type n ) {
+    T* array = static_cast<T*>(begin);
+    for( size_type j=n; j>0; --j )
+        array[j-1].~T();
+}
+
+} // namespace tbb
+
+#endif /* __TBB_concurrent_vector_H */
diff --git a/include/tbb/machine/linux_em64t.h b/include/tbb/machine/linux_em64t.h
new file mode 100644
index 0000000..acd13d0
--- /dev/null
+++ b/include/tbb/machine/linux_em64t.h
@@ -0,0 +1,159 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#include <stdint.h>
+#include <unistd.h>
+#include <sched.h>
+
+#define __TBB_WORDSIZE 8
+#define __TBB_BIG_ENDIAN 0
+
+//! Load with acquire semantics, both for hardware and compiler.
+template<typename T>
+inline T __TBB_load_with_acquire_via_explicit_fence(const volatile T& location) {
+    T tmp = location;
+    __asm__ __volatile__("": : :"memory");
+    return tmp;
+}
+
+//! Store with release semantics, both for hardware and compiler.
+template<typename T, typename V>
+inline void __TBB_store_with_release_via_explicit_fence(volatile T& location, V value) {
+    __asm__ __volatile__("": : :"memory");
+    location = value;
+}
+
+#define __TBB_load_with_acquire __TBB_load_with_acquire_via_explicit_fence
+#define __TBB_store_with_release __TBB_store_with_release_via_explicit_fence
+
+#define __MACHINE_DECL_ATOMICS(S,T,X) \
+static inline T __TBB_machine_cmpswp##S (volatile void *ptr, T value, T comparand )         \
+{                                                                                    \
+    T result;                                                                        \
+                                                                                     \
+    __asm__ __volatile__("lock\ncmpxchg" X " %2,%1"                                       \
+                          : "=a"(result), "=m"(*(T *)ptr)                                             \
+                          : "q"(value), "0"(comparand)               \
+                          : "memory");                                               \
+    return result;                                                                   \
+}                                                                                    \
+                                                                                     \
+static inline T __TBB_machine_fetchadd##S(volatile void *ptr, T addend)                     \
+{                                                                                    \
+    T result;                                                                        \
+    __asm__ __volatile__("lock\nxadd" X " %0,%1"                                          \
+                          : "=r"(result),"=m"(*(T *)ptr)                                             \
+                          : "0"(addend)                              \
+                          : "memory");                                               \
+    return result;                                                                   \
+}                                                                                    \
+                                                                                     \
+static inline  T __TBB_machine_fetchstore##S(volatile void *ptr, T value)                   \
+{                                                                                    \
+    T result;                                                                        \
+    __asm__ __volatile__("lock\nxchg" X " %0,%1"                                          \
+                          : "=r"(result),"=m"(*(T *)ptr)                                             \
+                          : "0"(value)                               \
+                          : "memory");                                               \
+    return result;                                                                   \
+}                                                                                    \
+                                                                                     
+__MACHINE_DECL_ATOMICS(1,int8_t,"")
+__MACHINE_DECL_ATOMICS(2,int16_t,"")
+__MACHINE_DECL_ATOMICS(4,int32_t,"")
+__MACHINE_DECL_ATOMICS(8,int64_t,"q")
+
+static inline int64_t __TBB_machine_lg( uint64_t x ) {
+    int64_t j;
+    __asm__ ("bsr %1,%0" : "=r"(j) : "r"(x));
+    return j;
+}
+
+static inline void __TBB_machine_or( volatile void *ptr, uint64_t addend ) {
+    __asm__ __volatile__("lock\norq %1,%0" : "=m"(*(uint64_t *)ptr) : "r"(addend) : "memory");
+}
+
+static inline void __TBB_machine_pause( int32_t delay ) {
+    for (int32_t i = 0; i < delay; i++) {
+       __asm__ __volatile__("pause;");
+    }
+    return;
+}   
+
+// Machine specific atomic operations
+
+#define __TBB_CompareAndSwap1(P,V,C) __TBB_machine_cmpswp1(P,V,C)
+#define __TBB_CompareAndSwap2(P,V,C) __TBB_machine_cmpswp2(P,V,C)
+#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+#define __TBB_CompareAndSwapW(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+
+#define __TBB_FetchAndAdd1(P,V) __TBB_machine_fetchadd1(P,V)
+#define __TBB_FetchAndAdd2(P,V) __TBB_machine_fetchadd2(P,V)
+#define __TBB_FetchAndAdd4(P,V) __TBB_machine_fetchadd4(P,V)
+#define __TBB_FetchAndAdd8(P,V)  __TBB_machine_fetchadd8(P,V)
+#define __TBB_FetchAndAddW(P,V)  __TBB_machine_fetchadd8(P,V)
+
+#define __TBB_FetchAndStore1(P,V) __TBB_machine_fetchstore1(P,V)
+#define __TBB_FetchAndStore2(P,V) __TBB_machine_fetchstore2(P,V)
+#define __TBB_FetchAndStore4(P,V) __TBB_machine_fetchstore4(P,V)
+#define __TBB_FetchAndStore8(P,V)  __TBB_machine_fetchstore8(P,V)
+#define __TBB_FetchAndStoreW(P,V)  __TBB_machine_fetchstore8(P,V)
+
+#define __TBB_Store8(P,V) (*P = V)
+#define __TBB_Load8(P)    (*P)
+
+#define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V)
+
+// Definition of other functions
+#define __TBB_Yield()  sched_yield()
+#define __TBB_Pause(V) __TBB_machine_pause(V)
+#define __TBB_Log2(V)    __TBB_machine_lg(V)
+
+// Special atomic functions
+#define __TBB_FetchAndAddWrelease(P,V) __TBB_FetchAndAddW(P,V)
+#define __TBB_FetchAndIncrementWacquire(P) __TBB_FetchAndAddW(P,1)
+#define __TBB_FetchAndDecrementWrelease(P) __TBB_FetchAndAddW(P,-1)
+
+// Definition of Lock functions
+#undef __TBB_TryLockByte
+#undef __TBB_LockByte
+
+#define __TBB_cpuid
+static inline void __TBB_x86_cpuid( int32_t buffer[4], int32_t mode ) {
+    // NOTE: gcc sometimes fails to compile the following asm.  But icc always succeeds.
+    __asm__ ("cpuid" : "=a"(buffer[0]),
+                       "=b"(buffer[1]),
+                       "=c"(buffer[2]),
+                       "=d"(buffer[3]) : "0"(mode) : "memory" );
+}
+
diff --git a/include/tbb/machine/linux_ia32.h b/include/tbb/machine/linux_ia32.h
new file mode 100644
index 0000000..75698fe
--- /dev/null
+++ b/include/tbb/machine/linux_ia32.h
@@ -0,0 +1,224 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#include <stdint.h>
+#include <unistd.h>
+#include <sched.h>
+
+#define __TBB_WORDSIZE 4
+#define __TBB_BIG_ENDIAN 0
+
+
+#define __MACHINE_DECL_ATOMICS(S,T,X) \
+static inline T __TBB_machine_cmpswp##S (volatile void *ptr, T value, T comparand )         \
+{                                                                                    \
+    T result;                                                                        \
+                                                                                     \
+    __asm__ __volatile__("lock\ncmpxchg" X " %2,%1"                                       \
+                          : "=a"(result), "=m"(*(T *)ptr)                                             \
+                          : "q"(value), "0"(comparand)               \
+                          : "memory");                                               \
+    return result;                                                                   \
+}                                                                                    \
+                                                                                     \
+static inline T __TBB_machine_fetchadd##S(volatile void *ptr, T addend)                     \
+{                                                                                    \
+    T result;                                                                        \
+    __asm__ __volatile__("lock\nxadd" X " %0,%1"                                          \
+                          : "=r"(result), "=m"(*(T *)ptr)                                             \
+                          : "0"(addend)                              \
+                          : "memory");                                               \
+   return result;                                                                    \
+}                                                                                    \
+                                                                                     \
+static inline  T __TBB_machine_fetchstore##S(volatile void *ptr, T value)                   \
+{                                                                                    \
+    T result;                                                                        \
+    __asm__ __volatile__("lock\nxchg" X " %0,%1"                                          \
+                          : "=r"(result), "=m"(*(T *)ptr)                                             \
+                          : "0"(value)                               \
+                          : "memory");                                               \
+   return result;                                                                    \
+}                                                                                    \
+                                                                                     
+__MACHINE_DECL_ATOMICS(1,int8_t,"")
+__MACHINE_DECL_ATOMICS(2,int16_t,"")
+__MACHINE_DECL_ATOMICS(4,int32_t,"l")
+
+static int64_t __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand )
+{
+    const int32_t comparand_lo = (int32_t)comparand;
+    const int32_t comparand_hi = *(int32_t*)((intptr_t)&comparand+sizeof(int32_t));
+    int64_t result;
+    // EBX register saved for compliancy with position-independent code (PIC) rules on IA32
+    __asm__ __volatile__ (
+             "pushl %%ebx\n\t"
+             "movl  (%%ecx),%%ebx\n\t"
+             "movl  4(%%ecx),%%ecx\n\t"
+             "lock\ncmpxchg8b (%2)\n\t"
+             "popl  %%ebx"
+                    : "=A"(result), "=m"(*(int64_t *)ptr)
+                    : "S"(ptr),
+                      "a"(comparand_lo),
+                      "d"(comparand_hi),
+                      "c"(&value)
+                    : "memory", "esp");
+    return result;
+}
+
+static inline int32_t __TBB_machine_lg( uint32_t x ) {
+    int32_t j;
+    __asm__ ("bsr %1,%0" : "=r"(j) : "r"(x));
+    return j;
+}
+
+static inline void __TBB_machine_or( volatile void *ptr, uint32_t addend ) {
+    __asm__ __volatile__("lock\norl %1,%0" : "=m"(*(uint32_t *)ptr) : "r"(addend) : "memory");
+}
+
+static inline void __TBB_machine_pause( int32_t delay ) {
+    for (int32_t i = 0; i < delay; i++) {
+       __asm__ __volatile__("pause;");
+    }
+    return;
+}   
+
+static inline int64_t __TBB_machine_load8 (const volatile void *ptr) {
+    int64_t result;
+    __asm__ __volatile__ ( "fildq %1\n\t"
+                           "fistpq %0" :  "=m"(result) : "m"(*(uint64_t *)ptr), "m"(result) : "memory" );
+    return result;
+}
+
+static inline void __TBB_machine_store8 (volatile void *ptr, int64_t value) {
+    __asm__ __volatile__ ( "fildq %1\n\t"
+                           "fistpq (%2)" :  "=m"(*(int64_t *)ptr) : "m"(value), "r"(ptr) : "memory" );
+}
+
+template <typename T, size_t S>
+struct __TBB_machine_load_store {
+    static inline T load_with_acquire(const volatile T& location) {
+        T to_return = location;
+        __asm__ __volatile__("" : : : "memory" );   // Compiler fence to keep operations from migrating upwards
+        return to_return;
+    }
+
+    static inline void store_with_release(volatile T &location, T value) {
+        __asm__ __volatile__("" : : : "memory" );   // Compiler fence to keep operations from migrating upwards
+        location = value;
+    }
+};
+
+template <typename T>
+struct __TBB_machine_load_store<T,8> {
+    static inline T load_with_acquire(const volatile T& location) {
+        T to_return = __TBB_machine_load8((volatile void *)&location);
+        __asm__ __volatile__("" : : : "memory" );   // Compiler fence to keep operations from migrating upwards
+        return to_return;
+    }
+
+    static inline void store_with_release(volatile T &location, T value) {
+        __asm__ __volatile__("" : : : "memory" );   // Compiler fence to keep operations from migrating downwards
+        __TBB_machine_store8((volatile void *)&location,(int64_t)value);
+    }
+};
+
+template<typename T>
+inline T __TBB_machine_load_with_acquire(const volatile T &location) {
+    return __TBB_machine_load_store<T,sizeof(T)>::load_with_acquire(location);
+}
+
+template<typename T, typename V>
+inline void __TBB_machine_store_with_release(volatile T &location, V value) {
+    __TBB_machine_load_store<T,sizeof(T)>::store_with_release(location,value);
+}
+
+#define __TBB_load_with_acquire(L) __TBB_machine_load_with_acquire((L))
+#define __TBB_store_with_release(L,V) __TBB_machine_store_with_release((L),(V))
+
+// Machine specific atomic operations
+
+#define __TBB_CompareAndSwap1(P,V,C) __TBB_machine_cmpswp1(P,V,C)
+#define __TBB_CompareAndSwap2(P,V,C) __TBB_machine_cmpswp2(P,V,C)
+#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+#define __TBB_CompareAndSwapW(P,V,C)  __TBB_machine_cmpswp4(P,V,C)
+
+#define __TBB_FetchAndAdd1(P,V) __TBB_machine_fetchadd1(P,V)
+#define __TBB_FetchAndAdd2(P,V) __TBB_machine_fetchadd2(P,V)
+#define __TBB_FetchAndAdd4(P,V) __TBB_machine_fetchadd4(P,V)
+#define __TBB_FetchAndAddW(P,V)  __TBB_machine_fetchadd4(P,V)
+
+#define __TBB_FetchAndStore1(P,V) __TBB_machine_fetchstore1(P,V)
+#define __TBB_FetchAndStore2(P,V) __TBB_machine_fetchstore2(P,V)
+#define __TBB_FetchAndStore4(P,V) __TBB_machine_fetchstore4(P,V)
+#define __TBB_FetchAndStoreW(P,V)  __TBB_machine_fetchstore4(P,V)
+
+#define __TBB_Store8(P,V) __TBB_machine_store8(P,V)
+#define __TBB_Load8(P)    __TBB_machine_load8(P)
+
+#define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V)
+
+
+// Those we chose not to implement (they will be implemented generically using CMPSWP8)
+#undef __TBB_FetchAndAdd8
+#undef __TBB_FetchAndStore8
+
+// Definition of other functions
+#define __TBB_Yield()  sched_yield()
+#define __TBB_Pause(V) __TBB_machine_pause(V)
+#define __TBB_Log2(V)    __TBB_machine_lg(V)
+
+// Special atomic functions
+#define __TBB_FetchAndAddWrelease(P,V) __TBB_FetchAndAddW(P,V)
+#define __TBB_FetchAndIncrementWacquire(P) __TBB_FetchAndAddW(P,1)
+#define __TBB_FetchAndDecrementWrelease(P) __TBB_FetchAndAddW(P,-1)
+
+// Definition of Lock functions
+#undef __TBB_TryLockByte
+#undef __TBB_LockByte
+
+#define __TBB_cpuid
+static inline void __TBB_x86_cpuid( int32_t buffer[4], int32_t mode ) {
+    // EBX register saved for compliancy with position-independent code (PIC) rules on IA32
+    __asm__ ("pushl %%ebx\n\t"
+             "cpuid\n\t"
+             "movl  %%ebx,%1\n\t"
+             "popl  %%ebx"
+                    : "=a"(buffer[0]),
+                      "=S"(buffer[1]),
+                      "=c"(buffer[2]),
+                      "=d"(buffer[3])
+                    : "0"(mode)
+                    : "memory" );
+}
+
diff --git a/include/tbb/machine/linux_itanium.h b/include/tbb/machine/linux_itanium.h
new file mode 100644
index 0000000..31e89fb
--- /dev/null
+++ b/include/tbb/machine/linux_itanium.h
@@ -0,0 +1,179 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#include <stdint.h>
+#include <unistd.h>
+#include <sched.h>
+#include <ia64intrin.h>
+
+#define __TBB_WORDSIZE 8
+#define __TBB_BIG_ENDIAN 0
+#define __TBB_DECL_FENCED_ATOMICS 1
+
+// Most of the functions will be in a .s file
+
+extern "C" {
+    int8_t __TBB_machine_cmpswp1__TBB_full_fence (volatile void *ptr, int8_t value, int8_t comparand); 
+    int8_t __TBB_machine_fetchadd1__TBB_full_fence (volatile void *ptr, int8_t addend);
+    int8_t __TBB_machine_fetchadd1acquire(volatile void *ptr, int8_t addend);
+    int8_t __TBB_machine_fetchadd1release(volatile void *ptr, int8_t addend);
+    int8_t __TBB_machine_fetchstore1acquire(volatile void *ptr, int8_t value);
+    int8_t __TBB_machine_fetchstore1release(volatile void *ptr, int8_t value);
+
+    int16_t __TBB_machine_cmpswp2__TBB_full_fence (volatile void *ptr, int16_t value, int16_t comparand);
+    int16_t __TBB_machine_fetchadd2__TBB_full_fence (volatile void *ptr, int16_t addend);
+    int16_t __TBB_machine_fetchadd2acquire(volatile void *ptr, int16_t addend);
+    int16_t __TBB_machine_fetchadd2release(volatile void *ptr, int16_t addend);
+    int16_t __TBB_machine_fetchstore2acquire(volatile void *ptr, int16_t value);
+    int16_t __TBB_machine_fetchstore2release(volatile void *ptr, int16_t value);
+
+    int32_t __TBB_machine_fetchstore4__TBB_full_fence (volatile void *ptr, int32_t value);
+    int32_t __TBB_machine_fetchstore4acquire(volatile void *ptr, int32_t value);
+    int32_t __TBB_machine_fetchstore4release(volatile void *ptr, int32_t value);
+    int32_t __TBB_machine_fetchadd4acquire(volatile void *ptr, int32_t addend);
+    int32_t __TBB_machine_fetchadd4release(volatile void *ptr, int32_t addend);
+
+    int64_t __TBB_machine_cmpswp8__TBB_full_fence (volatile void *ptr, int64_t value, int64_t comparand);
+    int64_t __TBB_machine_fetchstore8__TBB_full_fence (volatile void *ptr, int64_t value);
+    int64_t __TBB_machine_fetchstore8acquire(volatile void *ptr, int64_t value);
+    int64_t __TBB_machine_fetchstore8release(volatile void *ptr, int64_t value);
+    int64_t __TBB_machine_fetchadd8acquire(volatile void *ptr, int64_t addend);
+    int64_t __TBB_machine_fetchadd8release(volatile void *ptr, int64_t addend);
+
+    int8_t __TBB_machine_cmpswp1acquire(volatile void *ptr, int8_t value, int8_t comparand); 
+    int8_t __TBB_machine_cmpswp1release(volatile void *ptr, int8_t value, int8_t comparand); 
+    int8_t __TBB_machine_fetchstore1__TBB_full_fence (volatile void *ptr, int8_t value);
+
+    int16_t __TBB_machine_cmpswp2acquire(volatile void *ptr, int16_t value, int16_t comparand); 
+    int16_t __TBB_machine_cmpswp2release(volatile void *ptr, int16_t value, int16_t comparand); 
+    int16_t __TBB_machine_fetchstore2__TBB_full_fence (volatile void *ptr, int16_t value);
+
+    int32_t __TBB_machine_cmpswp4__TBB_full_fence (volatile void *ptr, int32_t value, int32_t comparand);
+    int32_t __TBB_machine_cmpswp4acquire(volatile void *ptr, int32_t value, int32_t comparand); 
+    int32_t __TBB_machine_cmpswp4release(volatile void *ptr, int32_t value, int32_t comparand); 
+    int32_t __TBB_machine_fetchadd4__TBB_full_fence (volatile void *ptr, int32_t value);
+
+    int64_t __TBB_machine_cmpswp8acquire(volatile void *ptr, int64_t value, int64_t comparand); 
+    int64_t __TBB_machine_cmpswp8release(volatile void *ptr, int64_t value, int64_t comparand); 
+    int64_t __TBB_machine_fetchadd8__TBB_full_fence (volatile void *ptr, int64_t value);
+
+    int64_t __TBB_machine_lg(uint64_t value);
+    void __TBB_machine_pause(int32_t delay);
+    bool __TBB_machine_trylockbyte( volatile unsigned char &ptr );
+    int64_t __TBB_machine_lockbyte( volatile unsigned char &ptr );
+}
+
+#define __TBB_CompareAndSwap1(P,V,C) __TBB_machine_cmpswp1__TBB_full_fence(P,V,C)
+#define __TBB_CompareAndSwap2(P,V,C) __TBB_machine_cmpswp2__TBB_full_fence(P,V,C) 
+
+#define __TBB_FetchAndAdd1(P,V)        __TBB_machine_fetchadd1__TBB_full_fence(P,V)
+#define __TBB_FetchAndAdd1acquire(P,V) __TBB_machine_fetchadd1acquire(P,V)
+#define __TBB_FetchAndAdd1release(P,V) __TBB_machine_fetchadd1release(P,V)
+#define __TBB_FetchAndAdd2(P,V)        __TBB_machine_fetchadd2__TBB_full_fence(P,V)
+#define __TBB_FetchAndAdd2acquire(P,V) __TBB_machine_fetchadd2acquire(P,V)
+#define __TBB_FetchAndAdd2release(P,V) __TBB_machine_fetchadd2release(P,V)
+#define __TBB_FetchAndAdd4acquire(P,V) __TBB_machine_fetchadd4acquire(P,V)
+#define __TBB_FetchAndAdd4release(P,V) __TBB_machine_fetchadd4release(P,V)
+#define __TBB_FetchAndAdd8acquire(P,V) __TBB_machine_fetchadd8acquire(P,V)
+#define __TBB_FetchAndAdd8release(P,V) __TBB_machine_fetchadd8release(P,V)
+
+#define __TBB_FetchAndStore1acquire(P,V) __TBB_machine_fetchstore1acquire(P,V)
+#define __TBB_FetchAndStore1release(P,V) __TBB_machine_fetchstore1release(P,V)
+#define __TBB_FetchAndStore2acquire(P,V) __TBB_machine_fetchstore2acquire(P,V)
+#define __TBB_FetchAndStore2release(P,V) __TBB_machine_fetchstore2release(P,V)
+#define __TBB_FetchAndStore4acquire(P,V) __TBB_machine_fetchstore4acquire(P,V)
+#define __TBB_FetchAndStore4release(P,V) __TBB_machine_fetchstore4release(P,V)
+#define __TBB_FetchAndStore8acquire(P,V) __TBB_machine_fetchstore8acquire(P,V)
+#define __TBB_FetchAndStore8release(P,V) __TBB_machine_fetchstore8release(P,V)
+
+#define __TBB_CompareAndSwap1acquire(P,V,C) __TBB_machine_cmpswp1acquire(P,V,C)
+#define __TBB_CompareAndSwap1release(P,V,C) __TBB_machine_cmpswp1release(P,V,C)
+#define __TBB_CompareAndSwap2acquire(P,V,C) __TBB_machine_cmpswp2acquire(P,V,C)
+#define __TBB_CompareAndSwap2release(P,V,C) __TBB_machine_cmpswp2release(P,V,C)
+#define __TBB_CompareAndSwap4(P,V,C)        __TBB_machine_cmpswp4__TBB_full_fence(P,V,C)
+#define __TBB_CompareAndSwap4acquire(P,V,C) __TBB_machine_cmpswp4acquire(P,V,C)
+#define __TBB_CompareAndSwap4release(P,V,C) __TBB_machine_cmpswp4release(P,V,C)
+#define __TBB_CompareAndSwap8(P,V,C)        __TBB_machine_cmpswp8__TBB_full_fence(P,V,C)
+#define __TBB_CompareAndSwap8acquire(P,V,C) __TBB_machine_cmpswp8acquire(P,V,C)
+#define __TBB_CompareAndSwap8release(P,V,C) __TBB_machine_cmpswp8release(P,V,C)
+
+#define __TBB_FetchAndAdd4(P,V) __TBB_machine_fetchadd4__TBB_full_fence(P,V)
+#define __TBB_FetchAndAdd8(P,V) __TBB_machine_fetchadd8__TBB_full_fence(P,V)
+
+#define __TBB_FetchAndStore1(P,V) __TBB_machine_fetchstore1__TBB_full_fence(P,V)
+#define __TBB_FetchAndStore2(P,V) __TBB_machine_fetchstore2__TBB_full_fence(P,V)
+#define __TBB_FetchAndStore4(P,V) __TBB_machine_fetchstore4__TBB_full_fence(P,V)
+#define __TBB_FetchAndStore8(P,V) __TBB_machine_fetchstore8__TBB_full_fence(P,V)
+
+#define __TBB_FetchAndIncrementWacquire(P) __TBB_FetchAndAdd8acquire(P,1)
+#define __TBB_FetchAndDecrementWrelease(P) __TBB_FetchAndAdd8release(P,-1)
+
+#ifndef __INTEL_COMPILER
+template<typename T, typename V>
+inline void __TBB_store_with_release_via_explicit_fence(volatile T& location, V value) {
+    __asm__ __volatile__("": : :"memory");
+    location = value;
+}
+
+//! Load with acquire semantics, both for hardware and compiler.
+/** Even though GCC imbues volatile loads with acquire semantics, 
+    it sometimes hoists loads over the acquire fence.  We use
+    an explicit memory fence to prevent such incorrect hoisting. */
+template<typename T>
+inline T __TBB_load_with_acquire_via_explicit_fence(const volatile T& location) {
+    T tmp = location;
+    __asm__ __volatile__("": : :"memory");
+    return tmp;
+}
+#define __TBB_load_with_acquire(L)    __TBB_load_with_acquire_via_explicit_fence(L)
+#define __TBB_store_with_release(L,V) __TBB_store_with_release_via_explicit_fence(L,V)
+#endif
+
+// Special atomic functions
+#define __TBB_CompareAndSwapW(P,V,C)   __TBB_CompareAndSwap8(P,V,C)
+#define __TBB_FetchAndStoreW(P,V)      __TBB_FetchAndStore8(P,V)
+#define __TBB_FetchAndAddW(P,V)        __TBB_FetchAndAdd8(P,V)
+#define __TBB_FetchAndAddWrelease(P,V) __TBB_FetchAndAdd8release(P,V)
+
+// Not needed
+#undef __TBB_Store8
+#undef __TBB_Load8
+
+// Definition of Lock functions
+#define __TBB_TryLockByte(P) __TBB_machine_trylockbyte(P)
+#define __TBB_LockByte(P)    __TBB_machine_lockbyte(P)
+
+// Definition of other utility functions
+#define __TBB_Yield()  sched_yield()
+#define __TBB_Pause(V) __TBB_machine_pause(V)
+#define __TBB_Log2(V)  __TBB_machine_lg(V)
+
diff --git a/include/tbb/machine/mac_ppc.h b/include/tbb/machine/mac_ppc.h
new file mode 100644
index 0000000..831ce27
--- /dev/null
+++ b/include/tbb/machine/mac_ppc.h
@@ -0,0 +1,98 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#define __TBB_WORDSIZE 8
+#define __TBB_BIG_ENDIAN 1
+
+#include <stdint.h>
+#include <unistd.h>
+
+#include <sched.h>
+
+inline int32_t __TBB_machine_cmpswp4 (volatile void *ptr, int32_t value, int32_t comparand )
+{
+    int32_t result;
+
+    __asm__ __volatile__("0: lwarx %0,0,%1\n\t" /* load w/ reservation */
+                         "cmpw %0,%3\n\t"       /* compare against comparand */
+                         "bne- 1f\n\t"           /* exit if not same */
+                         "stwcx. %2,0,%1\n\t"    /* store new_value */
+                         "bne- 0b\n"             /* retry if reservation lost */
+                         "1:"                   /* the exit */
+                          : "=&r"(result)
+                          : "r"(ptr), "r"(value), "r"(comparand)
+                          : "cr0");
+    return result;
+}
+
+#if defined(powerpc64) || defined(__powerpc64__) || defined(__ppc64__)
+
+inline int64_t __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand )
+{
+    int64_t result;
+    __asm__ __volatile__("0: ldarx %0,0,%1\n\t" /* load w/ reservation */
+                         "cmpd %0,%3\n\t"       /* compare against comparand */
+                         "bne- 1f\n\t"           /* exit if not same */
+                         "stdcx. %2,0,%1\n\t"    /* store new_value */
+                         "bne- 0b\n"             /* retry if reservation lost */
+                         "1:"                   /* the exit */
+                          : "=&b"(result)
+                          : "r"(ptr), "r"(value), "r"(comparand)
+                          : "cr0");
+    return result;
+}
+
+#else
+#error This configuratioin is not supported yet
+
+inline int64_t __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand )
+{
+    int64_t result;
+    __asm__ __volatile__("0: ldarx %0,0,%1\n\t" /* load w/ reservation */
+                         "cmpd %0,%3\n\t"       /* compare against comparand */
+                         "bne- 1f\n\t"           /* exit if not same */
+                         "stdcx. %2,0,%1\n\t"    /* store new_value */
+                         "bne- 0b\n"             /* retry if reservation lost */
+                         "1:"                   /* the exit */
+                          : "=&b"(result)
+                          : "r"(ptr), "r"(value), "r"(comparand)
+                          : "cr0");
+    return result;
+}
+
+#endif
+
+#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+#define __TBB_CompareAndSwapW(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+#define __TBB_Yield() sched_yield()
+
diff --git a/include/tbb/machine/windows_em64t.h b/include/tbb/machine/windows_em64t.h
new file mode 100644
index 0000000..637defc
--- /dev/null
+++ b/include/tbb/machine/windows_em64t.h
@@ -0,0 +1,153 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#include <windows.h>
+
+#if defined(__INTEL_COMPILER)
+#define _ReadWriteBarrier() __asm { __asm nop }
+#elif _MSC_VER >= 1300
+extern "C" void _ReadWriteBarrier();
+#pragma intrinsic(_ReadWriteBarrier)
+#endif
+
+#define __TBB_WORDSIZE 8
+#define __TBB_BIG_ENDIAN 0
+
+// ATTENTION: if you ever change argument types in machine-specific primitives,
+// please take care of atomic_word<> specializations in tbb/atomic.h
+extern "C" {
+    __int8 __TBB_machine_cmpswp1 (volatile void *ptr, __int8 value, __int8 comparand );
+    __int8 __TBB_machine_fetchadd1 (volatile void *ptr, __int8 addend );
+    __int8 __TBB_machine_fetchstore1 (volatile void *ptr, __int8 value );
+    __int16 __TBB_machine_cmpswp2 (volatile void *ptr, __int16 value, __int16 comparand );
+    __int16 __TBB_machine_fetchadd2 (volatile void *ptr, __int16 addend );
+    __int16 __TBB_machine_fetchstore2 (volatile void *ptr, __int16 value );
+    void __TBB_machine_pause (__int32 delay );
+}
+
+template <typename T>
+static inline T __TBB_machine_load_with_acquire(const volatile T& location) {
+    T to_return = location;
+    _ReadWriteBarrier();
+    return to_return;
+}
+
+template <typename T, typename V>
+static inline void __TBB_machine_store_with_release(volatile T &location, V value) {
+    _ReadWriteBarrier();
+    location = value;
+}
+
+#define __TBB_load_with_acquire(L) __TBB_machine_load_with_acquire((L))
+#define __TBB_store_with_release(L,V) __TBB_machine_store_with_release((L),(V))
+
+
+#if !__INTEL_COMPILER
+extern "C" unsigned char _BitScanReverse64( unsigned long* i, unsigned __int64 w );
+#pragma intrinsic(_BitScanReverse64)
+#endif
+
+inline __int64 __TBB_machine_lg( unsigned __int64 i ) {
+#if __INTEL_COMPILER
+    unsigned __int64 j;
+    __asm
+    {
+        bsr rax, i
+        mov j, rax
+    }
+#else
+    unsigned long j;
+    _BitScanReverse64( &j, i );
+#endif
+    return j;
+}
+
+inline void __TBB_machine_OR( volatile void *operand, uintptr_t addend ) {
+    InterlockedOr64((LONGLONG *)operand, addend); 
+}
+
+#define __TBB_CompareAndSwap1(P,V,C) __TBB_machine_cmpswp1(P,V,C)
+#define __TBB_CompareAndSwap2(P,V,C) __TBB_machine_cmpswp2(P,V,C)
+#define __TBB_CompareAndSwap4(P,V,C) InterlockedCompareExchange( (LONG *) P , V , C ) 
+#define __TBB_CompareAndSwap8(P,V,C) InterlockedCompareExchange64( (LONGLONG *) P , V , C )
+#define __TBB_CompareAndSwapW(P,V,C) InterlockedCompareExchange64( (LONGLONG *) P , V , C )
+
+#define __TBB_FetchAndAdd1(P,V) __TBB_machine_fetchadd1(P,V)
+#define __TBB_FetchAndAdd2(P,V) __TBB_machine_fetchadd2(P,V)
+#define __TBB_FetchAndAdd4(P,V) ( InterlockedAdd((LONG *) P , V ) - V ) 
+#define __TBB_FetchAndAdd8(P,V) ( InterlockedAdd64((LONGLONG *) P , V ) - V ) 
+#define __TBB_FetchAndAddW(P,V)  ( InterlockedAdd64((LONGLONG *) P , V ) - V ) 
+
+#define __TBB_FetchAndStore1(P,V) __TBB_machine_fetchstore1(P,V)
+#define __TBB_FetchAndStore2(P,V) __TBB_machine_fetchstore2(P,V)
+#define __TBB_FetchAndStore4(P,V) InterlockedExchange((LONG *) P , V )
+#define __TBB_FetchAndStore8(P,V) InterlockedExchange64((LONGLONG *) P , V )
+#define __TBB_FetchAndStoreW(P,V)  InterlockedExchange64((LONGLONG *) P , V ) 
+
+// Not used if wordsize == 8
+#undef __TBB_Store8
+#undef __TBB_Load8
+
+#if __INTEL_COMPILER<1010
+#define __TBB_AtomicOR(P,V) __TBB_machine_OR(P,V)
+#else
+// icl 10.1 incorrectly compiles InterlockedOr64, so use default definition of __TBB_AtomicOR instead.
+#endif
+
+// Definition of other functions
+#define __TBB_Yield()  Sleep(0)
+#define __TBB_Pause(V) __TBB_machine_pause(V)
+#define __TBB_Log2(V)    __TBB_machine_lg(V)
+
+#if !__INTEL_COMPILER
+extern "C" void __cpuid( int cpuinfo[4], int mode );
+#pragma intrinsic(__cpuid)
+#endif
+
+#define __TBB_cpuid
+inline void __TBB_x86_cpuid( __int32 buffer[4], __int32 mode ) {
+#if __INTEL_COMPILER
+    __asm
+    {
+        mov eax,mode
+        cpuid
+        mov rdi,buffer
+        mov [rdi+0],eax
+        mov [rdi+4],ebx
+        mov [rdi+8],ecx
+        mov [rdi+12],edx
+    }
+#else
+    __cpuid(buffer, mode);
+#endif
+}
+
diff --git a/include/tbb/machine/windows_ia32.h b/include/tbb/machine/windows_ia32.h
new file mode 100644
index 0000000..28c442c
--- /dev/null
+++ b/include/tbb/machine/windows_ia32.h
@@ -0,0 +1,221 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#include <windows.h>
+
+#if !defined(__INTEL_COMPILER)
+#if _MSC_VER >= 1300
+extern "C" void _ReadWriteBarrier();
+#pragma intrinsic(_ReadWriteBarrier)
+#endif
+#endif
+
+#define __TBB_WORDSIZE 4
+#define __TBB_BIG_ENDIAN 0
+
+extern "C" {
+    __int64 __TBB_machine_cmpswp8 (volatile void *ptr, __int64 value, __int64 comparand );
+    __int64 __TBB_machine_fetchadd8 (volatile void *ptr, __int64 addend );
+    __int64 __TBB_machine_fetchstore8 (volatile void *ptr, __int64 value );
+    void __TBB_machine_store8 (volatile void *ptr, __int64 value );
+    __int64 __TBB_machine_load8 (const volatile void *ptr);
+    bool __TBB_machine_trylockbyte ( volatile unsigned char& flag );
+}
+
+template <typename T, size_t S>
+struct __TBB_machine_load_store {
+    static inline T load_with_acquire(const volatile T& location) {
+#if !defined(__INTEL_COMPILER) && _MSC_VER >= 1300
+        T to_return = location;
+        _ReadWriteBarrier();
+        return to_return;
+#else
+        return location;
+#endif
+    }
+
+    static inline void store_with_release(T &location, T value) {
+#if !defined(__INTEL_COMPILER) && _MSC_VER >= 1300
+        _ReadWriteBarrier();
+#endif
+        const_cast<T volatile&>(location) = value;
+    }
+};
+
+template <typename T>
+struct __TBB_machine_load_store<T,8> {
+    static inline T load_with_acquire(const volatile T& location) {
+        return __TBB_machine_load8((volatile void *)&location);
+    }
+
+    static inline void store_with_release(T &location, T value) {
+        __TBB_machine_store8((volatile void *)&location,(int64_t)value);
+    }
+};
+
+template<typename T>
+inline T __TBB_machine_load_with_acquire(const volatile T &location) {
+    return __TBB_machine_load_store<T,sizeof(T)>::load_with_acquire(location);
+}
+
+template<typename T, typename V>
+inline void __TBB_machine_store_with_release(T& location, V value) {
+    __TBB_machine_load_store<T,sizeof(T)>::store_with_release(location,value);
+}
+
+#define __TBB_load_with_acquire(L) __TBB_machine_load_with_acquire((L))
+#define __TBB_store_with_release(L,V) __TBB_machine_store_with_release((L),(V))
+
+
+#define DEFINE_ATOMICS(S,T,A,C) \
+static inline T __TBB_machine_cmpswp##S ( volatile void * ptr, T value, T comparand ) { \
+    T result; \
+    volatile T *p = (T *)ptr; \
+    __asm \
+    { \
+       __asm mov edx, p \
+       __asm mov C , value \
+       __asm mov A , comparand \
+       __asm lock cmpxchg [edx], C \
+       __asm mov result, A \
+    } \
+   __TBB_load_with_acquire(*(T *)ptr); \
+    return result; \
+} \
+\
+static inline T __TBB_machine_fetchadd##S ( volatile void * ptr, T addend ) { \
+    T result; \
+    volatile T *p = (T *)ptr; \
+    __asm \
+    { \
+        __asm mov edx, p \
+        __asm mov A, addend \
+        __asm lock xadd [edx], A \
+        __asm mov result, A \
+    } \
+   __TBB_load_with_acquire(*(T *)ptr); \
+    return result; \
+}\
+\
+static inline T __TBB_machine_fetchstore##S ( volatile void * ptr, T value ) { \
+    T result; \
+    volatile T *p = (T *)ptr; \
+    __asm \
+    { \
+        __asm mov edx, p \
+        __asm mov A, value \
+        __asm lock xchg [edx], A \
+        __asm mov result, A \
+    } \
+   __TBB_load_with_acquire(*(T *)ptr); \
+    return result; \
+}
+
+DEFINE_ATOMICS(1, __int8, al, cl)
+DEFINE_ATOMICS(2, __int16, ax, cx)
+DEFINE_ATOMICS(4, __int32, eax, ecx)
+
+static inline __int32 __TBB_machine_lg( unsigned __int64 i ) {
+    unsigned __int32 j;
+    __asm
+    {
+        bsr eax, i
+        mov j, eax
+    }
+    return j;
+}
+
+static inline void __TBB_machine_OR( volatile void *operand, unsigned __int32 addend ) {
+   __asm 
+   {
+       mov eax, addend
+       mov edx, [operand]
+       lock or [edx], eax
+   }
+}
+
+static inline void __TBB_machine_pause (__int32 delay ) {
+    _asm 
+    {
+        mov eax, delay
+      L1: 
+        pause
+        add eax, -1
+        jne L1  
+    }
+    return;
+}
+
+#define __TBB_CompareAndSwap1(P,V,C) __TBB_machine_cmpswp1(P,V,C)
+#define __TBB_CompareAndSwap2(P,V,C) __TBB_machine_cmpswp2(P,V,C)
+#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+#define __TBB_CompareAndSwapW(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+
+#define __TBB_FetchAndAdd1(P,V) __TBB_machine_fetchadd1(P,V)
+#define __TBB_FetchAndAdd2(P,V) __TBB_machine_fetchadd2(P,V)
+#define __TBB_FetchAndAdd4(P,V) __TBB_machine_fetchadd4(P,V)
+#define __TBB_FetchAndAdd8(P,V) __TBB_machine_fetchadd8(P,V)
+#define __TBB_FetchAndAddW(P,V) __TBB_machine_fetchadd4(P,V)
+
+#define __TBB_FetchAndStore1(P,V) __TBB_machine_fetchstore1(P,V)
+#define __TBB_FetchAndStore2(P,V) __TBB_machine_fetchstore2(P,V)
+#define __TBB_FetchAndStore4(P,V) __TBB_machine_fetchstore4(P,V)
+#define __TBB_FetchAndStore8(P,V) __TBB_machine_fetchstore8(P,V)
+#define __TBB_FetchAndStoreW(P,V) __TBB_machine_fetchstore4(P,V)
+
+// Should define this: 
+#define __TBB_Store8(P,V) __TBB_machine_store8(P,V)
+#define __TBB_Load8(P) __TBB_machine_load8(P)
+#define __TBB_AtomicOR(P,V) __TBB_machine_OR(P,V)
+
+// Definition of other functions
+#define __TBB_Yield()  Sleep(0)
+#define __TBB_Pause(V) __TBB_machine_pause(V)
+#define __TBB_Log2(V)    __TBB_machine_lg(V)
+
+#define __TBB_TryLockByte(F) __TBB_machine_trylockbyte(F)
+
+#define __TBB_cpuid
+static inline void __TBB_x86_cpuid( __int32 buffer[4], __int32 mode ) {
+    __asm
+    {
+        mov eax,mode
+        cpuid
+        mov edi,buffer
+        mov [edi+0],eax
+        mov [edi+4],ebx
+        mov [edi+8],ecx
+        mov [edi+12],edx
+    }
+}
+
diff --git a/include/tbb/machine/windows_ia32_inline.h b/include/tbb/machine/windows_ia32_inline.h
new file mode 100644
index 0000000..89eca84
--- /dev/null
+++ b/include/tbb/machine/windows_ia32_inline.h
@@ -0,0 +1,176 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#error Do not include this file directly; include tbb_machine.h instead
+#endif
+
+#include <windows.h>
+
+#define __TBB_WORDSIZE 4
+#define __TBB_BIG_ENDIAN 0
+
+#define DEFINE_ATOMICS(S,T,A,C) \
+static inline T __TBB_machine_cmpswp##S ( volatile void * ptr, T value, T comparand ) { \
+    T result; \
+    T *p = (T *)ptr; \
+    __asm \
+    { \
+       __asm mov edx, p \
+       __asm mov C , value \
+       __asm mov A , comparand \
+       __asm lock cmpxchg [edx], C \
+       __asm mov result, A \
+    } \
+    return result; \
+} \
+\
+static inline T __TBB_machine_fetchadd##S ( volatile void * ptr, T addend ) { \
+    T result; \
+    T *p = (T *)ptr; \
+    __asm \
+    { \
+        __asm mov edx, p \
+        __asm mov A, addend \
+        __asm lock xadd [edx], A \
+        __asm mov result, A \
+    } \
+    return result; \
+}\
+\
+static inline T __TBB_machine_fetchstore##S ( volatile void * ptr, T value ) { \
+    T result; \
+    T *p = (T *)ptr; \
+    __asm \
+    { \
+        __asm mov edx, p \
+        __asm mov A, value \
+        __asm lock xchg [edx], A \
+        __asm mov result, A \
+    } \
+    return result; \
+}
+
+DEFINE_ATOMICS(1, __int8, al, cl)
+DEFINE_ATOMICS(2, __int16, ax, cx)
+DEFINE_ATOMICS(4, __int32, eax, ecx)
+
+static inline __int64 __TBB_machine_cmpswp8 (volatile void *ptr, __int64 value, __int64 comparand ) {
+    __int32 comparand_lo = comparand;
+    __int32 comparand_hi = comparand>>32;
+    __int32 value_lo = value;
+    __int32 value_hi = value>>32;
+
+    __int64 *p = (__int64 *)ptr;
+
+    // EDX:EAX is comparand, ECX:EBX is value, EDX:EAX is result
+    __asm 
+    {
+        mov edx, comparand_hi
+        mov eax, comparand_lo
+        mov ecx, value_hi
+        mov ebx, value_lo
+        lock cmpxchg8b [p]
+    }
+}
+
+
+static inline __int32 __TBB_machine_lg( unsigned __int64 i ) {
+    unsigned __int32 j;
+    __asm
+    {
+        bsr eax, i
+        mov j, eax
+    }
+    return j;
+}
+
+static inline void __TBB_machine_OR( volatile void *operand, unsigned __int32 addend ) {
+   __asm 
+   {
+       mov eax, addend
+       mov edx, [operand]
+       lock or [edx], eax
+   }
+}
+
+static inline void __TBB_machine_pause (__int32 delay ) {
+    _asm 
+    {
+        mov eax, delay
+      L1: 
+        pause
+        add eax, -1
+        jne L1  
+    }
+    return;
+}
+
+#define __TBB_CompareAndSwap1(P,V,C) __TBB_machine_cmpswp1(P,V,C)
+#define __TBB_CompareAndSwap2(P,V,C) __TBB_machine_cmpswp2(P,V,C)
+#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C)
+#define __TBB_CompareAndSwapW(P,V,C) __TBB_machine_cmpswp4(P,V,C)
+
+#define __TBB_FetchAndAdd1(P,V) __TBB_machine_fetchadd1(P,V)
+#define __TBB_FetchAndAdd2(P,V) __TBB_machine_fetchadd2(P,V)
+#define __TBB_FetchAndAdd4(P,V) __TBB_machine_fetchadd4(P,V)
+#undef __TBB_FetchAndAdd8
+#define __TBB_FetchAndAddW(P,V) __TBB_machine_fetchadd4(P,V)
+
+#define __TBB_FetchAndStore1(P,V) __TBB_machine_fetchstore1(P,V)
+#define __TBB_FetchAndStore2(P,V) __TBB_machine_fetchstore2(P,V)
+#define __TBB_FetchAndStore4(P,V) __TBB_machine_fetchstore4(P,V)
+#undef __TBB_FetchAndStore8
+#define __TBB_FetchAndStoreW(P,V) __TBB_machine_fetchstore4(P,V)
+
+// Should define this: 
+#undef __TBB_Store8
+#undef __TBB_Load8
+
+#define __TBB_AtomicOR(P,V) __TBB_machine_OR(P,V)
+
+// Definition of other functions
+#define __TBB_Yield()  Sleep(0)
+#define __TBB_Pause(V) __TBB_machine_pause(V)
+#define __TBB_Log2(V)    __TBB_machine_lg(V)
+
+#define __TBB_cpuid
+static inline void __TBB_x86_cpuid( __int32 buffer[4], __int32 mode ) {
+    __asm
+    {
+        mov eax,mode
+        cpuid
+        mov edi,buffer
+        mov [edi+0],eax
+        mov [edi+4],ebx
+        mov [edi+8],ecx
+        mov [edi+12],edx
+    }
+}
+
diff --git a/include/tbb/mutex.h b/include/tbb/mutex.h
new file mode 100644
index 0000000..7956eee
--- /dev/null
+++ b/include/tbb/mutex.h
@@ -0,0 +1,193 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_mutex_H
+#define __TBB_mutex_H
+
+#if _WIN32||_WIN64
+#include <windows.h>
+#if !defined(_WIN32_WINNT)
+// The following Windows API function is declared explicitly;
+// otherwise any user would have to specify /D_WIN32_WINNT=0x0400
+extern "C" BOOL WINAPI TryEnterCriticalSection( LPCRITICAL_SECTION );
+#elif _WIN32_WINNT<0x0400
+// If earlier WINNT target is explicitly specified, no try_acquire is possible
+#define __TBB_mutex_NO_TRY_ACQUIRE
+#endif
+
+#else /* if not _WIN32||_WIN64 */
+#include <pthread.h>
+namespace tbb { namespace internal {
+// Use this internal TBB function to throw an exception
+extern void handle_perror( int error_code, const char* what );
+} } //namespaces
+#endif /* _WIN32||_WIN64 */
+
+#include <stdio.h>
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+//! Wrapper around the platform's native reader-writer lock.
+/** For testing purposes only.
+    @ingroup synchronization */
+class mutex {
+public:
+    //! Construct unacquired mutex.
+    mutex() {
+#if TBB_DO_ASSERT
+    internal_construct();
+#else
+  #if _WIN32||_WIN64
+        InitializeCriticalSection(&impl);
+  #else
+        int error_code = pthread_mutex_init(&impl,NULL);
+        if( error_code )
+            tbb::internal::handle_perror(error_code,"mutex: pthread_mutex_init failed");
+  #endif /* _WIN32||_WIN64*/
+#endif /* TBB_DO_ASSERT */
+    };
+
+    ~mutex() {
+#if TBB_DO_ASSERT
+        internal_destroy();
+#else
+  #if _WIN32||_WIN64
+        DeleteCriticalSection(&impl);
+  #else
+        pthread_mutex_destroy(&impl); 
+
+  #endif /* _WIN32||_WIN64 */
+#endif /* TBB_DO_ASSERT */
+    };
+
+    class scoped_lock;
+    friend class scoped_lock;
+
+    //! The scoped locking pattern
+    /** It helps to avoid the common problem of forgetting to release lock.
+        It also nicely provides the "node" for queuing locks. */
+    class scoped_lock : private internal::no_copy {
+    public:
+        //! Construct lock that has not acquired a mutex. 
+        scoped_lock() : my_mutex(NULL) {};
+
+        //! Acquire lock on given mutex.
+        /** Upon entry, *this should not be in the "have acquired a mutex" state. */
+        scoped_lock( mutex& mutex ) {
+            acquire( mutex );
+        }
+
+        //! Release lock (if lock is held).
+        ~scoped_lock() {
+            if( my_mutex ) 
+                release();
+        }
+
+        //! Acquire lock on given mutex.
+        void acquire( mutex& mutex ) {
+#if TBB_DO_ASSERT
+            internal_acquire(mutex);
+#else
+            my_mutex = &mutex;
+  #if _WIN32||_WIN64
+            EnterCriticalSection(&mutex.impl);
+  #else
+            pthread_mutex_lock(&mutex.impl);
+  #endif /* _WIN32||_WIN64 */
+#endif /* TBB_DO_ASSERT */
+        }
+
+#ifndef __TBB_mutex_NO_TRY_ACQUIRE
+        //! Try acquire lock on given mutex.
+        bool try_acquire( mutex& mutex ) {
+#if TBB_DO_ASSERT
+            return internal_try_acquire (mutex);
+#else
+            bool result;
+  #if _WIN32||_WIN64
+            result = TryEnterCriticalSection(&mutex.impl)!=0;
+  #else
+            result = pthread_mutex_trylock(&mutex.impl)==0;
+  #endif /* _WIN32||_WIN64 */
+            if( result )
+                my_mutex = &mutex;
+            return result;
+#endif /* TBB_DO_ASSERT */
+        }
+#endif /* __TBB_mutex_NO_TRY_ACQUIRE */
+
+        //! Release lock
+        void release() {
+#if TBB_DO_ASSERT
+            internal_release ();
+#else
+  #if _WIN32||_WIN64
+            LeaveCriticalSection(&my_mutex->impl);
+  #else
+            pthread_mutex_unlock(&my_mutex->impl);
+  #endif /* _WIN32||_WIN64 */
+            my_mutex = NULL;
+#endif /* TBB_DO_ASSERT */
+        }
+
+    private:
+        //! The pointer to the current mutex to work
+        mutex* my_mutex;
+
+        //! All checks from acquire using mutex.state were moved here
+        void internal_acquire( mutex& m );
+
+        //! All checks from try_acquire using mutex.state were moved here
+        bool internal_try_acquire( mutex& m );
+
+        //! All checks from release using mutex.state were moved here
+        void internal_release();
+    };
+
+private:
+#if _WIN32||_WIN64
+    CRITICAL_SECTION impl;    
+    enum state_t {
+        INITIALIZED=0x1234,
+        DESTROYED=0x789A
+    } state;
+#else
+    pthread_mutex_t impl;
+#endif /* _WIN32||_WIN64 */
+
+    //! All checks from mutex constructor using mutex.state were moved here
+    void internal_construct();
+
+    //! All checks from mutex destructor using mutex.state were moved here
+    void internal_destroy();
+};
+
+} // namespace tbb 
+
+#endif /* __TBB_mutex_H */
diff --git a/include/tbb/parallel_for.h b/include/tbb/parallel_for.h
new file mode 100644
index 0000000..0f6914b
--- /dev/null
+++ b/include/tbb/parallel_for.h
@@ -0,0 +1,119 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_parallel_for_H
+#define __TBB_parallel_for_H
+
+#include "task.h"
+#include "partitioner.h"
+#include <new>
+
+namespace tbb {
+
+//! @cond INTERNAL
+namespace internal {
+
+    //! Task type used in parallel_for
+    /** @ingroup algorithms */
+    template<typename Range, typename Body, typename Partitioner=simple_partitioner>
+    class start_for: public task {
+        Range my_range;
+        const Body my_body;
+        Partitioner my_partitioner;
+        /*override*/ task* execute();
+    public:
+
+        start_for( const Range& range, const Body& body, const Partitioner &partitioner ) :
+            my_range(range),    
+            my_body(body),
+            my_partitioner(partitioner)
+        {
+        }
+    };
+
+    template<typename Range, typename Body, typename Partitioner>
+    task* start_for<Range,Body,Partitioner>::execute() {
+        if( my_partitioner.should_execute_range(my_range, *this) ) {
+            my_body( my_range );
+            return NULL;
+        } else {
+            empty_task& c = *new( allocate_continuation() ) empty_task;
+            recycle_as_child_of(c);
+            c.set_ref_count(2);
+            start_for& b = *new( c.allocate_child() ) start_for(Range(my_range,split()),my_body,Partitioner(my_partitioner,split()));
+            c.spawn(b);
+            return this;
+        }
+    } 
+
+} // namespace internal
+//! @endcond
+
+
+//! Parallel iteration over range.
+/** The body b must allow:                                      \n
+        b(r)                    Apply function to range r.      \n
+    r must define:                                              \n
+        r.is_divisible()        True if range should be divided \n
+        r.empty()               True if range is empty          \n
+        R r2(r,split())         Split range into r2 and r.      \n
+    @ingroup algorithms */ 
+template<typename Range, typename Body>
+void parallel_for( const Range& range, const Body& body ) {
+    if( !range.empty() ) {
+        typedef typename internal::start_for<Range,Body> start_type;
+        start_type& a = *new(task::allocate_root()) start_type(range,body,simple_partitioner());
+        task::spawn_root_and_wait(a);
+    }
+}
+
+//! Parallel iteration over range using a partitioner.
+/** The body b must allow:                                      \n
+        b(r)                    Apply function to range r.      \n
+    r must define:                                              \n
+        r.is_divisible()        True if range can be divided \n
+        r.empty()               True if range is empty          \n
+        R r2(r,split())         Split range into r2 and r.      \n
+    The partitioner p must define: \n
+        p.should_execute_range(r,t)   True if r should be executed to completion without further splits. \n  
+        P p2(p,split())               Split the partitioner into p2 and p.      \n
+    @ingroup algorithms */
+template<typename Range, typename Body, typename Partitioner>
+void parallel_for( const Range& range, const Body& body, const Partitioner &partitioner ) {
+    if( !range.empty() ) {
+        typedef typename internal::start_for<Range,Body,Partitioner> start_type;
+        start_type& a = *new(task::allocate_root()) start_type(range,body,partitioner);
+        task::spawn_root_and_wait(a);
+    }
+}
+
+
+} // namespace tbb
+
+#endif /* __TBB_parallel_for_H */
+
diff --git a/include/tbb/parallel_reduce.h b/include/tbb/parallel_reduce.h
new file mode 100644
index 0000000..1dfe417
--- /dev/null
+++ b/include/tbb/parallel_reduce.h
@@ -0,0 +1,155 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_parallel_reduce_H
+#define __TBB_parallel_reduce_H
+
+#include "task.h"
+#include "aligned_space.h"
+#include "partitioner.h"
+#include <new>
+
+namespace tbb {
+
+//! @cond INTERNAL
+namespace internal {
+
+    //! Task type use to combine the partial results of parallel_reduce.
+    /** @ingroup algorithms */
+    template<typename Body>
+    class finish_reduce: public task {
+        Body* const my_body;
+        Body* right_zombie;
+        aligned_space<Body,1> zombie_space;
+        finish_reduce( Body* body ) : 
+            my_body(body),
+            right_zombie(NULL)
+        {
+        }
+        task* execute() {
+            if( Body* s = right_zombie ) {
+                // Right child was stolen.
+                __TBB_ASSERT( my_body!=s, NULL );
+                my_body->join( *s );
+                s->~Body();
+            }
+            return NULL;
+        }       
+        template<typename Range,typename Body_, typename Partitioner>
+        friend class start_reduce;
+    };
+
+    //! Task type use to split the work of parallel_reduce.
+    /** @ingroup algorithms */
+    template<typename Range, typename Body, typename Partitioner=simple_partitioner>
+    class start_reduce: public task {
+        typedef finish_reduce<Body> finish_type;
+        Body* my_body;
+        Range my_range;
+        Partitioner my_partitioner;
+        /*override*/ task* execute();
+        template<typename Body_>
+        friend class finish_reduce;
+    public:
+        start_reduce( const Range& range, Body* body, const Partitioner &partitioner ) :
+            my_body(body),
+            my_range(range),
+            my_partitioner(partitioner)
+        {
+        }
+    };
+
+    template<typename Range, typename Body, typename Partitioner>
+    task* start_reduce<Range,Body,Partitioner>::execute() {
+        Body* body = my_body;
+        if( is_stolen_task() ) {
+            finish_reduce<Body>* p = static_cast<finish_type*>(parent() );
+            body = new( p->zombie_space.begin() ) Body(*body,split());
+            my_body = p->right_zombie = body;
+        }
+        task* next_task = NULL;
+        if ( my_partitioner.should_execute_range(my_range, *this))
+            (*my_body)( my_range );
+        else {
+            finish_reduce<Body>& c = *new( allocate_continuation()) finish_type(body);
+            recycle_as_child_of(c);
+            c.set_ref_count(2);    
+            start_reduce& b = *new( c.allocate_child() ) start_reduce(Range(my_range,split()), body, Partitioner(my_partitioner,split()));
+            c.spawn(b);
+            next_task = this;
+        }
+        return next_task;
+    } 
+} // namespace internal
+//! @endcond
+
+
+//! Parallel iteration with reduction
+/** 
+  * Type Body must have the following signatures: \n
+  *     operator()( const Range& r ); \n
+  *     Body( Body& b, split );  (be aware that b may have concurrent accesses) \n
+  *     void join( Body& ); \n
+  *     ~Body
+  * @ingroup algorithms
+  */
+template<typename Range, typename Body>
+void parallel_reduce( const Range& range, Body& body ) {
+    if( !range.empty() ) {
+        typedef typename internal::start_reduce<Range,Body> start_type;
+        start_type& a = *new(task::allocate_root()) start_type(range,&body,simple_partitioner());
+        task::spawn_root_and_wait( a );
+    }
+}
+
+//! Parallel iteration with reduction using a partitioner.
+/** 
+  * Type Body must have the following signatures: \n
+  *     operator()( const Range& r ); \n
+  *     Body( Body& b, split );  (be aware that b may have concurrent accesses) \n
+  *     void join( Body& ); \n
+  *     ~Body
+  * The partitioner p must define: \n
+  *     p.should_execute_range(r,t)   True if r should be executed to completion without further splits. \n
+  *     P p2(p,split())               Split the partitioner into p2 and p.      \n
+  * @ingroup algorithms
+  */
+template<typename Range, typename Body, typename Partitioner>
+void parallel_reduce( const Range& range, Body& body, const Partitioner &partitioner ) {
+    if( !range.empty() ) {
+        typedef typename internal::start_reduce<Range,Body,Partitioner> start_type;
+        start_type& a = *new(task::allocate_root()) start_type(range,&body,partitioner);
+        task::spawn_root_and_wait( a );
+    }
+}
+
+
+} // namespace tbb
+
+#endif /* __TBB_parallel_reduce_H */
+
diff --git a/include/tbb/parallel_scan.h b/include/tbb/parallel_scan.h
new file mode 100644
index 0000000..ff0749e
--- /dev/null
+++ b/include/tbb/parallel_scan.h
@@ -0,0 +1,340 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_parallel_scan_H
+#define __TBB_parallel_scan_H
+
+#include "task.h"
+#include "aligned_space.h"
+#include <new>
+#include "partitioner.h"
+
+namespace tbb {
+
+//! Used to indicate that the initial scan is being performed.
+/** @ingroup algorithms */
+struct pre_scan_tag {
+    static bool is_final_scan() {return false;}
+};
+
+//! Used to indicate that the final scan is being performed.
+/** @ingroup algorithms */
+struct final_scan_tag {
+    static bool is_final_scan() {return true;}
+};
+
+//! @cond INTERNAL
+namespace internal {
+
+    //! Performs final scan for a leaf 
+    /** @ingroup algorithms */
+    template<typename Range, typename Body>
+    class final_sum: public task {
+    public:
+        Body body;
+    private:
+        aligned_space<Range,1> range;
+        //! Where to put result of last subrange, or NULL if not last subrange.
+        Body* stuff_last;
+    public:
+        final_sum( Body& body_ ) :
+            body(body_,split())
+        {
+            poison_pointer(stuff_last);
+        }
+        ~final_sum() {
+            range.begin()->~Range();
+        }     
+        void finish_construction( const Range& range_, Body* stuff_last_ ) {
+            new( range.begin() ) Range(range_);
+            stuff_last = stuff_last_;
+        }
+    private:
+        /*override*/ task* execute() {
+            body( *range.begin(), final_scan_tag() );
+            if( stuff_last )
+                stuff_last->assign(body);
+            return NULL;
+        }
+    };       
+
+    //! Split work to be done in the scan.
+    /** @ingroup algorithms */
+    template<typename Range, typename Body>
+    class sum_node: public task {
+        typedef final_sum<Range,Body> final_sum_type;
+    public:
+        final_sum_type *incoming; 
+        final_sum_type *body;
+        Body *stuff_last;
+    private:
+        final_sum_type *left_sum;
+        sum_node *left;
+        sum_node *right;     
+        bool left_is_final;
+        Range range;
+        sum_node( const Range range_, bool left_is_final_ ) : 
+            left_sum(NULL), 
+            left(NULL), 
+            right(NULL), 
+            left_is_final(left_is_final_), 
+            range(range_)
+        {
+            // Poison fields that will be set by second pass.
+            poison_pointer(body);
+            poison_pointer(incoming);
+        }
+        task* create_child( const Range& range, final_sum_type& f, sum_node* n, final_sum_type* incoming, Body* stuff_last ) {
+            if( !n ) {
+                f.recycle_as_child_of( *this );
+                f.finish_construction( range, stuff_last );
+                return &f;
+            } else {
+                n->body = &f;
+                n->incoming = incoming;
+                n->stuff_last = stuff_last;
+                return n;
+            }
+        }
+        /*override*/ task* execute() {
+            if( body ) {
+                if( incoming )
+                    left_sum->body.reverse_join( incoming->body );
+                recycle_as_continuation();
+                sum_node& c = *this;
+                task* b = c.create_child(Range(range,split()),*left_sum,right,left_sum,stuff_last);
+                task* a = left_is_final ? NULL : c.create_child(range,*body,left,incoming,NULL);
+                set_ref_count( (a!=NULL)+(b!=NULL) );
+                body = NULL; 
+                if( a ) spawn(*b);
+                else a = b;
+                return a;
+            } else {
+                return NULL;
+            }
+        }
+        template<typename Range_,typename Body_,typename Partitioner_>
+        friend class start_scan;
+
+        template<typename Range_,typename Body_>
+        friend class finish_scan;
+    };
+
+    //! Combine partial results
+    /** @ingroup algorithms */
+    template<typename Range, typename Body>
+    class finish_scan: public task {
+        typedef sum_node<Range,Body> sum_node_type;
+        typedef final_sum<Range,Body> final_sum_type;
+        final_sum_type** const sum;
+        sum_node_type*& return_slot;
+    public:
+        final_sum_type* right_zombie;
+        sum_node_type& result;
+
+        /*override*/ task* execute() {
+            __TBB_ASSERT( result.ref_count()==(result.left!=NULL)+(result.right!=NULL), NULL );
+            if( result.left )
+                result.left_is_final = false;
+            if( right_zombie && sum ) 
+                ((*sum)->body).reverse_join(result.left_sum->body);
+            __TBB_ASSERT( !return_slot, NULL );
+            if( right_zombie || result.right ) {
+                return_slot = &result;
+            } else {
+                destroy( result );
+            }
+            if( right_zombie && !sum && !result.right ) destroy(*right_zombie);
+            return NULL;
+        }
+
+        finish_scan( sum_node_type*& return_slot_, final_sum_type** sum_, sum_node_type& result_ ) : 
+            sum(sum_),
+            return_slot(return_slot_), 
+            right_zombie(NULL),
+            result(result_)
+        {
+            __TBB_ASSERT( !return_slot, NULL );
+        }
+    };
+
+    //! Initial task to split the work
+    /** @ingroup algorithms */
+    template<typename Range, typename Body, typename Partitioner=simple_partitioner>
+    class start_scan: public task {
+        typedef sum_node<Range,Body> sum_node_type;
+        typedef final_sum<Range,Body> final_sum_type;
+        final_sum_type* body;
+        /** Non-null if caller is requesting total. */
+        final_sum_type** sum; 
+        sum_node_type** return_slot;
+        /** Null if computing root. */
+        sum_node_type* parent_sum;
+        bool is_final;
+        bool is_right_child;
+        Range range;
+        Partitioner partitioner;
+        /*override*/ task* execute();
+    public:
+        start_scan( 
+            sum_node_type*& return_slot_, const Range& range_, final_sum_type& body_, const Partitioner& partitioner_,
+            final_sum_type**sum_, bool is_final_, sum_node_type* parent_sum_ 
+        ) :
+            body(&body_),
+            sum(sum_),
+            return_slot(&return_slot_),
+            parent_sum(parent_sum_),
+            is_final(is_final_),
+            is_right_child(false),
+            range(range_),
+            partitioner(partitioner_)
+        {
+            __TBB_ASSERT( !*return_slot, NULL );
+        }
+    };
+
+    template<typename Range, typename Body, typename Partitioner>
+    task* start_scan<Range,Body,Partitioner>::execute() {
+        typedef internal::finish_scan<Range,Body> finish_pass1_type;
+        finish_pass1_type* p = parent_sum ? static_cast<finish_pass1_type*>( parent() ) : NULL;
+        // Inspecting p->result.left_sum would ordinarily be a race condition.
+        // But we inspect it only if we are not a stolen task, in which case we
+        // know that task assigning to p->result.left_sum has completed.
+        bool treat_as_stolen = is_right_child && (is_stolen_task() || body!=p->result.left_sum);
+        if( treat_as_stolen ) {
+            // Invocation is for right child that has been really stolen or needs to be virtually stolen
+            p->right_zombie = body = new( allocate_root() ) final_sum_type(body->body);
+            is_final = false;
+        }
+        task* next_task = NULL;
+        if( is_right_child && !treat_as_stolen || partitioner.should_execute_range(range, *this) ) {
+            if( is_final )
+                (body->body)( range, final_scan_tag() );
+            else if( sum )
+                (body->body)( range, pre_scan_tag() );
+            if( sum ) 
+                *sum = body;
+            __TBB_ASSERT( !*return_slot, NULL );
+        } else {
+            sum_node_type* result;
+            if( parent_sum ) 
+                result = new(allocate_additional_child_of(*parent_sum)) sum_node_type(range,/*left_is_final=*/is_final);
+            else
+                result = new(task::allocate_root()) sum_node_type(range,/*left_is_final=*/is_final);
+            finish_pass1_type& c = *new( allocate_continuation()) finish_pass1_type(*return_slot,sum,*result);
+            // Split off right child
+            start_scan& b = *new( c.allocate_child() ) start_scan(
+                /*return_slot=*/result->right,
+                /*range=*/Range(range,split()),
+                /*body=*/ *body,
+                /*partitioner=*/ Partitioner(partitioner,split()),
+                sum,
+                is_final,
+                result);
+            b.is_right_child = true;    
+            // Left child is recycling of *this.  Must recycle this before spawning b, 
+            // otherwise b might complete and decrement c.ref_count() to zero, which
+            // would cause c.execute() to run prematurely.
+            recycle_as_child_of(c);
+            c.set_ref_count(2);
+            c.spawn(b);
+            sum = &result->left_sum;
+            return_slot = &result->left;
+            is_right_child = false;
+            next_task = this;
+            parent_sum = result; 
+            __TBB_ASSERT( !*return_slot, NULL );
+        }
+        return next_task;
+    } 
+} // namespace internal
+//! @endcond
+
+//! Parallel prefix
+/**
+  * Type Body must have the following signatures: \n
+  *     void operator( const Range& r, pre_scan_tag ); \n
+  *     void operator( const Range& r, final_scan_tag ); \n
+  *     Body( const Body& b, split );  (be aware that b may have concurrent accesses) \n
+  *     void reverse_join( const Body& ); \n
+  *     void assign( const Body& ); \n
+  *     ~Body \n
+  * The partitioner p must define: \n
+  *     p.should_execute_range(r,t)   True if r should be executed to completion without further splits. \n
+  *     P p2(p,split())               Split the partitioner into p2 and p.      \n
+  * @ingroup algorithms
+  */
+template<typename Range, typename Body, typename Partitioner>
+void parallel_scan( const Range& range, Body& body, const Partitioner& partitioner ) {
+    if( !range.empty() ) {
+        typedef internal::start_scan<Range,Body,Partitioner> start_pass1_type;
+        internal::sum_node<Range,Body>* root = NULL;
+        typedef internal::final_sum<Range,Body> final_sum_type;
+        final_sum_type* temp_body = new(task::allocate_root()) final_sum_type( body );
+        start_pass1_type& pass1 = *new(task::allocate_root()) start_pass1_type(
+            /*return_slot=*/root,
+            range,
+            *temp_body,
+            partitioner,
+            /*sum=*/NULL,
+            /*is_final=*/true,
+            /*parent_sum=*/NULL);
+        task::spawn_root_and_wait( pass1 );
+        if( root ) {
+            root->body = temp_body;
+            root->incoming = NULL;
+            root->stuff_last = &body;
+            task::spawn_root_and_wait( *root );
+        } else {
+            body.assign(temp_body->body);
+            temp_body->finish_construction( range, NULL );
+            temp_body->destroy(*temp_body);
+        }
+    }
+}
+
+//! Parallel prefix with default partitioner
+/** 
+  * Type Body must have the following signatures: \n
+  *     void operator( const Range& r, pre_scan_tag ); \n
+  *     void operator( const Range& r, final_scan_tag ); \n
+  *     Body( const Body& b, split );  (be aware that b may have concurrent accesses) \n
+  *     void reverse_join( const Body& ); \n
+  *     void assign( const Body& ); \n
+  *     ~Body
+  * @ingroup algorithms
+  */
+template<typename Range, typename Body>
+inline void parallel_scan( const Range& range, Body& body ) {
+    parallel_scan( range, body, simple_partitioner() );
+}
+
+} // namespace tbb
+
+#endif /* __TBB_parallel_scan_H */
+
diff --git a/include/tbb/parallel_sort.h b/include/tbb/parallel_sort.h
new file mode 100644
index 0000000..bb3dfa7
--- /dev/null
+++ b/include/tbb/parallel_sort.h
@@ -0,0 +1,154 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_parallel_sort_H
+#define __TBB_parallel_sort_H
+
+#include "parallel_for.h"
+#include <algorithm>
+#include <iterator>
+#include <functional>
+
+namespace tbb {
+
+//! @cond INTERNAL
+namespace internal {
+
+//! Range used in quicksort to split elements into subranges based on a value.
+/** The split operation selects a splitter and places all elements less than or equal to the value in the first range and the remaining elements in the second range.
+    @ingroup algorithms */
+template<typename RandomAccessIterator, typename Compare>
+struct quick_sort_range {
+    static const size_t grainsize = 500;
+    const Compare ∁
+    RandomAccessIterator begin;
+    size_t size;
+
+    quick_sort_range( RandomAccessIterator begin_, size_t size_, const Compare &comp_ ) :
+        comp(comp_), begin(begin_), size(size_) {}
+
+    bool empty() const {return size==0;}
+    bool is_divisible() const {return size>=grainsize;}
+
+    quick_sort_range( quick_sort_range& range, split ) : comp(range.comp) {
+        RandomAccessIterator array = range.begin;
+        RandomAccessIterator key0 = range.begin; 
+        size_t m = range.size/2u;
+        std::swap ( array[0], array[m] );
+
+        size_t i=0;
+        size_t j=range.size;
+        // Partition interval [i+1,j-1] with key *key0.
+        for(;;) {
+            __TBB_ASSERT( i<j, NULL );
+            // Loop must terminate since array[l]==*key0.
+            do {
+                --j;
+                __TBB_ASSERT( i<=j, "bad ordering relation?" );
+            } while( comp( *key0, array[j] ));
+            do {
+                __TBB_ASSERT( i<=j, NULL );
+                if( i==j ) goto partition;
+                ++i;
+            } while( comp( array[i],*key0 ));
+            if( i==j ) goto partition;
+            std::swap( array[i], array[j] );
+        }
+partition:
+        // Put the partition key were it belongs
+        std::swap( array[j], *key0 );
+        // array[l..j) is less or equal to key.
+        // array(j..r) is greater or equal to key.
+        // array[j] is equal to key
+        i=j+1;
+        begin = array+i;
+        size = range.size-i;
+        range.size = j;
+    }
+};
+
+//! Body class used to sort elements in a range that is smaller than the grainsize.
+/** @ingroup algorithms */
+template<typename RandomAccessIterator, typename Compare>
+struct quick_sort_body {
+    void operator()( const quick_sort_range<RandomAccessIterator,Compare>& range ) const {
+        //SerialQuickSort( range.begin, range.size, range.comp );
+        std::sort( range.begin, range.begin + range.size, range.comp );
+    }
+};
+
+//! Wrapper method to initiate the sort by calling parallel_for.
+/** @ingroup algorithms */
+template<typename RandomAccessIterator, typename Compare>
+void parallel_quick_sort( RandomAccessIterator begin, RandomAccessIterator end, const Compare& comp ) {
+    parallel_for( quick_sort_range<RandomAccessIterator,Compare>(begin, end-begin, comp ), quick_sort_body<RandomAccessIterator,Compare>() );
+}
+
+} // namespace internal
+//! @endcond
+
+//! Sorts the data in [begin,end) using the given comparator 
+/*! The compare function object is used for all comparisons between elements during sorting.
+    The compare object must define a bool operator() function.
+    @ingroup algorithms
+*/
+template<typename RandomAccessIterator, typename Compare>
+void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end, const Compare& comp) { 
+    const int min_parallel_size = 500; 
+    if( end > begin ) {
+        if (end - begin < min_parallel_size) { 
+            std::sort(begin, end, comp);
+        } else {
+            internal::parallel_quick_sort(begin, end, comp);
+        }
+    }
+}
+
+//! Sorts the data in [begin,end) with a default comparator 
+/*! The std::less<RandomAccessIterator> class is used for all comparisons during sorting.
+    @ingroup algorithms
+*/
+template<typename RandomAccessIterator>
+inline void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end ) { 
+    parallel_sort( begin, end, std::less< typename std::iterator_traits<RandomAccessIterator>::value_type >() );
+}
+
+//! Sorts the data in [begin,end) with a default comparator 
+/*! The std::less<RandomAccessIterator> class is used for all comparisons during sorting.
+    @ingroup algorithms
+*/
+template<typename T>
+inline void parallel_sort( T * begin, T * end ) {
+    parallel_sort( begin, end, std::less< T >() );
+}   
+
+
+} // namespace tbb
+
+#endif
+
diff --git a/include/tbb/parallel_while.h b/include/tbb/parallel_while.h
new file mode 100644
index 0000000..879223e
--- /dev/null
+++ b/include/tbb/parallel_while.h
@@ -0,0 +1,197 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_parallel_while
+#define __TBB_parallel_while
+
+#include "task.h"
+#include <new>
+
+namespace tbb {
+
+template<typename Body>
+class parallel_while;
+
+//! @cond INTERNAL
+namespace internal {
+
+    template<typename Stream, typename Body> class while_task;
+
+    //! For internal use only.
+    /** Executes one iteration of a while.
+        @ingroup algorithms */
+    template<typename Body>
+    class while_iteration_task: public task {
+        const Body& my_body;
+        typename Body::argument_type my_value;
+        /*override*/ task* execute() {
+            my_body(my_value); 
+            return NULL;
+        }
+        while_iteration_task( const typename Body::argument_type& value, const Body& body ) : 
+            my_body(body), my_value(value)
+        {}
+        template<typename Body_> friend class while_group_task;
+        friend class tbb::parallel_while<Body>;
+    };
+
+    //! For internal use only
+    /** Unpacks a block of iterations.
+        @ingroup algorithms */
+    template<typename Body>
+    class while_group_task: public task {
+        static const size_t max_arg_size = 4;         
+        const Body& my_body;
+        size_t size;
+        typename Body::argument_type my_arg[max_arg_size];
+        while_group_task( const Body& body ) : my_body(body), size(0) {} 
+        /*override*/ task* execute() {
+            typedef while_iteration_task<Body> iteration_type;
+            __TBB_ASSERT( size>0, NULL );
+            task_list list;
+            task* t; 
+            size_t k=0; 
+            for(;;) {
+                t = new( allocate_child() ) iteration_type(my_arg[k],my_body); 
+                if( ++k==size ) break;
+                list.push_back(*t);
+            }
+            set_ref_count(int(k+1));
+            spawn(list);
+            spawn_and_wait_for_all(*t);
+            return NULL;
+        }
+        template<typename Stream, typename Body_> friend class while_task;
+    };
+    
+    //! For internal use only.
+    /** Gets block of iterations from a stream and packages them into a while_group_task.
+        @ingroup algorithms */
+    template<typename Stream, typename Body>
+    class while_task: public task {
+        Stream& my_stream;
+        const Body& my_body;
+        empty_task& my_barrier;
+        /*override*/ task* execute() {
+            typedef while_group_task<Body> block_type;
+            block_type& t = *new( allocate_additional_child_of(my_barrier) ) block_type(my_body);
+            size_t k=0; 
+            while( my_stream.pop_if_present(t.my_arg[k]) ) {
+                if( ++k==block_type::max_arg_size ) {
+                    // There might be more iterations.
+                    recycle_to_reexecute();
+                    break;
+                }
+            }
+            if( k==0 ) {
+                destroy(t);
+                return NULL;
+            } else {
+                t.size = k;
+                return &t;
+            }
+        }
+        while_task( Stream& stream, const Body& body, empty_task& barrier ) : 
+            my_stream(stream),
+            my_body(body),
+            my_barrier(barrier)
+        {} 
+        friend class tbb::parallel_while<Body>;
+    };
+
+} // namespace internal
+//! @endcond
+
+//! Parallel iteration over a stream, with optional addition of more work.
+/** The Body b has the requirement: \n
+        "b(v)"                      \n
+        "b.argument_type"           \n
+    where v is an argument_type
+    @ingroup algorithms */
+template<typename Body>
+class parallel_while: internal::no_copy {
+public:
+    //! Construct empty non-running parallel while.
+    parallel_while() : my_body(NULL), my_barrier(NULL) {}
+
+    //! Destructor cleans up data members before returning.
+    ~parallel_while() {
+        if( my_barrier ) {
+            my_barrier->destroy(*my_barrier);    
+            my_barrier = NULL;
+        }
+    }
+
+    //! Type of items
+    typedef typename Body::argument_type value_type;
+
+    //! Apply body.apply to each item in the stream.
+    /** A Stream s has the requirements \n
+         "S::value_type"                \n
+         "s.pop_if_present(value) is convertible to bool */
+    template<typename Stream>
+    void run( Stream& stream, const Body& body );
+
+
+    //! Add a work item while running.
+    /** Should be executed only by body.apply or a thread spawned therefrom. */
+    void add( const value_type& item );
+
+private:
+    const Body* my_body;
+    empty_task* my_barrier;
+};
+
+template<typename Body>
+template<typename Stream>
+void parallel_while<Body>::run( Stream& stream, const Body& body ) {
+    using namespace internal;
+    empty_task& barrier = *new( task::allocate_root() ) empty_task();
+    my_body = &body;
+    my_barrier = &barrier;
+    my_barrier->set_ref_count(2);
+
+    while_task<Stream,Body>& w = *new( my_barrier->allocate_child() ) while_task<Stream,Body>( stream, body, barrier );
+    my_barrier->spawn_and_wait_for_all(w);
+    my_barrier->destroy(*my_barrier);
+    my_barrier = NULL;
+    my_body = NULL;
+}
+
+ 
+template<typename Body>
+void parallel_while<Body>::add( const value_type& item ) {
+    __TBB_ASSERT(my_barrier,"attempt to add to parallel_while that is not running");
+    typedef internal::while_iteration_task<Body> iteration_type;
+    iteration_type& i = *new( task::self().allocate_additional_child_of(*my_barrier) ) iteration_type(item,*my_body);
+    task::self().spawn( i );
+}
+
+} // namespace 
+
+#endif /* __TBB_parallel_while */
diff --git a/include/tbb/partitioner.h b/include/tbb/partitioner.h
new file mode 100644
index 0000000..e79e1db
--- /dev/null
+++ b/include/tbb/partitioner.h
@@ -0,0 +1,80 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_partitioner_H
+#define __TBB_partitioner_H
+
+#include "task.h"
+
+namespace tbb {
+
+namespace internal {
+size_t get_initial_auto_partitioner_divisor();
+}
+
+//! A simple partitioner 
+/** Divides the range until the range is not divisible. 
+    @ingroup algorithms */
+class simple_partitioner {
+public:
+    simple_partitioner() {}
+    simple_partitioner(simple_partitioner &partitioner, split) {}
+
+    template <typename Range>
+    inline bool should_execute_range(const Range &r, const task &t) {
+        return !r.is_divisible();
+    }
+};
+
+//! An auto partitioner 
+/** The range is initial divided into several large chunks.
+    Chunks are further subdivided into VICTIM_CHUNKS pieces if they are stolen and divisible.
+    @ingroup algorithms */
+class auto_partitioner {
+    size_t num_chunks;
+    static const size_t VICTIM_CHUNKS = 4;
+
+public:
+    auto_partitioner() : num_chunks(internal::get_initial_auto_partitioner_divisor())  {
+    }
+
+    auto_partitioner(auto_partitioner &partitioner, split) : num_chunks(partitioner.num_chunks/2) {
+        partitioner.num_chunks /= 2;
+    }
+
+    template <typename Range>
+    inline bool should_execute_range(const Range &r, const task &t) {
+        if (t.is_stolen_task() && num_chunks < VICTIM_CHUNKS)
+            num_chunks = VICTIM_CHUNKS;
+        return !r.is_divisible() || num_chunks == 1;
+    }
+};
+
+}
+
+#endif
diff --git a/include/tbb/pipeline.h b/include/tbb/pipeline.h
new file mode 100644
index 0000000..fdff3aa
--- /dev/null
+++ b/include/tbb/pipeline.h
@@ -0,0 +1,136 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_pipeline_H 
+#define __TBB_pipeline_H 
+
+#include "task.h"
+#include "spin_mutex.h"
+#include <cstddef>
+
+namespace tbb {
+
+class pipeline;
+class filter;
+
+//! @cond INTERNAL
+namespace internal {
+
+typedef unsigned long Token;
+class stage_task;
+class ordered_buffer;
+
+} // namespace internal
+//! @endcond
+
+//! A stage in a pipeline.
+/** @ingroup algorithms */
+class filter {
+private:
+    //! Value used to mark "not in pipeline"
+    static filter* not_in_pipeline() {return reinterpret_cast<filter*>(internal::intptr(-1));}
+protected:
+    filter( bool is_serial_ ) : 
+        next_filter_in_pipeline(not_in_pipeline()),
+        input_buffer(NULL),
+        my_is_serial(is_serial_)
+    {}
+public:
+    //! True if filter must receive stream in order.
+    bool is_serial() const {return my_is_serial;}
+
+    //! Operate on an item from the input stream, and return item for output stream.
+    /** Returns NULL if filter is a sink. */
+    virtual void* operator()( void* item ) = 0;
+
+    //! Destroy filter.  
+    /** If the filter was added to a pipeline, the pipeline must be destroyed first. */
+    virtual ~filter();
+
+private:
+    //! Pointer to next filter in the pipeline.
+    filter* next_filter_in_pipeline;
+
+    //! Input buffer for filter that requires serial input; NULL otherwise. */
+    internal::ordered_buffer* input_buffer;
+
+    friend class internal::stage_task;
+    friend class pipeline;
+
+    //! Internal storage for is_serial()
+    bool my_is_serial;
+};
+
+//! A processing pipeling that applies filters to items.
+/** @ingroup algorithms */
+class pipeline {
+public:
+    //! Construct empty pipeline.
+    pipeline();
+
+    //! Destroy pipeline.
+    virtual ~pipeline();
+
+    //! Add filter to end of pipeline.
+    void add_filter( filter& filter );
+
+    //! Run the pipeline to completion.
+    void run( size_t max_number_of_live_tokens );
+
+    //! Remove all filters from the pipeline
+    void clear();
+
+private:
+    friend class internal::stage_task;
+
+    //! Pointer to first filter in the pipeline.
+    filter* filter_list;
+
+    //! Pointer to location where address of next filter to be added should be stored.
+    filter** filter_end;
+
+    //! task who's reference count is used to determine when all stages are done.
+    empty_task* end_counter;
+
+    //! Mutex protecting token_counter and end_of_input.
+    spin_mutex input_mutex;
+
+    //! Number of tokens created so far.
+    internal::Token token_counter;
+
+    //! False until fetch_input returns NULL.
+    bool end_of_input;
+    
+    //! Attempt to fetch a new input item and put it in the pipeline.
+    /** "self" is used only for sake of providing the contextual "this" for task::allocate_child_of. */
+    void inject_token( task& self );
+};
+
+} // tbb
+
+#endif /* __TBB_pipeline_H */
diff --git a/include/tbb/queuing_mutex.h b/include/tbb/queuing_mutex.h
new file mode 100644
index 0000000..41c013a
--- /dev/null
+++ b/include/tbb/queuing_mutex.h
@@ -0,0 +1,106 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_queuing_mutex_H
+#define __TBB_queuing_mutex_H
+
+#include <cstring>
+#include "atomic.h"
+
+namespace tbb {
+
+//! Queuing lock with local-only spinning.
+/** @ingroup synchronization */
+class queuing_mutex {
+public:
+    //! Construct unacquired mutex.
+    queuing_mutex() {
+        q_tail = NULL;
+    };
+
+    //! The scoped locking pattern
+    /** It helps to avoid the common problem of forgetting to release lock.
+        It also nicely provides the "node" for queuing locks. */
+    class scoped_lock : private internal:: no_copy {
+        //! Initialize fields to mean "no lock held".
+        void initialize() {
+            mutex = NULL;
+#if TBB_DO_ASSERT
+            internal::poison_pointer(next);
+#endif /* TBB_DO_ASSERT */
+        }
+    public:
+        //! Construct lock that has not acquired a mutex.
+        /** Equivalent to zero-initialization of *this. */
+        scoped_lock() {initialize();}
+
+        //! Acquire lock on given mutex.
+        /** Upon entry, *this should not be in the "have acquired a mutex" state. */
+        scoped_lock( queuing_mutex& m ) {
+            initialize();
+            acquire(m);
+        }
+
+        //! Release lock (if lock is held).
+        ~scoped_lock() {
+            if( mutex ) release();
+        }
+
+        //! Acquire lock on given mutex.
+        void acquire( queuing_mutex& m );
+
+        //! Acquire lock on given mutex if free (i.e. non-blocking)
+        bool try_acquire( queuing_mutex& m );
+
+        //! Release lock.
+        void release();
+
+    private:
+        //! The pointer to the mutex owned, or NULL if not holding a mutex.
+        queuing_mutex* mutex;
+
+        //! The pointer to the next competitor for a mutex
+        scoped_lock *next;
+
+        //! The local spin-wait variable
+        /** Inverted (0 - blocked, 1 - acquired the mutex) for the sake of 
+            zero-initialization.  Defining it as an entire word instead of
+            a byte seems to help performance slightly. */
+        internal::uintptr going;
+    };
+
+    friend class scoped_lock;
+private:
+    //! The last competitor requesting the lock
+    atomic<scoped_lock*> q_tail;
+
+};
+
+} // namespace tbb
+
+#endif /* __TBB_queuing_mutex_H */
diff --git a/include/tbb/queuing_rw_mutex.h b/include/tbb/queuing_rw_mutex.h
new file mode 100644
index 0000000..0410aa8
--- /dev/null
+++ b/include/tbb/queuing_rw_mutex.h
@@ -0,0 +1,164 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_queuing_rw_mutex_H
+#define __TBB_queuing_rw_mutex_H
+
+#include <cstring>
+#include "atomic.h"
+
+namespace tbb {
+
+//! Reader-writer lock with local-only spinning.
+/** Adapted from Krieger, Stumm, et al. pseudocode at
+    http://www.eecg.toronto.edu/parallel/pubs_abs.html#Krieger_etal_ICPP93
+    @ingroup synchronization */
+class queuing_rw_mutex {
+public:
+    //! Construct unacquired mutex.
+    queuing_rw_mutex() {
+        q_tail = NULL;
+    };
+
+    //! Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL
+    ~queuing_rw_mutex() {
+#if TBB_DO_ASSERT
+        __TBB_ASSERT( !q_tail, "destruction of an acquired mutex");
+#endif
+    };
+
+    class scoped_lock;
+    friend class scoped_lock;
+
+    //! The scoped locking pattern
+    /** It helps to avoid the common problem of forgetting to release lock.
+        It also nicely provides the "node" for queuing locks. */
+    class scoped_lock : private internal::no_copy {
+        /** Request type constants for scoped_lock::state */
+        enum state_t {
+            STATE_NONE = 0,
+            STATE_WRITER = 1,
+            STATE_READER = 1<<1,
+            STATE_READER_UNBLOCKNEXT = 1<<2,
+            STATE_COMBINED_WAITINGREADER = STATE_READER | STATE_READER_UNBLOCKNEXT,
+            STATE_ACTIVEREADER = 1<<3,
+            STATE_COMBINED_READER = STATE_COMBINED_WAITINGREADER | STATE_ACTIVEREADER,
+            STATE_UPGRADE_REQUESTED = 1<<4,
+            STATE_UPGRADE_WAITING = 1<<5,
+            STATE_UPGRADE_LOSER = 1<<6,
+            STATE_COMBINED_UPGRADING = STATE_UPGRADE_WAITING | STATE_UPGRADE_LOSER
+#if TBB_DO_ASSERT
+           ,STATE_INVALID
+#endif /* TBB_DO_ASSERT */
+        };
+
+        //! Initialize fields
+        void initialize() {
+            mutex = NULL;
+#if TBB_DO_ASSERT
+            state = STATE_INVALID;
+            internal::poison_pointer(next);
+            internal::poison_pointer(prev);
+#endif /* TBB_DO_ASSERT */
+        }
+    public:
+        //! Construct lock that has not acquired a mutex.
+        /** Equivalent to zero-initialization of *this. */
+        scoped_lock() {initialize();}
+
+        //! Acquire lock on given mutex.
+        /** Upon entry, *this should not be in the "have acquired a mutex" state. */
+        scoped_lock( queuing_rw_mutex& m, bool write=true ) {
+            initialize();
+            acquire(m,write);
+        }
+
+        //! Release lock (if lock is held).
+        ~scoped_lock() {
+            if( mutex ) release();
+        }
+
+        //! Acquire lock on given mutex.
+        void acquire( queuing_rw_mutex& m, bool write=true );
+
+        //! Try acquire lock on given mutex.
+        bool try_acquire( queuing_rw_mutex& m, bool write=true );
+
+        //! Release lock.
+        void release();
+
+        //! Upgrade reader to become a writer.
+        /** Returns true if the upgrade happened without re-acquiring the lock and false if opposite */
+        bool upgrade_to_writer();
+
+        //! Downgrade writer to become a reader.
+        bool downgrade_to_reader();
+
+    private:
+        //! The pointer to the current mutex to work
+        queuing_rw_mutex* mutex;
+
+        //! The pointer to the previous and next competitors for a mutex
+        scoped_lock * prev, * next;
+
+        //! State of the request: reader, writer, active reader, other service states
+        atomic<unsigned char> state;
+
+        //! The local spin-wait variable
+        /** Corresponds to "spin" in the pseudocode but inverted for the sake of zero-initialization */
+        unsigned char going;
+
+        //! A tiny internal lock
+        unsigned char internal_lock;
+
+        //! Acquire the internal lock
+        void acquire_internal_lock();
+
+        //! Try to acquire the internal lock
+        /** Returns true if lock was successfully acquired. */
+        bool try_acquire_internal_lock();
+
+        //! Release the internal lock
+        void release_internal_lock();
+
+        //! Wait for internal lock to be released
+        void wait_for_release_of_internal_lock();
+
+        //! A helper function
+        void unblock_or_wait_on_internal_lock( uintptr_t );
+    };
+
+private:
+    //! The last competitor requesting the lock
+    atomic<scoped_lock*> q_tail;
+
+};
+
+} // namespace tbb
+
+#endif /* __TBB_queuing_rw_mutex_H */
diff --git a/include/tbb/scalable_allocator.h b/include/tbb/scalable_allocator.h
new file mode 100644
index 0000000..e022924
--- /dev/null
+++ b/include/tbb/scalable_allocator.h
@@ -0,0 +1,140 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_scalable_allocator_H
+#define __TBB_scalable_allocator_H
+
+#include <stddef.h> // Need ptrdiff_t and size_t from here.
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+//! The "malloc" analogue to allocate block of memory of size bytes.
+/** @ingroup memory_allocation */
+void * scalable_malloc (size_t size);
+
+//! The "free" analogue to discard a previously allocated piece of memory
+/** @ingroup memory_allocation */
+void   scalable_free (void* ptr);
+
+//! The "realloc" analogue complementing scalable_malloc
+/** @ingroup memory_allocation */
+void * scalable_realloc (void* ptr, size_t size);
+
+//! The "calloc" analogue complementing scalable_malloc
+/** @ingroup memory_allocation */
+void * scalable_calloc (size_t nobj, size_t size);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif /* __cplusplus */
+
+#ifdef __cplusplus
+
+#include <new>      // To use new with the placement argument
+
+namespace tbb {
+
+//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
+/** The members are ordered the same way they are in section 20.4.1
+    of the ISO C++ standard.
+    @ingroup memory_allocation */
+template<typename T>
+class scalable_allocator {
+public:
+    typedef T* pointer;
+    typedef const T* const_pointer;
+    typedef T& reference;
+    typedef const T& const_reference;
+    typedef T value_type;
+    typedef size_t size_type;
+    typedef ptrdiff_t difference_type;
+    template<class U> struct rebind {
+        typedef scalable_allocator<U> other;
+    };
+
+#if _WIN64
+    //! Non-ISO method required by Microsoft's STL containers
+    /** Microsoft's container classes coming with Platform SDK
+        seem to require that allocators supply this method. */
+    void* _Charalloc( size_type size ) {
+        return scalable_malloc( size );
+    }
+#endif /* _WIN64 */
+
+    scalable_allocator() throw() {}
+    scalable_allocator( const scalable_allocator& ) throw() {}
+    template<typename U> scalable_allocator(const scalable_allocator<U>&) throw() {}
+
+    pointer address(reference x) const {return &x;}
+    const_pointer address(const_reference x) const {return &x;}
+
+    //! Allocate space for n objects, starting on a cache/sector line.
+    pointer allocate( size_type n, void* hint=0 ) {
+        return static_cast<pointer>( scalable_malloc( n * sizeof(value_type) ) );
+    }
+
+    //! Free block of memory that starts on a cache line
+    void deallocate( pointer p, size_type ) {
+        scalable_free( p );
+    }
+
+    //! Largest value for which method allocate might succeed.
+    size_type max_size() const throw() {
+        size_type absolutemax = static_cast<size_type>(-1) / sizeof (T);
+        return (absolutemax > 0 ? absolutemax : 1);
+    }
+    void construct( pointer p, const T& val ) { new(static_cast<void*>(p)) T(val); }
+    void destroy( pointer p ) {(static_cast<T*>(p))->~T();}
+};
+
+//! Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
+/** @ingroup memory_allocation */
+template<>
+class scalable_allocator<void> {
+public:
+    typedef void* pointer;
+    typedef const void* const_pointer;
+    typedef void value_type;
+    template<class U> struct rebind {
+        typedef scalable_allocator<U> other;
+    };
+};
+
+template<typename T, typename U>
+inline bool operator==( const scalable_allocator<T>&, const scalable_allocator<U>& ) {return true;}
+
+template<typename T, typename U>
+inline bool operator!=( const scalable_allocator<T>&, const scalable_allocator<U>& ) {return false;}
+
+} // namespace tbb
+
+#endif /* __cplusplus */
+
+#endif /* __TBB_scalable_allocator_H */
diff --git a/include/tbb/spin_mutex.h b/include/tbb/spin_mutex.h
new file mode 100644
index 0000000..e5208bb
--- /dev/null
+++ b/include/tbb/spin_mutex.h
@@ -0,0 +1,137 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_spin_mutex_H
+#define __TBB_spin_mutex_H
+
+#include <cstddef>
+#include "tbb_stddef.h"
+#include "tbb/tbb_machine.h"
+
+namespace tbb {
+
+//! A lock that occupies a single byte.
+/** A spin_mutex is a spin mutex that fits in a single byte.  
+    It should be used only for locking short critical sections 
+    (typically <20 instructions) when fairness is not an issue.  
+    If zero-initialized, the mutex is considered unheld.
+    @ingroup synchronization */
+class spin_mutex {
+    //! 0 if lock is released, 1 if lock is acquired.
+    volatile unsigned char flag;
+
+public:
+    //! Construct unacquired lock.
+    /** Equivalent to zero-initialization of *this. */
+    spin_mutex() : flag(0) {}
+
+    //! Represents acquisition of a mutex.
+    class scoped_lock : private internal::no_copy {
+    private:
+        //! Points to currently held mutex, or NULL if no lock is held.
+        spin_mutex* my_mutex; 
+
+        //! Value to store into spin_mutex::flag to unlock the mutex.
+        internal::uintptr my_unlock_value;
+
+        //! Like acquire, but with ITT instrumentation.
+        void internal_acquire( spin_mutex& m );
+
+        //! Like try_acquire, but with ITT instrumentation.
+        bool internal_try_acquire( spin_mutex& m );
+
+        //! Like release, but with ITT instrumentation.
+        void internal_release();
+
+    public:
+        //! Construct without without acquiring a mutex.
+        scoped_lock() : my_mutex(NULL), my_unlock_value(0) {}
+
+        //! Construct and acquire lock on a mutex.
+        scoped_lock( spin_mutex& m ) { 
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+            my_mutex=NULL;
+            internal_acquire(m);
+#else
+            my_unlock_value = __TBB_LockByte(m.flag);
+            my_mutex=&m;
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT*/
+        }
+
+        //! Acquire lock.
+        void acquire( spin_mutex& m ) {
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+            internal_acquire(m);
+#else
+            my_unlock_value = __TBB_LockByte(m.flag);
+            my_mutex = &m;
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT*/
+        }
+
+        //! Try acquiring lock (non-blocking)
+        bool try_acquire( spin_mutex& m ) {
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+            return internal_try_acquire(m);
+#else
+            bool result = __TBB_TryLockByte(m.flag);
+            if( result ) {
+                my_unlock_value = 0;
+                my_mutex = &m;
+            }
+            return result;
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT*/
+        }
+
+        //! Release lock
+        void release() {
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+            internal_release();
+#else
+            my_mutex->flag = static_cast<unsigned char>(my_unlock_value);
+            my_mutex = NULL;
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT */
+        }
+
+        //! Destroy lock.  If holding a lock, releases the lock first.
+        ~scoped_lock() {
+            if( my_mutex ) {
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+                internal_release();
+#else
+                my_mutex->flag = static_cast<unsigned char>(my_unlock_value);
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT */
+            }
+        }
+    };
+
+    friend class scoped_lock;
+};
+
+} // namespace tbb
+
+#endif /* __TBB_spin_mutex_H */
diff --git a/include/tbb/spin_rw_mutex.h b/include/tbb/spin_rw_mutex.h
new file mode 100644
index 0000000..1af9312
--- /dev/null
+++ b/include/tbb/spin_rw_mutex.h
@@ -0,0 +1,185 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_spin_rw_mutex_H
+#define __TBB_spin_rw_mutex_H
+
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+//! Fast, unfair, spinning reader-writer lock with backoff and writer-preference
+/** @ingroup synchronization */
+class spin_rw_mutex {
+    //! @cond INTERNAL
+
+    //! Present so that 1.0 headers work with 1.1 dynamic library.
+    static void internal_itt_releasing(spin_rw_mutex *);
+
+    //! Internal acquire write lock.
+    static bool internal_acquire_writer(spin_rw_mutex *);
+
+    //! Out of line code for releasing a write lock.  
+    /** This code is has debug checking and instrumentation for Intel(R) Thread Checker and Intel(R) Thread Profiler. */
+    static void internal_release_writer(spin_rw_mutex *);
+
+    //! Internal acquire read lock.
+    static void internal_acquire_reader(spin_rw_mutex *);
+
+    //! Internal upgrade reader to become a writer.
+    static bool internal_upgrade(spin_rw_mutex *);
+
+    //! Out of line code for downgrading a writer to a reader.   
+    /** This code is has debug checking and instrumentation for Intel(R) Thread Checker and Intel(R) Thread Profiler. */
+    static void internal_downgrade(spin_rw_mutex *);
+
+    //! Internal release read lock.
+    static void internal_release_reader(spin_rw_mutex *);
+
+    //! Internal try_acquire write lock.
+    static bool internal_try_acquire_writer(spin_rw_mutex *);
+
+    //! Internal try_acquire read lock.
+    static bool internal_try_acquire_reader(spin_rw_mutex *);
+
+    //! @endcond
+public:
+    //! Construct unacquired mutex.
+    spin_rw_mutex() : state(0) {}
+
+#if TBB_DO_ASSERT
+    //! Destructor asserts if the mutex is acquired, i.e. state is zero.
+    ~spin_rw_mutex() {
+        __TBB_ASSERT( !state, "destruction of an acquired mutex");
+    };
+#endif /* TBB_DO_ASSERT */
+
+    //! The scoped locking pattern
+    /** It helps to avoid the common problem of forgetting to release lock.
+        It also nicely provides the "node" for queuing locks. */
+    class scoped_lock : private internal::no_copy {
+    public:
+        //! Construct lock that has not acquired a mutex.
+        /** Equivalent to zero-initialization of *this. */
+        scoped_lock() : mutex(NULL) {}
+
+        //! Acquire lock on given mutex.
+        /** Upon entry, *this should not be in the "have acquired a mutex" state. */
+        scoped_lock( spin_rw_mutex& m, bool write = true ) : mutex(NULL) {
+            acquire(m, write);
+        }
+
+        //! Release lock (if lock is held).
+        ~scoped_lock() {
+            if( mutex ) release();
+        }
+
+        //! Acquire lock on given mutex.
+        void acquire( spin_rw_mutex& m, bool write = true ) {
+            __TBB_ASSERT( !mutex, "holding mutex already" );
+            is_writer = write; 
+            mutex = &m;
+            if( write ) internal_acquire_writer(mutex);
+            else        internal_acquire_reader(mutex);
+        }
+
+        //! Upgrade reader to become a writer.
+        /** Returns true if the upgrade happened without re-acquiring the lock and false if opposite */
+        bool upgrade_to_writer() {
+            __TBB_ASSERT( mutex, "lock is not acquired" );
+            __TBB_ASSERT( !is_writer, "not a reader" );
+            is_writer = true; 
+            return internal_upgrade(mutex);
+        }
+
+        //! Release lock.
+        void release() {
+            __TBB_ASSERT( mutex, "lock is not acquired" );
+            spin_rw_mutex *m = mutex; 
+            mutex = NULL;
+            if( is_writer ) {
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+                internal_release_writer(m);
+#else
+                m->state = 0; 
+#endif /* TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT */
+            } else {
+                internal_release_reader(m);
+            }
+        };
+
+        //! Downgrade writer to become a reader.
+        bool downgrade_to_reader() {
+#if TBB_DO_THREADING_TOOLS||TBB_DO_ASSERT
+            __TBB_ASSERT( mutex, "lock is not acquired" );
+            __TBB_ASSERT( is_writer, "not a writer" );
+            internal_downgrade(mutex);
+#else
+            mutex->state = 4; // Bit 2 - reader, 00..00100
+#endif
+            is_writer = false;
+
+            return true;
+        }
+
+        //! Try acquire lock on given mutex.
+        bool try_acquire( spin_rw_mutex& m, bool write = true ) {
+            __TBB_ASSERT( !mutex, "holding mutex already" );
+            bool result;
+            is_writer = write; 
+            result = write? internal_try_acquire_writer(&m)
+                          : internal_try_acquire_reader(&m);
+            if( result ) mutex = &m;
+            return result;
+        }
+
+    private:
+        //! The pointer to the current mutex that is held, or NULL if no mutex is held.
+        spin_rw_mutex* mutex;
+
+        //! True if holding a writer lock, false if holding a reader lock.
+        /** Not defined if not holding a lock. */
+        bool is_writer;
+    };
+
+private:
+    typedef internal::uintptr state_t;
+    static const state_t WRITER = 1;
+    static const state_t WRITER_PENDING = 2;
+    static const state_t READERS = ~(WRITER | WRITER_PENDING);
+    static const state_t ONE_READER = 4;
+    static const state_t BUSY = WRITER | READERS;
+    /** Bit 0 = writer is holding lock
+        Bit 1 = request by a writer to acquire lock (hint to readers to wait)
+        Bit 2..N = number of readers holding lock */
+    volatile state_t state;
+};
+
+} // namespace ThreadingBuildingBlocks
+
+#endif /* __TBB_spin_rw_mutex_H */
diff --git a/include/tbb/task.h b/include/tbb/task.h
new file mode 100644
index 0000000..42c131c
--- /dev/null
+++ b/include/tbb/task.h
@@ -0,0 +1,492 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_task_H
+#define __TBB_task_H
+
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+class task;
+class task_list;
+
+//! @cond INTERNAL
+namespace internal {
+
+    class scheduler {
+    public:
+        //! For internal use only
+        virtual void spawn( task& first, task*& next ) = 0;
+
+        //! For internal use only
+        virtual void wait_for_all( task& parent, task* child ) = 0;
+
+        //! For internal use only
+        virtual void spawn_root_and_wait( task& first, task*& next ) = 0;
+
+        //! Pure virtual destructor;
+        //  Have to have it just to shut up overzealous compilation warnings
+        virtual ~scheduler() = 0;
+    };
+
+    typedef intptr reference_count;
+
+    class allocate_root_proxy {
+    public:
+        static task& allocate( size_t size );
+        static void free( task& );
+    };
+
+    class allocate_continuation_proxy {
+    public:
+        task& allocate( size_t size ) const;
+        void free( task& ) const;
+    };
+
+    class allocate_child_proxy {
+    public:
+        task& allocate( size_t size ) const;
+        void free( task& ) const;
+    };
+
+    class allocate_additional_child_of_proxy {
+        task& self;
+        task& parent;
+    public:
+        allocate_additional_child_of_proxy( task& self_, task& parent_ ) : self(self_), parent(parent_) {}
+        task& allocate( size_t size ) const;
+        void free( task& ) const;
+    };
+
+
+    //! Memory prefix to a task object.
+    /** This class is internal to the library.
+        Do not reference it directly, except within the library itself.
+        @ingroup task_scheduling */
+    class task_prefix {
+    private:
+        friend class tbb::task;
+        friend class tbb::task_list;
+        friend class internal::scheduler;
+        friend class internal::allocate_root_proxy;
+        friend class internal::allocate_child_proxy;
+        friend class internal::allocate_continuation_proxy;
+        friend class internal::allocate_additional_child_of_proxy;
+
+        //! The scheduler that allocated the task, or NULL if task is big.
+        /** Small tasks are pooled by the scheduler that allocated the task.
+            If a scheduler needs to free a small task allocated by another scheduler,
+            it returns the task to that other scheduler.  This policy avoids
+            memory space blowup issues for memory allocators that allocate from 
+            thread-specific pools. */
+        scheduler* origin;
+
+        //! scheduler that owns the task.
+        scheduler* owner;
+
+        //! task whose reference count includes me.
+        /** In the "blocking style" of programming, this field points to the parent task.
+            In the "continuation-passing style" of programming, this field points to the
+            continuation of the parent. */
+        tbb::task* parent;
+
+        //! Reference count used for synchronization.
+        /** In the "continuation-passing style" of programming, this field is
+            the difference of the number of allocated children minus the
+            number of children that have completed.
+            In the "blocking style" of programming, this field is one more than the difference. */
+        reference_count ref_count;
+
+        //! Scheduling depth
+        int depth;
+
+        //! A task::state_type, stored as a byte for compactness.
+        unsigned char state;
+
+        //! If non-zero, this task is a "big" task.
+        unsigned char is_big;
+
+#if TBB_DO_ASSERT
+        //! Used for internal debugging.
+        /** Zero if production version of library is linked. */
+        unsigned char debug_state;
+#else
+        //! Reserved for internal use
+        unsigned char reserved0;
+#endif /* TBB_DO_ASSERT */
+
+        //! Reserved for future use
+        unsigned char reserved1;
+
+        //! "next" field for list of task
+        /** Assembly coded routine Gettask presumes this field is the last field
+            in the prefix. */
+        tbb::task* next;
+
+        //! task corresponding to this task_prefix.
+        tbb::task& task() {return *reinterpret_cast<tbb::task*>(this+1);}
+    };
+
+} // namespace internal
+//! @endcond
+
+
+//! Base class for user-defined tasks.
+/** @ingroup task_scheduling */
+class task: internal::no_copy {
+    //! Set reference count
+    void internal_set_ref_count( int count );
+
+protected:
+    //! Default constructor.
+    task() {}
+
+public:
+    //! Destructor.
+    virtual ~task() {}
+
+    //! Should be overriden by derived classes.
+    virtual task* execute() = 0;
+
+    //! Enumeration of task states that the scheduler considers.
+    enum state_type {
+        //! task is running, and will be destroyed after method execute() completes.
+        executing,
+        //! task to be rescheduled.
+        reexecute,
+        //! task is in ready pool, or is going to be put there, or was just taken off.
+        ready,
+        //! task object is freshly allocated or recycled.
+        allocated,
+        //! task object is on free list, or is going to be put there, or was just taken off.
+        freed,
+        //! task to be recycled as continuation
+        recycle
+    };
+
+    //------------------------------------------------------------------------
+    // Allocating tasks
+    //------------------------------------------------------------------------
+
+    //! Returns proxy for overloaded new that allocates a root task.
+    static internal::allocate_root_proxy allocate_root() {
+        return internal::allocate_root_proxy();
+    }
+
+    //! Returns proxy for overloaded new that allocates a continuation task of *this.
+    /** The continuation's parent becomes the parent of *this. */
+    internal::allocate_continuation_proxy& allocate_continuation() {
+        return *reinterpret_cast<internal::allocate_continuation_proxy*>(this);
+    }
+
+    //! Returns proxy for overloaded new that allocates a child task of *this.
+    internal::allocate_child_proxy& allocate_child() {
+        return *reinterpret_cast<internal::allocate_child_proxy*>(this);
+    }
+
+    //! Like allocate_child, except that task's parent becomes "t", not this.
+    /** Typically used in conjunction with schedule_to_reexecute to implement while loops.
+        Atomically increments the reference count of t.parent() */
+    internal::allocate_additional_child_of_proxy allocate_additional_child_of( task& t ) {
+        return internal::allocate_additional_child_of_proxy(*this,t);
+    }
+
+    //! Destroy a task.
+    /** Usually, calling this method is unnecessary, because a task is
+        implicitly deleted after its execute() method runs.  However,
+        sometimes a task needs to be explicitly deallocated, such as
+        when a root task is used as the parent in spawn_and_wait_for_all. */
+    void destroy( task& victim );
+
+    //------------------------------------------------------------------------
+    // Recycling of tasks
+    //------------------------------------------------------------------------
+
+    //! Change this to be a continuation of its former self.
+    /** Not recommended to use due to possibility to cause a crash in some scenario.
+        Can be deprecated later */
+    void recycle_as_continuation() {
+        __TBB_ASSERT( prefix().state==executing, "execute not running?" );
+        prefix().state = allocated;
+    }
+
+    //! Recommended to use, safe variant of recycle_as_continuation
+    /** For safety, it requires additional increment of ref_count. */
+    void recycle_as_safe_continuation() {
+        __TBB_ASSERT( prefix().state==executing, "execute not running?" );
+        prefix().state = recycle;
+    }
+
+    //! Change this to be a child of new_parent.
+    void recycle_as_child_of( task& new_parent ) {
+        internal::task_prefix& p = prefix();
+        __TBB_ASSERT( prefix().state==executing||prefix().state==allocated, "execute not running, or already recycled" );
+        __TBB_ASSERT( prefix().ref_count==0, "no child tasks allowed when recycled as a child" );
+        __TBB_ASSERT( p.parent==NULL, "parent must be null" );
+        __TBB_ASSERT( new_parent.prefix().state<=recycle, "corrupt parent's state" );
+        __TBB_ASSERT( new_parent.prefix().state!=freed, "parent already freed" );
+        p.state = allocated;
+        p.parent = &new_parent;
+        p.depth = new_parent.prefix().depth+1;
+    }
+
+    //! Schedule this for reexecution after current execute() returns.
+    /** Requires that this.execute() be running. */
+    void recycle_to_reexecute() {
+        __TBB_ASSERT( prefix().state==executing, "execute not running, or already recycled" );
+        __TBB_ASSERT( prefix().ref_count==0, "no child tasks allowed when recycled for reexecution" );
+        prefix().state = reexecute;
+    }
+
+    //! A scheduling depth.
+    /** Guaranteed to be a signed integral type. */
+    typedef internal::intptr depth_type;
+
+    //! Scheduling depth
+    depth_type depth() const {return prefix().depth;}
+
+    //! Set scheduling depth to given value.
+    /** The depth must be non-negative */
+    void set_depth( depth_type new_depth ) {
+        __TBB_ASSERT( state()!=ready, "cannot change depth of ready task" );
+        __TBB_ASSERT( new_depth>=0, "depth cannot be negative" );
+        __TBB_ASSERT( new_depth==int(new_depth), "integer overflow error");
+        prefix().depth = int(new_depth);
+    }
+
+    //! Change scheduling depth by given amount.
+    /** The resulting depth must be non-negative. */
+    void add_to_depth( int delta ) {
+        __TBB_ASSERT( state()!=ready, "cannot change depth of ready task" );
+        __TBB_ASSERT( prefix().depth>=-delta, "depth cannot be negative" );
+        prefix().depth+=delta;
+    }
+
+    //------------------------------------------------------------------------
+    // Spawning and blocking
+    //------------------------------------------------------------------------
+
+    //! Set reference count
+    void set_ref_count( int count ) {
+#if TBB_DO_ASSERT
+        internal_set_ref_count(count);
+#else
+        prefix().ref_count = count;
+#endif /* TBB_DO_ASSERT */
+    }
+
+    //! Schedule task for execution when a worker becomes available.
+    /** After all children spawned so far finish their method task::execute,
+        their parent's method task::execute may start running.  Therefore, it
+        is important to ensure that at least one child has not completed until
+        the parent is ready to run. */
+    void spawn( task& child ) {
+        __TBB_ASSERT( is_owned_by_current_thread(), "'this' not owned by current thread" );
+        prefix().owner->spawn( child, child.prefix().next );
+    }
+
+    //! Spawn multiple tasks and clear list.
+    /** All of the tasks must be at the same depth. */
+    void spawn( task_list& list );
+
+    //! Similar to spawn followed by wait_for_all, but more efficient.
+    void spawn_and_wait_for_all( task& child ) {
+        __TBB_ASSERT( is_owned_by_current_thread(), "'this' not owned by current thread" );
+        prefix().owner->wait_for_all( *this, &child );
+    }
+
+    //! Similar to spawn followed by wait_for_all, but more efficient.
+    void spawn_and_wait_for_all( task_list& list );
+
+    //! Spawn task allocated by allocate_root, wait for it to complete, and deallocate it.
+    /** The thread that calls spawn_root_and_wait must be the same thread
+        that allocated the task. */
+    static void spawn_root_and_wait( task& root ) {
+        __TBB_ASSERT( root.is_owned_by_current_thread(), "root not owned by current thread" );
+        root.prefix().owner->spawn_root_and_wait( root, root.prefix().next );
+    }
+
+    //! Spawn root tasks on list and wait for all of them to finish.
+    /** If there are more tasks than worker threads, the tasks are spawned in
+        order of front to back. */
+    static void spawn_root_and_wait( task_list& root_list );
+
+    //! Wait for reference count to become one, and set reference count to zero.
+    /** Works on tasks while waiting. */
+    void wait_for_all() {
+        __TBB_ASSERT( is_owned_by_current_thread(), "'this' not owned by current thread" );
+        prefix().owner->wait_for_all( *this, NULL );
+    }
+
+    //! The task() current being run by this thread.
+    static task& self();
+
+    //! task on whose behalf this task is working, or NULL if this is a root.
+    task* parent() const {return prefix().parent;}
+
+    //! True if task is owned by different thread than thread that owns its parent.
+    bool is_stolen_task() const {
+        internal::task_prefix& p = prefix();
+        internal::task_prefix& q = parent()->prefix();
+        return p.owner!=q.owner;
+    }
+
+
+    //------------------------------------------------------------------------
+    // Debugging
+    //------------------------------------------------------------------------
+
+    //! Current execution state
+    state_type state() const {return state_type(prefix().state);}
+
+    //! The internal reference count.
+    int ref_count() const {
+#if TBB_DO_ASSERT
+        internal::reference_count ref_count = prefix().ref_count;
+        __TBB_ASSERT( ref_count==int(ref_count), "integer overflow error");
+#endif
+        return int(prefix().ref_count);
+    }
+
+    //! True if this task is owned by the calling thread; false otherwise.
+    bool is_owned_by_current_thread() const;
+
+private:
+    friend class task_list;
+    friend class internal::scheduler;
+    friend class internal::allocate_root_proxy;
+    friend class internal::allocate_continuation_proxy;
+    friend class internal::allocate_child_proxy;
+    friend class internal::allocate_additional_child_of_proxy;
+
+    //! Get reference to corresponding task_prefix.
+    internal::task_prefix& prefix() const {
+        return reinterpret_cast<internal::task_prefix*>(const_cast<task*>(this))[-1];
+    }
+};
+
+//! task that does nothing.  Useful for synchronization.
+/** @ingroup task_scheduling */
+class empty_task: public task {
+    /*override*/ task* execute() {
+        return NULL;
+    }
+};
+
+//! A list of children.
+/** Used for method task::spawn_children
+    @ingroup task_scheduling */
+class task_list: internal::no_copy {
+private:
+    task* first;
+    task** next_ptr;
+    friend class task;
+public:
+    //! Construct empty list
+    task_list() : first(NULL), next_ptr(&first) {}
+
+    //! Destroys the list, but does not destroy the task objects.
+    ~task_list() {}
+
+    //! True if list if empty; false otherwise.
+    bool empty() const {return !first;}
+
+    //! Push task onto back of list.
+    void push_back( task& task ) {
+        task.prefix().next = NULL;
+        *next_ptr = &task;
+        next_ptr = &task.prefix().next;
+    }
+
+    //! Pop the front task from the list.
+    task& pop_front() {
+        __TBB_ASSERT( !empty(), "attempt to pop item from empty task_list" );
+        task* result = first;
+        first = result->prefix().next;
+        if( !first ) next_ptr = &first;
+        return *result;
+    }
+    //! Clear the list
+    void clear() {
+        first=NULL;
+        next_ptr=&first;
+    }
+};
+
+inline void task::spawn( task_list& list ) {
+    __TBB_ASSERT( is_owned_by_current_thread(), "'this' not owned by current thread" );
+    if( task* t = list.first ) {
+        prefix().owner->spawn( *t, *list.next_ptr );
+        list.clear();
+    }
+}
+
+inline void task::spawn_root_and_wait( task_list& root_list ) {
+    if( task* t = root_list.first ) {
+        __TBB_ASSERT( t->is_owned_by_current_thread(), "'this' not owned by current thread" );
+        t->prefix().owner->spawn_root_and_wait( *t, *root_list.next_ptr );
+        root_list.clear();
+    }
+}
+
+} // namespace tbb
+
+inline void *operator new( size_t bytes, const tbb::internal::allocate_root_proxy& p ) {
+    return &p.allocate(bytes);
+}
+
+inline void operator delete( void* task, const tbb::internal::allocate_root_proxy& p ) {
+    p.free( *static_cast<tbb::task*>(task) );
+}
+
+inline void *operator new( size_t bytes, const tbb::internal::allocate_continuation_proxy& p ) {
+    return &p.allocate(bytes);
+}
+
+inline void operator delete( void* task, const tbb::internal::allocate_continuation_proxy& p ) {
+    p.free( *static_cast<tbb::task*>(task) );
+}
+
+inline void *operator new( size_t bytes, const tbb::internal::allocate_child_proxy& p ) {
+    return &p.allocate(bytes);
+}
+
+inline void operator delete( void* task, const tbb::internal::allocate_child_proxy& p ) {
+    p.free( *static_cast<tbb::task*>(task) );
+}
+
+inline void *operator new( size_t bytes, const tbb::internal::allocate_additional_child_of_proxy& p ) {
+    return &p.allocate(bytes);
+}
+
+inline void operator delete( void* task, const tbb::internal::allocate_additional_child_of_proxy& p ) {
+    p.free( *static_cast<tbb::task*>(task) );
+}
+
+#endif /* __TBB_task_H */
diff --git a/include/tbb/task_scheduler_init.h b/include/tbb/task_scheduler_init.h
new file mode 100644
index 0000000..568b2a1
--- /dev/null
+++ b/include/tbb/task_scheduler_init.h
@@ -0,0 +1,88 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_task_scheduler_init_H
+#define __TBB_task_scheduler_init_H
+
+#include "tbb_stddef.h"
+
+namespace tbb {
+
+//! @cond INTERNAL
+namespace internal {
+    //! Internal to library. Should not be used by clients.
+    /** @ingroup task_scheduling */
+    class scheduler;
+} // namespace internal
+//! @endcond
+
+//! Class representing reference to tbb scheduler.
+/** A thread must construct a task_scheduler_init, and keep it alive,
+    during the time that it uses the services of class task.
+    @ingroup task_scheduling */
+class task_scheduler_init: internal::no_copy {
+    /** NULL if not currently initialized. */
+    internal::scheduler* my_scheduler;
+public:
+    //! Typedef for number of threads that is automatic.
+    static const int automatic = -1;
+
+    //! Argument to initialize() or constructor that causes initialization to be deferred.
+    static const int deferred = -2;
+
+    //! Ensure that scheduler exists for this thread
+    /** A value of -1 lets tbb decide on the number 
+        of threads, which is typically the number of hardware threads. 
+        For production code, the default value of -1 should be used, 
+        particularly if the client code is mixed with third party clients 
+        that might also use tbb.
+
+        The number_of_threads is ignored if any other task_scheduler_inits 
+        currently exist.  A thread may construct multiple task_scheduler_inits.  
+        Doing so does no harm because the underlying scheduler is reference counted. */
+    void initialize( int number_of_threads=automatic );
+
+    //! Inverse of method initialize.
+    void terminate();
+
+    //! Shorthand for default constructor followed by call to intialize(number_of_threads).
+    task_scheduler_init( int number_of_threads=automatic ) : my_scheduler(NULL)  {
+        initialize( number_of_threads );
+    }
+  
+    //! Destroy scheduler for this thread if thread has no other live task_scheduler_inits.
+    ~task_scheduler_init() {
+        if( my_scheduler ) 
+            terminate();
+        internal::poison_pointer( my_scheduler );
+    }
+};
+
+} // namespace tbb
+
+#endif /* __TBB_task_scheduler_init_H */
diff --git a/include/tbb/tbb_machine.h b/include/tbb/tbb_machine.h
new file mode 100644
index 0000000..2e4d1d4
--- /dev/null
+++ b/include/tbb/tbb_machine.h
@@ -0,0 +1,495 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_machine_H
+#define __TBB_machine_H
+
+#if _WIN32||_WIN64
+// define the parts of stdint.h that are needed 
+typedef __int8 int8_t;
+typedef __int16 int16_t;
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int8 uint8_t;
+typedef unsigned __int16 uint16_t;
+typedef unsigned __int32 uint32_t;
+typedef unsigned __int64 uint64_t;
+#else
+#include <stdint.h>
+#endif
+
+#include <cstdio>
+#include <assert.h>
+#include "tbb/tbb_stddef.h"
+
+#if _WIN32||_WIN64
+
+#if defined(_M_IX86)
+#include "tbb/machine/windows_ia32.h"
+#elif defined(_M_AMD64) 
+#include "tbb/machine/windows_em64t.h"
+#else
+#error Unsupported platform
+#endif
+
+#elif __linux__
+
+#if __i386__
+#include "tbb/machine/linux_ia32.h"
+#elif __x86_64__
+#include "tbb/machine/linux_em64t.h"
+#elif __ia64__
+#include "tbb/machine/linux_itanium.h"
+#endif
+
+#elif __APPLE__
+
+#if __i386__
+#include "tbb/machine/linux_ia32.h"
+#elif __x86_64__
+#include "tbb/machine/linux_em64t.h"
+#elif __POWERPC__
+#include "tbb/machine/mac_ppc.h"
+#endif
+
+#endif
+
+#if !defined(__TBB_CompareAndSwap4) || !defined(__TBB_CompareAndSwap8) || !defined(__TBB_Yield)
+#error Minimal requirements for tbb_machine.h not satisfied 
+#endif
+
+#if defined(TBB_DO_ASSERT)
+#define WORDSIZE __TBB_WORDSIZE
+#endif
+
+#ifndef __TBB_load_with_acquire
+    //! This definition works for compilers that insert acquire fences for volatile loads, and load T atomically.
+    template<typename T>
+    inline T __TBB_load_with_acquire(T const volatile& location) {
+        return location;
+    }
+#endif
+
+#ifndef __TBB_store_with_release
+    //! This definition works only for compilers that insert release fences for volatile stores, and store T atomically.
+    template<typename T, typename V>
+    inline void __TBB_store_with_release(volatile T &location, V const& value) {
+        location = value; 
+    }
+#endif
+
+#ifndef __TBB_Pause
+    inline void __TBB_Pause(int32_t) {
+        __TBB_Yield();
+    }
+#endif
+
+namespace tbb {
+namespace internal {
+
+//! Class that implements exponential backoff.
+/** See implementation of SpinwaitWhileEq for an example. */
+class AtomicBackoff {
+    //! Time delay, in units of "pause" instructions. 
+    /** Should be equal to approximately the number of "pause" instructions
+        that take the same time as an context switch. */
+    static const int32_t LOOPS_BEFORE_YIELD = 16;
+    int32_t count;
+public:
+    AtomicBackoff() : count(1) {}
+
+    //! Pause for a while.
+    void pause() {
+        if( count<=LOOPS_BEFORE_YIELD ) {
+            __TBB_Pause(count);
+            // Pause twice as long the next time.
+            count*=2;
+        } else {
+            // Pause is so long that we might as well yield CPU to scheduler.
+            __TBB_Yield();
+        }
+    }
+    void reset() {
+        count = 1;
+    }
+};
+
+template<size_t S, typename T>
+inline intptr_t __TBB_MaskedCompareAndSwap (volatile int32_t *ptr, T value, T comparand ) {
+    volatile T *base = (T *)( (uintptr_t)(__TBB_load_with_acquire(ptr)) & ~(uintptr_t)(0x3) );
+#if __TBB_BIG_ENDIAN
+    uint8_t bitoffset = ( (4-S) - ( (uint8_t *)ptr - (uint8_t *)base) ) * 8;
+#else
+    uint8_t bitoffset = ( (uint8_t *)ptr - (uint8_t *)base ) * 8;
+#endif
+    uint32_t mask = ( (1<<(S*8) ) - 1)<<bitoffset;
+    uint32_t tmp, result = *(uint32_t *)base;
+    if ( (T)( (result & mask) >> bitoffset) == (uint32_t)comparand ) {
+      tmp = result;
+      uint32_t new_value = ( result & ~mask ) | ( value << bitoffset );
+      result = __TBB_CompareAndSwap4( base, new_value, tmp );
+      if ( result != tmp && ( (T)( (result & mask) >> bitoffset) == comparand ) ) {
+        AtomicBackoff b;
+        do {
+          b.pause();
+          tmp = result;
+          uint32_t new_value = ( result & ~mask ) | ( value << bitoffset );
+          result = __TBB_CompareAndSwap4( base, new_value, tmp );
+        } while ( result != tmp && ( (T)( (result & mask) >> bitoffset) == comparand ) );
+      }
+    }
+    intptr_t to_return;
+    __TBB_store_with_release(to_return, (T)( (result & mask) >> bitoffset));
+    return to_return;
+}
+
+template<size_t S, typename T>
+inline T __TBB_CompareAndSwapGeneric (volatile void *ptr, T value, T comparand ) { 
+    return __TBB_CompareAndSwapW((T *)ptr,value,comparand);
+}
+
+template<>
+inline uint8_t __TBB_CompareAndSwapGeneric <1,uint8_t> (volatile void *ptr, uint8_t value, uint8_t comparand ) {
+#ifdef __TBB_CompareAndSwap1
+    return __TBB_CompareAndSwap1(ptr,value,comparand);
+#else
+    return __TBB_MaskedCompareAndSwap<1,uint8_t>((volatile int32_t *)ptr,value,comparand);
+#endif
+}
+
+template<>
+inline uint16_t __TBB_CompareAndSwapGeneric <2,uint16_t> (volatile void *ptr, uint16_t value, uint16_t comparand ) {
+#ifdef __TBB_CompareAndSwap2
+    return __TBB_CompareAndSwap2(ptr,value,comparand);
+#else
+    return __TBB_MaskedCompareAndSwap<2,uint16_t>((volatile int32_t *)ptr,value,comparand);
+#endif
+}
+
+template<>
+inline uint32_t __TBB_CompareAndSwapGeneric <4,uint32_t> (volatile void *ptr, uint32_t value, uint32_t comparand ) { 
+    return __TBB_CompareAndSwap4(ptr,value,comparand);
+}
+
+template<>
+inline uint64_t __TBB_CompareAndSwapGeneric <8,uint64_t> (volatile void *ptr, uint64_t value, uint64_t comparand ) { 
+    return __TBB_CompareAndSwap8(ptr,value,comparand);
+}
+
+template<size_t S, typename T>
+inline T __TBB_FetchAndAddGeneric (volatile void *ptr, T addend) {
+    T result = __TBB_load_with_acquire(*reinterpret_cast<volatile T *>(ptr));
+    T tmp = result;
+    result = __TBB_CompareAndSwapGeneric<S,T> ( ptr, result+addend, result );
+    if (tmp != result) {
+        AtomicBackoff b;
+        do {
+            b.pause();
+            tmp = result;
+            result = __TBB_CompareAndSwapGeneric<S,T> ( ptr, result+addend, result );
+         } while ( tmp != result);
+    }
+    intptr_t to_return; 
+    __TBB_store_with_release(to_return, result);
+    return to_return; 
+}
+
+template<size_t S, typename T>
+inline T __TBB_FetchAndStoreGeneric (volatile void *ptr, T value) {
+    T result; 
+    T tmp = __TBB_load_with_acquire(*reinterpret_cast<volatile T *>(ptr));
+    result = __TBB_CompareAndSwapGeneric<S,T> ( ptr, value, tmp );
+    if ( tmp != result ) {
+        AtomicBackoff b;
+        do {
+            b.pause();
+            tmp = result;
+            result = __TBB_CompareAndSwapGeneric<S,T> ( ptr, value, tmp );
+        } while ( tmp != result );
+    }
+    intptr_t to_return; 
+    __TBB_store_with_release(to_return, result);
+    return to_return; 
+}
+
+}
+}
+
+#ifndef __TBB_CompareAndSwap1
+#define __TBB_CompareAndSwap1 tbb::internal::__TBB_CompareAndSwapGeneric<1,uint8_t>
+#endif
+
+#ifndef __TBB_CompareAndSwap2 
+#define __TBB_CompareAndSwap2 tbb::internal::__TBB_CompareAndSwapGeneric<2,uint16_t>
+#endif
+
+#ifndef __TBB_CompareAndSwapW
+#define __TBB_CompareAndSwapW tbb::internal::__TBB_CompareAndSwapGeneric<sizeof(ptrdiff_t),ptrdiff_t>
+#endif
+
+#ifndef __TBB_FetchAndAdd1
+#define __TBB_FetchAndAdd1 tbb::internal::__TBB_FetchAndAddGeneric<1,uint8_t>
+#endif
+
+#ifndef __TBB_FetchAndAdd2
+#define __TBB_FetchAndAdd2 tbb::internal::__TBB_FetchAndAddGeneric<2,uint16_t>
+#endif
+
+#ifndef __TBB_FetchAndAdd4
+#define __TBB_FetchAndAdd4 tbb::internal::__TBB_FetchAndAddGeneric<4,uint32_t>
+#endif
+
+#ifndef __TBB_FetchAndAdd8
+#define __TBB_FetchAndAdd8 tbb::internal::__TBB_FetchAndAddGeneric<8,uint64_t>
+#endif
+
+#ifndef __TBB_FetchAndAddW
+#define __TBB_FetchAndAddW tbb::internal::__TBB_FetchAndAddGeneric<sizeof(ptrdiff_t),ptrdiff_t>
+#endif
+
+#ifndef __TBB_FetchAndStore1
+#define __TBB_FetchAndStore1 tbb::internal::__TBB_FetchAndStoreGeneric<1,uint8_t>
+#endif
+
+#ifndef __TBB_FetchAndStore2
+#define __TBB_FetchAndStore2 tbb::internal::__TBB_FetchAndStoreGeneric<2,uint16_t>
+#endif
+
+#ifndef __TBB_FetchAndStore4
+#define __TBB_FetchAndStore4 tbb::internal::__TBB_FetchAndStoreGeneric<4,uint32_t>
+#endif
+
+#ifndef __TBB_FetchAndStore8
+#define __TBB_FetchAndStore8 tbb::internal::__TBB_FetchAndStoreGeneric<8,uint64_t>
+#endif
+
+#ifndef __TBB_FetchAndStoreW
+#define __TBB_FetchAndStoreW tbb::internal::__TBB_FetchAndStoreGeneric<sizeof(ptrdiff_t),ptrdiff_t>
+#endif
+
+#if __TBB_DECL_FENCED_ATOMICS
+
+#ifndef __TBB_CompareAndSwap1__TBB_full_fence
+#define __TBB_CompareAndSwap1__TBB_full_fence __TBB_CompareAndSwap1
+#endif 
+#ifndef __TBB_CompareAndSwap1acquire
+#define __TBB_CompareAndSwap1acquire __TBB_CompareAndSwap1__TBB_full_fence
+#endif 
+#ifndef __TBB_CompareAndSwap1release
+#define __TBB_CompareAndSwap1release __TBB_CompareAndSwap1__TBB_full_fence
+#endif 
+
+#ifndef __TBB_CompareAndSwap2__TBB_full_fence
+#define __TBB_CompareAndSwap2__TBB_full_fence __TBB_CompareAndSwap2
+#endif
+#ifndef __TBB_CompareAndSwap2acquire
+#define __TBB_CompareAndSwap2acquire __TBB_CompareAndSwap2__TBB_full_fence
+#endif
+#ifndef __TBB_CompareAndSwap2release
+#define __TBB_CompareAndSwap2release __TBB_CompareAndSwap2__TBB_full_fence
+#endif
+
+#ifndef __TBB_CompareAndSwap4__TBB_full_fence
+#define __TBB_CompareAndSwap4__TBB_full_fence __TBB_CompareAndSwap4
+#endif 
+#ifndef __TBB_CompareAndSwap4acquire
+#define __TBB_CompareAndSwap4acquire __TBB_CompareAndSwap4__TBB_full_fence
+#endif 
+#ifndef __TBB_CompareAndSwap4release
+#define __TBB_CompareAndSwap4release __TBB_CompareAndSwap4__TBB_full_fence
+#endif 
+
+#ifndef __TBB_CompareAndSwap8__TBB_full_fence
+#define __TBB_CompareAndSwap8__TBB_full_fence __TBB_CompareAndSwap8
+#endif
+#ifndef __TBB_CompareAndSwap8acquire
+#define __TBB_CompareAndSwap8acquire __TBB_CompareAndSwap8__TBB_full_fence
+#endif
+#ifndef __TBB_CompareAndSwap8release
+#define __TBB_CompareAndSwap8release __TBB_CompareAndSwap8__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndAdd1__TBB_full_fence
+#define __TBB_FetchAndAdd1__TBB_full_fence __TBB_FetchAndAdd1
+#endif
+#ifndef __TBB_FetchAndAdd1acquire
+#define __TBB_FetchAndAdd1acquire __TBB_FetchAndAdd1__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndAdd1release
+#define __TBB_FetchAndAdd1release __TBB_FetchAndAdd1__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndAdd2__TBB_full_fence
+#define __TBB_FetchAndAdd2__TBB_full_fence __TBB_FetchAndAdd2
+#endif
+#ifndef __TBB_FetchAndAdd2acquire
+#define __TBB_FetchAndAdd2acquire __TBB_FetchAndAdd2__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndAdd2release
+#define __TBB_FetchAndAdd2release __TBB_FetchAndAdd2__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndAdd4__TBB_full_fence
+#define __TBB_FetchAndAdd4__TBB_full_fence __TBB_FetchAndAdd4
+#endif
+#ifndef __TBB_FetchAndAdd4acquire
+#define __TBB_FetchAndAdd4acquire __TBB_FetchAndAdd4__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndAdd4release
+#define __TBB_FetchAndAdd4release __TBB_FetchAndAdd4__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndAdd8__TBB_full_fence
+#define __TBB_FetchAndAdd8__TBB_full_fence __TBB_FetchAndAdd8
+#endif
+#ifndef __TBB_FetchAndAdd8acquire
+#define __TBB_FetchAndAdd8acquire __TBB_FetchAndAdd8__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndAdd8release
+#define __TBB_FetchAndAdd8release __TBB_FetchAndAdd8__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndStore1__TBB_full_fence
+#define __TBB_FetchAndStore1__TBB_full_fence __TBB_FetchAndStore1
+#endif
+#ifndef __TBB_FetchAndStore1acquire
+#define __TBB_FetchAndStore1acquire __TBB_FetchAndStore1__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndStore1release
+#define __TBB_FetchAndStore1release __TBB_FetchAndStore1__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndStore2__TBB_full_fence
+#define __TBB_FetchAndStore2__TBB_full_fence __TBB_FetchAndStore2
+#endif
+#ifndef __TBB_FetchAndStore2acquire
+#define __TBB_FetchAndStore2acquire __TBB_FetchAndStore2__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndStore2release
+#define __TBB_FetchAndStore2release __TBB_FetchAndStore2__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndStore4__TBB_full_fence
+#define __TBB_FetchAndStore4__TBB_full_fence __TBB_FetchAndStore4
+#endif
+#ifndef __TBB_FetchAndStore4acquire
+#define __TBB_FetchAndStore4acquire __TBB_FetchAndStore4__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndStore4release
+#define __TBB_FetchAndStore4release __TBB_FetchAndStore4__TBB_full_fence
+#endif
+
+#ifndef __TBB_FetchAndStore8__TBB_full_fence
+#define __TBB_FetchAndStore8__TBB_full_fence __TBB_FetchAndStore8
+#endif
+#ifndef __TBB_FetchAndStore8acquire
+#define __TBB_FetchAndStore8acquire __TBB_FetchAndStore8__TBB_full_fence
+#endif
+#ifndef __TBB_FetchAndStore8release
+#define __TBB_FetchAndStore8release __TBB_FetchAndStore8__TBB_full_fence
+#endif
+
+#endif // __TBB_DECL_FENCED_ATOMICS
+
+// Special atomic functions
+#ifndef __TBB_FetchAndAddWrelease
+#define __TBB_FetchAndAddWrelease __TBB_FetchAndAddW
+#endif
+
+#ifndef __TBB_FetchAndIncrementWacquire
+#define __TBB_FetchAndIncrementWacquire(P) __TBB_FetchAndAddW(P,1)
+#endif
+
+#ifndef __TBB_FetchAndDecrementWrelease
+#define __TBB_FetchAndDecrementWrelease(P) __TBB_FetchAndAddW(P,(-1))
+#endif
+
+#ifndef __TBB_Store8
+inline void __TBB_Store8 (volatile void *ptr, int64_t value) {
+    int64_t result = *(int64_t *)ptr;
+    int64_t tmp;
+    tmp = result; 
+    result = __TBB_CompareAndSwap8(ptr,value,result);
+    if ( tmp != result ) {
+      tbb::internal::AtomicBackoff b;
+      do {
+        b.pause();
+        tmp = result; 
+        result = __TBB_CompareAndSwap8(ptr,value,result);
+      } while ( tmp != result );
+   }
+}
+#endif
+
+#ifndef __TBB_Load8
+inline int64_t __TBB_Load8 (const volatile void *ptr) {
+    int64_t result = *(int64_t *)ptr;
+    result = __TBB_CompareAndSwap8((volatile void *)ptr,result,result);
+    return result;
+}
+#endif
+
+#ifndef __TBB_Log2
+inline intptr_t __TBB_Log2( uintptr_t x ) {
+    long result = -1;
+    for(; x; x>>=1 ) ++result;
+    return result;
+}
+#endif
+
+#ifndef __TBB_AtomicOR
+inline void __TBB_AtomicOR( volatile void *operand, uintptr_t addend ) {
+       uintptr_t result, tmp;
+       do {
+          tmp = *(uintptr_t *)operand;
+          result = __TBB_CompareAndSwapW(operand, tmp|addend, tmp);
+       } while (result != tmp);
+    }
+#endif
+
+#ifndef __TBB_TryLockByte
+inline bool __TBB_TryLockByte( volatile unsigned char &flag ) {
+  volatile void *f = &flag;
+  return ( __TBB_CompareAndSwap1(f,1,0) == 0);
+}
+#endif
+
+#ifndef __TBB_LockByte
+inline uintptr_t __TBB_LockByte( volatile unsigned char& flag ) {
+    if ( !__TBB_TryLockByte(flag) ) {
+        tbb::internal::AtomicBackoff b;
+        do {
+            b.pause();
+        } while ( !__TBB_TryLockByte(flag) );
+    }
+    return 0;
+}
+#endif
+
+#endif
+
diff --git a/include/tbb/tbb_stddef.h b/include/tbb/tbb_stddef.h
new file mode 100644
index 0000000..b5d1d79
--- /dev/null
+++ b/include/tbb/tbb_stddef.h
@@ -0,0 +1,174 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_tbb_stddef_H
+#define __TBB_tbb_stddef_H
+
+// Define groups for Doxygen documentation
+/**
+ * @defgroup algorithms         Algorithms
+ * @defgroup containers         Containers
+ * @defgroup memory_allocation  Memory Allocation
+ * @defgroup synchronization    Synchronization
+ * @defgroup timing             Timing
+ * @defgroup task_scheduling    Task Scheduling
+ */
+
+// Simple text that is displayed on the main page of Doxygen documentation.
+/**
+ * \mainpage Main Page
+ *
+ * Click the tabs above for information about the
+ * <a href="./annotated.html">Classes</a> in the library or the
+ * <a href="./modules.html">Modules</a> to which they belong.  The
+ * <a href="./files.html">Files</a> tab shows which files contain the library
+ * components.
+ */
+
+// Define preprocessor symbols used to determine architecture
+#if _WIN32||_WIN64
+#   if defined(_M_AMD64)
+#       define __TBB_x86_64 1
+#   elif defined(_M_IA64)
+#       define __TBB_ipf 1
+#   elif defined(_M_IX86)
+#       define __TBB_x86_32 1
+#   endif
+#else /* Assume generic Unix */
+#   if !__linux__ && !__APPLE__
+#       define __TBB_generic_os 1
+#   endif
+#   if __x86_64__
+#       define __TBB_x86_64 1
+#   elif __ia64__
+#       define __TBB_ipf 1
+#   elif __i386__
+#       define __TBB_x86_32 1
+#   else
+#       define __TBB_generic_arch 1
+#   endif
+#endif
+
+#include <cstddef>              /* Need size_t and ptrdiff_t from here. */
+
+#if _WIN32||_WIN64
+#define __TBB_tbb_windef_H
+#include "_tbb_windef.h"
+#undef __TBB_tbb_windef_H
+#endif /* _WIN32||_WIN64 */
+
+namespace tbb {
+    //! Type for an assertion handler
+    typedef void(*assertion_handler_type)( const char* filename, int line, const char* expression, const char * comment );
+}
+
+#if TBB_DO_ASSERT
+
+//! Assert that x is true.
+/** If x is false, print assertion failure message.  
+    If the comment argument is not NULL, it is printed as part of the failure message.  
+    The comment argument has no other effect. */
+#define __TBB_ASSERT(predicate,message) ((predicate)?((void)0):tbb::assertion_failure(__FILE__,__LINE__,#predicate,message))
+#define __TBB_ASSERT_EX __TBB_ASSERT
+
+namespace tbb {
+    //! Set assertion handler and return previous value of it.
+    assertion_handler_type set_assertion_handler( assertion_handler_type new_handler ); 
+
+    //! Process an assertion failure.
+    /** Normally called from __TBB_ASSERT macro.
+        If assertion handler is null, print message for assertion failure and abort.
+        Otherwise call the assertion handler. */
+    void assertion_failure( const char* filename, int line, const char* expression, const char* comment );
+} // namespace tbb
+
+#else
+
+//! No-op version of __TBB_ASSERT.
+#define __TBB_ASSERT(predicate,comment) ((void)0)
+//! "Extended" version is useful to suppress warnings if a variable is only used with an assert
+#define __TBB_ASSERT_EX(predicate,comment) ((void)(1 && (predicate)))
+
+#endif /* TBB_DO_ASSERT */
+
+//! The namespace tbb contains all components of the library.
+namespace tbb {
+
+//! Dummy type that distinguishs splitting constructor from copy constructor.
+/**
+ * See description of parallel_for and parallel_reduce for example usages.
+ * @ingroup algorithms
+ */
+class split {
+};
+
+/**
+ * @cond INTERNAL
+ * @brief Identifiers declared inside namespace internal should never be used directly by client code.
+ */
+namespace internal {
+
+//! An unsigned integral type big enough to hold a pointer.
+/** There's no guarantee by the C++ standard that a size_t is really big enough,
+    but it happens to be for all platforms of interest. */
+typedef size_t uintptr;
+
+//! A signed integral type big enough to hold a pointer.
+/** There's no guarantee by the C++ standard that a ptrdiff_t is really big enough,
+    but it happens to be for all platforms of interest. */
+typedef ptrdiff_t intptr;
+
+#if TBB_DO_ASSERT
+//! Set p to invalid pointer value.
+template<typename T>
+inline void poison_pointer( T* volatile & p ) {
+    p = reinterpret_cast<T*>(-1);
+}
+#else
+template<typename T>
+inline void poison_pointer( T* ) {/*do nothing*/}
+#endif /* TBB_DO_ASSERT */
+
+//! Base class for types that should not be copied or assigned.
+class no_copy {
+    //! Deny copy construction
+    no_copy( const no_copy& );
+
+    // Deny assignment
+    void operator=( const no_copy& );
+public:
+    //! Allow default construction
+    no_copy() {}
+};
+
+} // internal
+//! @endcond
+
+} // tbb
+
+#endif /* __TBB_tbb_stddef_H */
diff --git a/include/tbb/tick_count.h b/include/tbb/tick_count.h
new file mode 100644
index 0000000..cf51360
--- /dev/null
+++ b/include/tbb/tick_count.h
@@ -0,0 +1,137 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef __TBB_tick_count_H
+#define __TBB_tick_count_H
+
+#include "tbb_stddef.h"
+
+#if _WIN32||_WIN64
+#include <windows.h>
+#elif __linux__
+#include <ctime>
+#include <stdio.h>
+#else /* generic Unix */
+#include <sys/time.h>
+#endif /* (choice of OS) */
+
+namespace tbb {
+
+//! Absolute timestamp
+/** @ingroup timing */
+class tick_count {
+public:
+    //! Relative time interval.
+    class interval_t {
+        long long value;
+        explicit interval_t( long long value_ ) : value(value_) {}
+    public:
+        //! Construct a time interval representing zero time duration
+        interval_t() : value(0) {};
+
+        //! Return the length of a time interval in seconds
+        double seconds() const;
+
+        friend class tbb::tick_count;
+
+        //! Extract the intervals from the tick_counts and subtract them.
+        friend interval_t operator-( const tick_count& t1, const tick_count& t0 );
+
+        //! Add two intervals.
+        friend interval_t operator+( const interval_t& i, const interval_t& j ) {
+            return interval_t(i.value+j.value);
+        }
+
+        //! Subtract two intervals.
+        friend interval_t operator-( const interval_t& i, const interval_t& j ) {
+            return interval_t(i.value-j.value);
+        }
+
+        //! Accumulation operator
+        interval_t& operator+=( const interval_t& i ) {value += i.value; return *this;}
+
+        //! Subtraction operator
+        interval_t& operator-=( const interval_t& i ) {value -= i.value; return *this;}
+    };
+    
+    //! Return current time.
+    static tick_count now();
+    
+    //! Subtract two timestamps to get the time interval between
+    friend interval_t operator-( const tick_count& t1, const tick_count& t0 );
+
+private:
+    long long my_count;
+};
+
+inline tick_count tick_count::now() {
+    tick_count result;
+#if _WIN32||_WIN64
+    LARGE_INTEGER qpcnt;
+    QueryPerformanceCounter(&qpcnt);
+    result.my_count = qpcnt.QuadPart;
+#elif __linux__
+    struct timespec ts;
+#if TBB_DO_ASSERT
+    int status = 
+#endif /* TBB_DO_ASSERT */
+        clock_gettime( CLOCK_REALTIME, &ts );
+    __TBB_ASSERT( status==0, "CLOCK_REALTIME not supported" );
+    result.my_count = static_cast<long long>(1000000000UL)*static_cast<long long>(ts.tv_sec) + static_cast<long long>(ts.tv_nsec);
+#else /* generic Unix */
+    struct timeval tv;
+#if TBB_DO_ASSERT
+    int status = 
+#endif /* TBB_DO_ASSERT */
+        gettimeofday(&tv, NULL);
+    __TBB_ASSERT( status==0, "gettimeofday failed" );
+    result.my_count = static_cast<long long>(1000000)*static_cast<long long>(tv.tv_sec) + static_cast<long long>(tv.tv_usec);
+#endif /*(choice of OS) */
+    return result;
+}
+
+inline tick_count::interval_t operator-( const tick_count& t1, const tick_count& t0 ) {
+    return tick_count::interval_t( t1.my_count-t0.my_count );
+}
+
+inline double tick_count::interval_t::seconds() const {
+#if _WIN32||_WIN64
+    LARGE_INTEGER qpfreq;
+    QueryPerformanceFrequency(&qpfreq);
+    return value/(double)qpfreq.QuadPart;
+#elif __linux__
+    return value*1E-9;
+#else /* generic Unix */
+    return value*1E-6;
+#endif /* (choice of OS) */
+}
+
+} // namespace tbb
+
+#endif /* __TBB_tick_count_H */
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0da6198
--- /dev/null
+++ b/index.html
@@ -0,0 +1,40 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+Top level directory for Threading Building Blocks (TBB).
+<P>
+To build TBB, use the <A HREF=Makefile>top-level Makefile</A>; see also the <A HREF=build/index.html#build>build directions</A>.
+To port TBB to a new platform, operating system or architecture, see the <A HREF=build/index.html#port>porting directions</A>.
+</P>
+
+<H2>Files</H2>
+<DL>
+<DT><A HREF="Makefile">Makefile</A>
+<DD>Top-level Makefile for TBB.  See also the <A HREF=build/index.html#build>build directions</A>.
+</DL>
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="include/index.html">include</A>
+<DD>Include files required for compiling code that uses the library.
+<DT><A HREF="examples/index.html">examples</A>
+<DD>Examples of how to use the library.
+<DT><A HREF="src/index.html">src</A>
+<DD>Source code for the library.
+<DT><A HREF="build/index.html">build</A>
+<DD>Internal Makefile infrastructure for TBB.  Do not use directly; see the <A HREF=build/index.html#build>build directions</A>.
+</DL>
+
+<HR>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
+
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..2b3e3f7
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,28 @@
+<HTML>
+<BODY>
+
+<H2>Overview</H2>
+This directory contains the source code and unit tests for Threading Building Blocks.
+
+<H2>Directories</H2>
+<DL>
+<DT><A HREF="tbb">tbb</A>
+<DD>Source code for TBB.
+<DT><A HREF="tbbmalloc">tbbmalloc</A>
+<DD>Source code for TBB scalable memory allocator.
+<DT><A HREF="test">test</A>
+<DD>Source code for unit tests.
+</DL>
+
+<HR>
+<A HREF="../index.html">Up to parent directory</A>
+<p></p>
+Copyright © 2005-2007 Intel Corporation.  All Rights Reserved.
+<p></p>
+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
+registered trademarks or trademarks of Intel Corporation or its 
+subsidiaries in the United States and other countries. 
+<p></p>
+* Other names and brands may be claimed as the property of others.
+</BODY>
+</HTML>
diff --git a/src/tbb/Makefile b/src/tbb/Makefile
new file mode 100644
index 0000000..1c5c9be
--- /dev/null
+++ b/src/tbb/Makefile
@@ -0,0 +1,45 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+tbb_root?=../..
+include $(tbb_root)/build/common.inc
+
+all: release debug
+
+release debug: 
+	@-$(MD) "$(work_dir)_$@"
+	$(MAKE) -C "$(work_dir)_$@" -r -f $(tbb_root)/build/Makefile.tbb cfg=$@
+
+clean: clean_release clean_debug
+
+clean_release:
+	@-$(RM) $(work_dir)_release$(SLASH)*.*
+	@-rmdir "$(work_dir)_release"
+
+clean_debug:
+	@-$(RM) $(work_dir)_debug$(SLASH)*.*
+	@-rmdir "$(work_dir)_debug"
+
diff --git a/src/tbb/cache_aligned_allocator.cpp b/src/tbb/cache_aligned_allocator.cpp
new file mode 100644
index 0000000..2c9b151
--- /dev/null
+++ b/src/tbb/cache_aligned_allocator.cpp
@@ -0,0 +1,169 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/cache_aligned_allocator.h"
+#include "tbb_misc.h"
+#include <cstdlib>
+
+#if _WIN32||_WIN64
+#include <windows.h>
+#else
+#include <dlfcn.h>
+#endif /* _WIN32||_WIN64 */
+
+namespace tbb {
+
+namespace internal {
+
+//! Dummy routine used for first indirect call via MallocHandler.
+static void* DummyMalloc( size_t size );
+
+//! Dummy routine used for first indirect call via FreeHandler.
+static void DummyFree( void * ptr );
+
+//! Handler for memory allocation
+static void* (*MallocHandler)( size_t size ) = &DummyMalloc;
+
+//! Handler for memory deallocation
+static void (*FreeHandler)( void* pointer ) = &DummyFree;
+
+//! Table describing the how to link the handlers.
+static const DynamicLinkDescriptor MallocLinkTable[] = {
+    {"scalable_malloc",ADDRESS_OF_HANDLER(&MallocHandler)},
+    {"scalable_free",ADDRESS_OF_HANDLER(&FreeHandler)}
+};
+
+#if TBB_DO_ASSERT
+#define DEBUG_SUFFIX "_debug"
+#else
+#define DEBUG_SUFFIX
+#endif /* TBB_DO_ASSERT */
+
+// MALLOCLIB_NAME is the name of the TBB memory allocator library.
+#if _WIN32||_WIN64
+#define MALLOCLIB_NAME "tbbmalloc" DEBUG_SUFFIX ".dll"
+#elif __APPLE__
+#define MALLOCLIB_NAME "libtbbmalloc" DEBUG_SUFFIX ".dylib"
+#elif __linux__
+#define MALLOCLIB_NAME "libtbbmalloc" DEBUG_SUFFIX ".so"
+#else
+#error Unknown OS
+#endif
+
+//! Initialize the allocation/free handler pointers.
+/** Caller is responsible for ensuring this routine is called exactly once.
+    The routine attempts to dynamically link with the TBB memory allocator.
+    If that allocator is not found, it links to malloc and free. */
+void initialize_cache_aligned_allocator() {
+    __TBB_ASSERT( MallocHandler==&DummyMalloc, NULL );
+    bool success = FillDynamicLinks( MALLOCLIB_NAME, MallocLinkTable, 2 );
+    if( !success ) {
+        // If unsuccessful, set the handlers to the default routines.
+        // This must be done now, and not before FillDynanmicLinks runs, because if other
+        // threads call the handlers, we want them to go through the DoOneTimeInitializations logic,
+        // which forces them to wait.
+        FreeHandler = &free;
+        MallocHandler = &malloc;
+    }
+    PrintExtraVersionInfo( "ALLOCATOR", success?"scalable_malloc":"malloc" );
+}
+
+//! Defined in task.cpp
+extern void DoOneTimeInitializations();
+
+//! Executed on very first call throught MallocHandler
+static void* DummyMalloc( size_t size ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( MallocHandler!=&DummyMalloc, NULL );
+    return (*MallocHandler)( size );
+}
+
+//! Executed on very first call throught FreeHandler
+static void DummyFree( void * ptr ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( FreeHandler!=&DummyFree, NULL );
+    (*FreeHandler)( ptr );
+}
+
+static size_t NFS_LineSize = 128;
+
+size_t NFS_GetLineSize() {
+    return NFS_LineSize;
+}
+
+//! Requests for blocks this size and higher are handled via malloc/free,
+const size_t BigSize = 4096;
+
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning( push )
+// unary minus operator applied to unsigned type, result still unsigned
+#pragma warning( disable: 4146 )
+#endif /* _MSC_VER && !defined(__INTEL_COMPILER) */
+
+void* NFS_Allocate( size_t n, size_t element_size, void* hint ) {
+    using namespace internal;
+    size_t m = NFS_LineSize;
+    __TBB_ASSERT( m<=NFS_MaxLineSize, "illegal value for NFS_LineSize" );
+    __TBB_ASSERT( (m & m-1)==0, "must be power of two" );
+    size_t bytes = n*element_size;
+    unsigned char* base;
+    if( bytes<n || bytes+m<bytes || !(base=(unsigned char*)(bytes>=BigSize?malloc(m+bytes):(*MallocHandler)(m+bytes))) ) {
+        // Overflow
+        throw std::bad_alloc();
+    }
+    // Round up to next line
+    unsigned char* result = (unsigned char*)((uintptr)(base+m)&-m);
+    // Record where block actually starts.  Use low order bit to record whether we used malloc or MallocHandler.
+    ((uintptr*)result)[-1] = uintptr(base)|(bytes>=BigSize);
+    return result;
+}
+
+void NFS_Free( void* p ) {
+    if( p ) {
+        __TBB_ASSERT( (uintptr)p>=0x4096, "attempt to free block not obtained from cache_aligned_allocator" );
+        using namespace internal;
+        // Recover where block actually starts
+        unsigned char* base = ((unsigned char**)p)[-1];
+        __TBB_ASSERT( (void*)((uintptr)(base+NFS_LineSize)&-NFS_LineSize)==p, "not allocated by NFS_Allocate?" );
+        if( uintptr(base)&1 ) {
+            // Is a big block - use free
+            free(base-1);
+        } else {
+            // Is a small block - use scalable allocator
+            (*FreeHandler)( base );
+        }
+    }
+}
+
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning( pop )
+#endif /* _MSC_VER && !defined(__INTEL_COMPILER) */
+
+} // namespace internal
+
+} // namespace tbb
diff --git a/src/tbb/concurrent_hash_map.cpp b/src/tbb/concurrent_hash_map.cpp
new file mode 100644
index 0000000..89cb69d
--- /dev/null
+++ b/src/tbb/concurrent_hash_map.cpp
@@ -0,0 +1,45 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_hash_map.h"
+
+namespace tbb {
+
+namespace internal {
+
+bool hash_map_segment_base::internal_grow_predicate() const {
+    // Intel(R) Thread Checker considers the following reads to be races, so we hide them in the 
+    // library so that Intel(R) Thread Checker will ignore them.  The reads are used in a double-check
+    // context, so the program is nonetheless correct despite the race.
+    return my_logical_size>=my_physical_size;
+}
+
+} // namespace internal
+
+} // namespace tbb
+
diff --git a/src/tbb/concurrent_queue.cpp b/src/tbb/concurrent_queue.cpp
new file mode 100644
index 0000000..47cac2c
--- /dev/null
+++ b/src/tbb/concurrent_queue.cpp
@@ -0,0 +1,370 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_queue.h"
+#include "tbb/cache_aligned_allocator.h"
+#include "tbb/spin_mutex.h"
+#include "tbb/atomic.h"
+#include "tbb_misc.h"
+#include <cstring>
+#include <stdio.h>
+
+#define RECORD_EVENTS 0
+
+
+namespace tbb {
+
+namespace internal {
+
+class concurrent_queue_rep;
+
+//! A queue using simple locking.
+/** For efficient, this class has no constructor.  
+    The caller is expected to zero-initialize it. */
+struct micro_queue {
+    typedef concurrent_queue_base::page page;
+    typedef size_t ticket;
+
+    atomic<page*> head_page;
+    atomic<ticket> head_counter;
+
+    atomic<page*> tail_page;
+    atomic<ticket> tail_counter;
+
+    spin_mutex page_mutex;
+    
+    class push_finalizer {
+        ticket my_ticket;
+        micro_queue& my_queue;
+    public:
+        push_finalizer( micro_queue& queue, ticket k ) :
+            my_ticket(k), my_queue(queue)
+        {}
+        ~push_finalizer() {
+            my_queue.tail_counter = my_ticket;
+        }
+    };
+
+    void push( const void* item, ticket k, concurrent_queue_base& base );
+
+    class pop_finalizer {
+        ticket my_ticket;
+        micro_queue& my_queue;
+        page* my_page; 
+    public:
+        pop_finalizer( micro_queue& queue, ticket k, page* p ) :
+            my_ticket(k), my_queue(queue), my_page(p)
+        {}
+        ~pop_finalizer() {
+            page* p = my_page;
+            if( p ) {
+                spin_mutex::scoped_lock lock( my_queue.page_mutex );
+                page* q = p->next;
+                my_queue.head_page = q;
+                if( !q ) {
+                    my_queue.tail_page = NULL;
+                }
+            }
+            my_queue.head_counter = my_ticket;
+            if( p ) 
+                operator delete(p);
+        }
+    };
+
+    bool pop( void* dst, ticket k, concurrent_queue_base& base );
+};
+
+//! Internal representation of a ConcurrentQueue.
+/** For efficient, this class has no constructor.  
+    The caller is expected to zero-initialize it. */
+class concurrent_queue_rep {
+public:
+    typedef size_t ticket;
+
+private:
+    friend struct micro_queue;
+
+    //! Approximately n_queue/golden ratio
+    static const size_t phi = 3;
+
+public:
+    //! Must be power of 2
+    static const size_t n_queue = 8; 
+
+    //! Map ticket to an array index
+    static size_t index( ticket k ) {
+        return k*phi%n_queue;
+    }
+
+    atomic<ticket> head_counter;
+    char pad1[NFS_MaxLineSize-sizeof(size_t)];
+
+    atomic<ticket> tail_counter;
+    char pad2[NFS_MaxLineSize-sizeof(ticket)];
+    micro_queue array[n_queue];    
+
+    micro_queue& choose( ticket k ) {
+        // The formula here approximates LRU in a cache-oblivious way.
+        return array[index(k)];
+    }
+
+    //! Value for effective_capacity that denotes unbounded queue.
+    static const ptrdiff_t infinite_capacity = ptrdiff_t(~size_t(0)/2);
+};
+
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning( push )
+// unary minus operator applied to unsigned type, result still unsigned
+#pragma warning( disable: 4146 )
+#endif /* _MSC_VER && !defined(__INTEL_COMPILER) */
+
+//------------------------------------------------------------------------
+// micro_queue
+//------------------------------------------------------------------------
+void micro_queue::push( const void* item, ticket k, concurrent_queue_base& base ) {
+    k &= -concurrent_queue_rep::n_queue;
+    page* p = NULL;
+    size_t index = (k/concurrent_queue_rep::n_queue & base.items_per_page-1);
+    if( !index ) {
+        size_t n = sizeof(page) + base.items_per_page*base.item_size;
+        p = static_cast<page*>(operator new( n ));
+        p->mask = 0;
+        p->next = NULL;
+    }
+    {
+        push_finalizer finalizer( *this, k+concurrent_queue_rep::n_queue ); 
+        SpinwaitUntilEq( tail_counter, k );
+        if( p ) {
+            spin_mutex::scoped_lock lock( page_mutex );
+            if( page* q = tail_page )
+                q->next = p;
+            else
+                head_page = p; 
+            tail_page = p;
+        } else {
+            p = tail_page;
+        }
+        base.copy_item( *p, index, item );
+        // If no exception was thrown, mark item as present.
+        p->mask |= uintptr(1)<<index;
+    } 
+}
+
+bool micro_queue::pop( void* dst, ticket k, concurrent_queue_base& base ) {
+    k &= -concurrent_queue_rep::n_queue;
+    SpinwaitUntilEq( head_counter, k );
+    SpinwaitWhileEq( tail_counter, k );
+    page& p = *head_page;
+    __TBB_ASSERT( &p, NULL );
+    size_t index = (k/concurrent_queue_rep::n_queue & base.items_per_page-1);
+    bool success = false; 
+    {
+        pop_finalizer finalizer( *this, k+concurrent_queue_rep::n_queue, index==base.items_per_page-1 ? &p : NULL ); 
+        if( p.mask & uintptr(1)<<index ) {
+            success = true;
+            base.assign_and_destroy_item( dst, p, index );
+        }
+    }
+    return success;
+}
+
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning( pop )
+#endif /* _MSC_VER && !defined(__INTEL_COMPILER) */
+
+//------------------------------------------------------------------------
+// concurrent_queue_base
+//------------------------------------------------------------------------
+concurrent_queue_base::concurrent_queue_base( size_t item_size ) {
+    items_per_page = item_size<=8 ? 32 :
+                     item_size<=16 ? 16 : 
+                     item_size<=32 ? 8 :
+                     item_size<=64 ? 4 :
+                     item_size<=128 ? 2 :
+                     1;
+    my_capacity = size_t(-1)/(item_size>1 ? item_size : 2); 
+    my_rep = cache_aligned_allocator<concurrent_queue_rep>().allocate(1);
+    __TBB_ASSERT( (size_t)my_rep % NFS_GetLineSize()==0, "alignment error" );
+    __TBB_ASSERT( (size_t)&my_rep->head_counter % NFS_GetLineSize()==0, "alignment error" );
+    __TBB_ASSERT( (size_t)&my_rep->tail_counter % NFS_GetLineSize()==0, "alignment error" );
+    __TBB_ASSERT( (size_t)&my_rep->array % NFS_GetLineSize()==0, "alignment error" );
+    memset(my_rep,0,sizeof(concurrent_queue_rep));
+    this->item_size = item_size;
+}
+
+concurrent_queue_base::~concurrent_queue_base() {
+    cache_aligned_allocator<concurrent_queue_rep>().deallocate(my_rep,1);
+}
+
+void concurrent_queue_base::internal_push( const void* src ) {
+    concurrent_queue_rep& r = *my_rep;
+    concurrent_queue_rep::ticket k  = r.tail_counter++;
+    ptrdiff_t e = my_capacity;
+    if( e<concurrent_queue_rep::infinite_capacity ) {
+        ExponentialBackoff backoff;
+        for(;;) {
+            if( (ptrdiff_t)(k-r.head_counter)<e ) break;
+            backoff.pause();
+            e = const_cast<volatile ptrdiff_t&>(my_capacity);
+        }
+    } 
+    r.choose(k).push(src,k,*this);
+}
+
+void concurrent_queue_base::internal_pop( void* dst ) {
+    concurrent_queue_rep& r = *my_rep;
+    concurrent_queue_rep::ticket k;
+    do {
+        k = r.head_counter++;
+    } while( !r.choose(k).pop(dst,k,*this) );
+}
+
+bool concurrent_queue_base::internal_pop_if_present( void* dst ) {
+    concurrent_queue_rep& r = *my_rep;
+    concurrent_queue_rep::ticket k;
+    do {
+        ExponentialBackoff backoff;
+        for(;;) {
+            k = r.head_counter;
+            if( r.tail_counter<=k ) {
+                // Queue is empty 
+                return false;
+            }
+            // Queue had item with ticket k when we looked.  Attempt to get that item.
+            if( r.head_counter.compare_and_swap(k+1,k)==k ) {
+                break;
+            }
+            // Another thread snatched the item, so pause and retry.
+            backoff.pause();
+        }
+    } while( !r.choose(k).pop(dst,k,*this) );
+    return true;
+}
+
+bool concurrent_queue_base::internal_push_if_not_full( const void* src ) {
+    concurrent_queue_rep& r = *my_rep;
+    ExponentialBackoff backoff;
+    concurrent_queue_rep::ticket k;
+    for(;;) {
+        k = r.tail_counter;
+        if( (ptrdiff_t)(k-r.head_counter)>=my_capacity ) {
+            // Queue is full
+            return false;
+        }
+        // Queue had empty slot with ticket k when we looked.  Attempt to claim that slot.
+        if( r.tail_counter.compare_and_swap(k+1,k)==k ) 
+            break;
+        // Another thread claimed the slot, so pause and retry.
+        backoff.pause();
+    }
+    r.choose(k).push(src,k,*this);
+    return true;
+}
+
+ptrdiff_t concurrent_queue_base::internal_size() const {
+    __TBB_ASSERT( sizeof(ptrdiff_t)<=sizeof(size_t), NULL );
+    return ptrdiff_t(my_rep->tail_counter-my_rep->head_counter);
+}
+
+void concurrent_queue_base::internal_set_capacity( ptrdiff_t capacity, size_t item_size ) {
+    my_capacity = capacity<0 ? concurrent_queue_rep::infinite_capacity : capacity;
+}
+
+//------------------------------------------------------------------------
+// concurrent_queue_iterator_rep
+//------------------------------------------------------------------------
+class  concurrent_queue_iterator_rep {
+public:
+    typedef concurrent_queue_rep::ticket ticket;
+    ticket head_counter;   
+    const concurrent_queue_base& my_queue;
+    concurrent_queue_base::page* array[concurrent_queue_rep::n_queue];
+    concurrent_queue_iterator_rep( const concurrent_queue_base& queue ) : 
+        head_counter(queue.my_rep->head_counter),
+        my_queue(queue)
+    {
+        const concurrent_queue_rep& rep = *queue.my_rep;
+        for( size_t k=0; k<concurrent_queue_rep::n_queue; ++k )
+            array[k] = rep.array[k].head_page;
+    }
+    //! Get pointer to kth element
+    void* choose( size_t k ) {
+        if( k==my_queue.my_rep->tail_counter )
+            return NULL;
+        else {
+            concurrent_queue_base::page* p = array[concurrent_queue_rep::index(k)];
+            __TBB_ASSERT(p,NULL);
+            size_t i = k/concurrent_queue_rep::n_queue & my_queue.items_per_page-1;
+            return static_cast<unsigned char*>(static_cast<void*>(p+1)) + my_queue.item_size*i;
+        }
+    }
+};
+
+//------------------------------------------------------------------------
+// concurrent_queue_iterator_base
+//------------------------------------------------------------------------
+concurrent_queue_iterator_base::concurrent_queue_iterator_base( const concurrent_queue_base& queue ) {
+    my_rep = new concurrent_queue_iterator_rep(queue);
+    my_item = my_rep->choose(my_rep->head_counter);
+}
+
+void concurrent_queue_iterator_base::assign( const concurrent_queue_iterator_base& other ) {
+    if( my_rep!=other.my_rep ) {
+        if( my_rep ) {
+            delete my_rep;
+            my_rep = NULL;
+        }
+        if( other.my_rep ) {
+            my_rep = new concurrent_queue_iterator_rep( *other.my_rep );
+        }
+    }
+    my_item = other.my_item;
+}
+
+void concurrent_queue_iterator_base::advance() {
+    __TBB_ASSERT( my_item, "attempt to increment iterator past end of queue" );  
+    size_t k = my_rep->head_counter;
+    const concurrent_queue_base& queue = my_rep->my_queue;
+    __TBB_ASSERT( my_item==my_rep->choose(k), NULL );
+    size_t i = k/concurrent_queue_rep::n_queue & queue.items_per_page-1;
+    if( i==queue.items_per_page-1 ) {
+        concurrent_queue_base::page*& root = my_rep->array[concurrent_queue_rep::index(k)];
+        root = root->next;
+    }
+    my_rep->head_counter = k+1;
+    my_item = my_rep->choose(k+1);
+}
+
+concurrent_queue_iterator_base::~concurrent_queue_iterator_base() {
+    delete my_rep;
+    my_rep = NULL;
+}
+
+} // namespace internal
+
+} // namespace tbb
diff --git a/src/tbb/concurrent_vector.cpp b/src/tbb/concurrent_vector.cpp
new file mode 100644
index 0000000..951c291
--- /dev/null
+++ b/src/tbb/concurrent_vector.cpp
@@ -0,0 +1,260 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_vector.h"
+#include "tbb_misc.h"
+#include <stdexcept>
+#include "itt_notify.h"
+#include "tbb/task.h"
+
+
+namespace tbb {
+
+namespace internal {
+
+void concurrent_vector_base::internal_grow_to_at_least( size_type new_size, size_type element_size, internal_array_op1 init ) {
+    size_type e = my_early_size;
+    while( e<new_size ) {
+        size_type f = my_early_size.compare_and_swap(new_size,e);
+        if( f==e ) {
+            internal_grow( e, new_size, element_size, init );
+            return;
+        }
+        e = f;
+    }
+}
+
+class concurrent_vector_base::helper {
+    static void extend_segment( concurrent_vector_base& v );
+public:
+    static segment_index_t find_segment_end( const concurrent_vector_base& v ) {
+        const size_t pointers_per_long_segment = sizeof(void*)==4 ? 32 : 64;
+        const size_t pointers_per_short_segment = 2;
+        //unsigned u = v.my_segment==v.my_storage ? pointers_per_short_segment : pointers_per_long_segment;
+        segment_index_t u = v.my_segment==(&(v.my_storage[0])) ? pointers_per_short_segment : pointers_per_long_segment;
+        segment_index_t k = 0;
+        while( k<u && v.my_segment[k].array )
+            ++k;
+        return k;
+    }
+    static void extend_segment_if_necessary( concurrent_vector_base& v, size_t k ) {
+        const size_t pointers_per_short_segment = 2;
+        if( k>=pointers_per_short_segment && v.my_segment==v.my_storage ) {
+            extend_segment(v);
+        }
+    }
+};
+
+void concurrent_vector_base::helper::extend_segment( concurrent_vector_base& v ) {
+    const size_t pointers_per_long_segment = sizeof(void*)==4 ? 32 : 64;
+    segment_t* s = (segment_t*)NFS_Allocate( pointers_per_long_segment, sizeof(segment_t), NULL );
+    memset( s, 0, pointers_per_long_segment*sizeof(segment_t) );
+    // If other threads are trying to set pointers in the short segment, wait for them to finish their
+    // assigments before we copy the short segment to the long segment.
+    ExponentialBackoff backoff;
+    while( !v.my_storage[0].array || !v.my_storage[1].array ) {
+        backoff.pause();
+    }
+    s[0] = v.my_storage[0]; 
+    s[1] = v.my_storage[1]; 
+    if( v.my_segment.compare_and_swap( s, v.my_storage )!=v.my_storage ) 
+        NFS_Free(s);
+}
+
+concurrent_vector_base::size_type concurrent_vector_base::internal_capacity() const {
+    return segment_base( helper::find_segment_end(*this) );
+}
+
+void concurrent_vector_base::internal_reserve( size_type n, size_type element_size, size_type max_size ) {
+    if( n>max_size ) {
+        throw std::length_error("argument to ConcurrentVector::reserve exceeds ConcurrentVector::max_size()");
+    }
+    for( segment_index_t k = helper::find_segment_end(*this); segment_base(k)<n; ++k ) {
+        helper::extend_segment_if_necessary(*this,k);
+        size_t m = segment_size(k);
+        __TBB_ASSERT( !my_segment[k].array, "concurrent operation during reserve(...)?" );
+        my_segment[k].array = NFS_Allocate( m, element_size, NULL );
+    }
+}
+
+void concurrent_vector_base::internal_copy( const concurrent_vector_base& src, size_type element_size, internal_array_op2 copy ) {
+    size_type n = src.my_early_size;
+    my_early_size = n;
+    my_segment = my_storage;
+    if( n ) {
+        size_type b;
+        for( segment_index_t k=0; (b=segment_base(k))<n; ++k ) {
+            helper::extend_segment_if_necessary(*this,k);
+            size_t m = segment_size(k);
+            __TBB_ASSERT( !my_segment[k].array, "concurrent operation during copy construction?" );
+            my_segment[k].array = NFS_Allocate( m, element_size, NULL );
+            if( m>n-b ) m = n-b; 
+            copy( my_segment[k].array, src.my_segment[k].array, m );
+        }
+    }
+}
+
+void concurrent_vector_base::internal_assign( const concurrent_vector_base& src, size_type element_size, internal_array_op1 destroy, internal_array_op2 assign, internal_array_op2 copy ) {
+    size_type n = src.my_early_size;
+    while( my_early_size>n ) { 
+        segment_index_t k = segment_index_of( my_early_size-1 );
+        size_type b=segment_base(k);
+        size_type new_end = b>=n ? b : n;
+        __TBB_ASSERT( my_early_size>new_end, NULL );
+        destroy( (char*)my_segment[k].array+element_size*(new_end-b), my_early_size-new_end );
+        my_early_size = new_end;
+    }
+    size_type dst_initialized_size = my_early_size;
+    my_early_size = n;
+    size_type b;
+    for( segment_index_t k=0; (b=segment_base(k))<n; ++k ) {
+        helper::extend_segment_if_necessary(*this,k);
+        size_t m = segment_size(k);
+        if( !my_segment[k].array )
+            my_segment[k].array = NFS_Allocate( m, element_size, NULL );
+        if( m>n-b ) m = n-b; 
+        size_type a = 0;
+        if( dst_initialized_size>b ) {
+            a = dst_initialized_size-b;
+            if( a>m ) a = m;
+            assign( my_segment[k].array, src.my_segment[k].array, a );
+            m -= a; 
+            a *= element_size; 
+        }
+        if( m>0 ) 
+            copy( (char*)my_segment[k].array+a, (char*)src.my_segment[k].array+a, m );
+    }
+    __TBB_ASSERT( src.my_early_size==n, "detected use of ConcurrentVector::operator= with right side that was concurrently modified" );
+}
+
+void* concurrent_vector_base::internal_push_back( size_type element_size, size_type& index ) {
+    __TBB_ASSERT( sizeof(my_early_size)==sizeof(reference_count), NULL );
+    //size_t tmp = __TBB_FetchAndIncrementWacquire(*(tbb::internal::reference_count*)&my_early_size);
+    size_t tmp = __TBB_FetchAndIncrementWacquire((tbb::internal::reference_count*)&my_early_size);
+    index = tmp;
+    segment_index_t k_old = segment_index_of( tmp );
+    size_type base = segment_base(k_old);
+    helper::extend_segment_if_necessary(*this,k_old);
+    segment_t& s = my_segment[k_old];
+    void* array = s.array;
+    if( !array ) {
+        // FIXME - consider factoring this out and share with internal_grow_by
+	if( base==tmp ) {
+	    __TBB_ASSERT( !s.array, NULL );
+            size_t n = segment_size(k_old);
+	    array = NFS_Allocate( n, element_size, NULL );
+	    ITT_NOTIFY( sync_releasing, &s.array );
+	    s.array = array;
+	} else {
+	    ITT_NOTIFY(sync_prepare, &s.array);
+	    internal::SpinwaitWhileEq( s.array, (void*)0 );
+	    ITT_NOTIFY(sync_acquired, &s.array);
+	    array = s.array;
+	}
+    }
+    size_type j_begin = tmp-base;
+    return (void*)((char*)array+element_size*j_begin);
+}
+
+concurrent_vector_base::size_type concurrent_vector_base::internal_grow_by( size_type delta, size_type element_size, internal_array_op1 init ) {
+    size_type result = my_early_size.fetch_and_add(delta);
+    internal_grow( result, result+delta, element_size, init );
+    return result;
+}
+
+void concurrent_vector_base::internal_grow( const size_type start, size_type finish, size_type element_size, internal_array_op1 init ) {
+    __TBB_ASSERT( start<finish, "start must be less than finish" );
+    size_t tmp = start;
+    do {
+        segment_index_t k_old = segment_index_of( tmp );
+        size_type base = segment_base(k_old);
+        size_t n = segment_size(k_old);
+        helper::extend_segment_if_necessary(*this,k_old);
+        segment_t& s = my_segment[k_old];
+        void* array = s.array;
+        if( !array ) {
+            if( base==tmp ) {
+                __TBB_ASSERT( !s.array, NULL );
+                array = NFS_Allocate( n, element_size, NULL );
+                ITT_NOTIFY( sync_releasing, &s.array );
+                s.array = array;
+            } else {
+                ITT_NOTIFY(sync_prepare, &s.array);
+                internal::SpinwaitWhileEq( s.array, (void*)0 );
+                ITT_NOTIFY(sync_acquired, &s.array);
+                array = s.array;
+            }
+        }
+        size_type j_begin = tmp-base;
+        size_type j_end = n > finish-base ? finish-base : n;
+        (*init)( (void*)((char*)array+element_size*j_begin), j_end-j_begin );
+        tmp = base+j_end;
+    } while( tmp<finish );
+}
+
+void concurrent_vector_base::internal_clear( internal_array_op1 destroy, bool reclaim_storage ) {
+    // Set "my_early_size" early, so that subscripting errors can be caught.
+    // FIXME - doing so may be hurting exception saftey
+    __TBB_ASSERT( my_segment, NULL );
+    size_type finish = my_early_size;
+    my_early_size = 0;
+    while( finish>0 ) {
+        segment_index_t k_old = segment_index_of(finish-1);
+        segment_t& s = my_segment[k_old];
+        __TBB_ASSERT( s.array, NULL );
+        size_type base = segment_base(k_old);
+        size_type j_end = finish-base;
+        __TBB_ASSERT( j_end, NULL );
+        (*destroy)( s.array, j_end );
+        finish = base;
+    }
+
+    // Free the arrays
+    if( reclaim_storage ) {
+        size_t k = helper::find_segment_end(*this);
+        while( k>0 ) {
+            --k;
+            segment_t& s = my_segment[k];
+            void* array = s.array;
+            s.array = NULL;
+            NFS_Free( array );
+        }
+        // Clear short segment.  
+        my_storage[0].array = NULL;
+        my_storage[1].array = NULL;
+        segment_t* s = my_segment;
+        if( s!=my_storage ) {
+            my_segment = my_storage;
+            NFS_Free( s );
+        } 
+    }
+}
+
+} // namespace internal
+
+} // tbb
diff --git a/src/tbb/em64t-masm/atomic_support.asm b/src/tbb/em64t-masm/atomic_support.asm
new file mode 100644
index 0000000..79f606a
--- /dev/null
+++ b/src/tbb/em64t-masm/atomic_support.asm
@@ -0,0 +1,80 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+; DO NOT EDIT - AUTOMATICALLY GENERATED FROM .s FILE
+.code 
+	ALIGN 8
+	PUBLIC __TBB_machine_fetchadd1
+__TBB_machine_fetchadd1:
+	mov rax,rdx
+	lock xadd [rcx],al
+	ret
+.code 
+	ALIGN 8
+	PUBLIC __TBB_machine_fetchstore1
+__TBB_machine_fetchstore1:
+	mov rax,rdx
+	lock xchg [rcx],al
+	ret
+.code 
+	ALIGN 8
+	PUBLIC __TBB_machine_cmpswp1
+__TBB_machine_cmpswp1:
+	mov rax,r8
+	lock cmpxchg [rcx],dl
+	ret
+.code 
+	ALIGN 8
+	PUBLIC __TBB_machine_fetchadd2
+__TBB_machine_fetchadd2:
+	mov rax,rdx
+	lock xadd [rcx],ax
+	ret
+.code 
+	ALIGN 8
+	PUBLIC __TBB_machine_fetchstore2
+__TBB_machine_fetchstore2:
+	mov rax,rdx
+	lock xchg [rcx],ax
+	ret
+.code 
+	ALIGN 8
+	PUBLIC __TBB_machine_cmpswp2
+__TBB_machine_cmpswp2:
+	mov rax,r8
+	lock cmpxchg [rcx],dx
+	ret
+.code
+        ALIGN 8
+        PUBLIC __TBB_machine_pause
+__TBB_machine_pause:
+L1:
+        dw 090f3H; pause
+        add ecx,-1
+        jne L1
+        ret
+end
+
diff --git a/src/tbb/em64t-tbb-mac-export.txt b/src/tbb/em64t-tbb-mac-export.txt
new file mode 100644
index 0000000..24b57ce
--- /dev/null
+++ b/src/tbb/em64t-tbb-mac-export.txt
@@ -0,0 +1,127 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# cache_aligned_allocator.cpp
+__ZN3tbb8internal12NFS_AllocateEmmPv
+__ZN3tbb8internal15NFS_GetLineSizeEv
+__ZN3tbb8internal8NFS_FreeEPv
+
+# Task.cpp
+__ZN3tbb19task_scheduler_init10initializeEi
+__ZN3tbb19task_scheduler_init9terminateEv
+__ZN3tbb4task22internal_set_ref_countEi
+__ZN3tbb4task22spawn_and_wait_for_allERNS_9task_listE
+__ZN3tbb4task4selfEv
+__ZN3tbb4task7destroyERS0_
+__ZNK3tbb4task26is_owned_by_current_threadEv
+__ZN3tbb8internal19allocate_root_proxy4freeERNS_4taskE
+__ZN3tbb8internal19allocate_root_proxy8allocateEm
+__ZNK3tbb8internal20allocate_child_proxy4freeERNS_4taskE
+__ZNK3tbb8internal20allocate_child_proxy8allocateEm
+__ZNK3tbb8internal27allocate_continuation_proxy4freeERNS_4taskE
+__ZNK3tbb8internal27allocate_continuation_proxy8allocateEm
+__ZNK3tbb8internal34allocate_additional_child_of_proxy4freeERNS_4taskE
+__ZNK3tbb8internal34allocate_additional_child_of_proxy8allocateEm
+
+# tbb_misc.cpp
+__ZN3tbb17assertion_failureEPKciS1_S1_
+__ZN3tbb21set_assertion_handlerEPFvPKciS1_S1_E
+__ZN3tbb8internal36get_initial_auto_partitioner_divisorEv
+__ZN3tbb8internal13handle_perrorEiPKc
+
+# Pipeline.cpp
+__ZTIN3tbb6filterE
+__ZTVN3tbb6filterE
+__ZN3tbb6filterD2Ev
+__ZN3tbb8pipeline10add_filterERNS_6filterE
+__ZN3tbb8pipeline12inject_tokenERNS_4taskE
+__ZN3tbb8pipeline3runEm
+__ZN3tbb8pipeline5clearEv
+__ZN3tbb8pipelineC1Ev
+__ZN3tbb8pipelineD1Ev
+
+# ReaderWriterMutex.cpp
+__ZN3tbb16queuing_rw_mutex11scoped_lock17upgrade_to_writerEv
+__ZN3tbb16queuing_rw_mutex11scoped_lock19downgrade_to_readerEv
+__ZN3tbb16queuing_rw_mutex11scoped_lock7acquireERS0_b
+__ZN3tbb16queuing_rw_mutex11scoped_lock7releaseEv
+__ZN3tbb16queuing_rw_mutex11scoped_lock11try_acquireERS0_b
+
+# spin_rw_mutex.cpp
+__ZN3tbb13spin_rw_mutex16internal_upgradeEPS0_
+__ZN3tbb13spin_rw_mutex22internal_itt_releasingEPS0_
+__ZN3tbb13spin_rw_mutex23internal_acquire_readerEPS0_
+__ZN3tbb13spin_rw_mutex23internal_acquire_writerEPS0_
+__ZN3tbb13spin_rw_mutex18internal_downgradeEPS0_
+__ZN3tbb13spin_rw_mutex23internal_release_readerEPS0_
+__ZN3tbb13spin_rw_mutex23internal_release_writerEPS0_
+__ZN3tbb13spin_rw_mutex27internal_try_acquire_readerEPS0_
+__ZN3tbb13spin_rw_mutex27internal_try_acquire_writerEPS0_
+
+# SpinMutex.cpp
+__ZN3tbb10spin_mutex11scoped_lock16internal_acquireERS0_
+__ZN3tbb10spin_mutex11scoped_lock16internal_releaseEv
+__ZN3tbb10spin_mutex11scoped_lock20internal_try_acquireERS0_
+
+# mutex.cpp
+__ZN3tbb5mutex11scoped_lock16internal_acquireERS0_
+__ZN3tbb5mutex11scoped_lock16internal_releaseEv
+__ZN3tbb5mutex11scoped_lock20internal_try_acquireERS0_
+__ZN3tbb5mutex16internal_destroyEv
+__ZN3tbb5mutex18internal_constructEv
+
+# QueuingMutex.cpp
+__ZN3tbb13queuing_mutex11scoped_lock7acquireERS0_
+__ZN3tbb13queuing_mutex11scoped_lock7releaseEv
+__ZN3tbb13queuing_mutex11scoped_lock11try_acquireERS0_
+
+# concurrent_hash_map
+__ZNK3tbb8internal21hash_map_segment_base23internal_grow_predicateEv
+
+# ConcurrentQueue.cpp
+__ZN3tbb8internal21concurrent_queue_base12internal_popEPv
+__ZN3tbb8internal21concurrent_queue_base13internal_pushEPKv
+__ZN3tbb8internal21concurrent_queue_base21internal_set_capacityElm
+__ZN3tbb8internal21concurrent_queue_base23internal_pop_if_presentEPv
+__ZN3tbb8internal21concurrent_queue_base25internal_push_if_not_fullEPKv
+__ZN3tbb8internal21concurrent_queue_baseC2Em
+__ZN3tbb8internal21concurrent_queue_baseD2Ev
+__ZTIN3tbb8internal21concurrent_queue_baseE
+__ZN3tbb8internal30concurrent_queue_iterator_base6assignERKS1_
+__ZN3tbb8internal30concurrent_queue_iterator_base7advanceEv
+__ZN3tbb8internal30concurrent_queue_iterator_baseC2ERKNS0_21concurrent_queue_baseE
+__ZN3tbb8internal30concurrent_queue_iterator_baseD2Ev
+__ZNK3tbb8internal21concurrent_queue_base13internal_sizeEv
+
+# ConcurrentVector.cpp
+__ZN3tbb8internal22concurrent_vector_base13internal_copyERKS1_mPFvPvPKvmE
+__ZN3tbb8internal22concurrent_vector_base14internal_clearEPFvPvmEb
+__ZN3tbb8internal22concurrent_vector_base15internal_assignERKS1_mPFvPvmEPFvS4_PKvmESA_
+__ZN3tbb8internal22concurrent_vector_base16internal_grow_byEmmPFvPvmE
+__ZN3tbb8internal22concurrent_vector_base16internal_reserveEmmm
+__ZN3tbb8internal22concurrent_vector_base18internal_push_backEmRm
+__ZN3tbb8internal22concurrent_vector_base25internal_grow_to_at_leastEmmPFvPvmE
+__ZNK3tbb8internal22concurrent_vector_base17internal_capacityEv
diff --git a/src/tbb/em64t-tbb.def b/src/tbb/em64t-tbb.def
new file mode 100644
index 0000000..989a6d1
--- /dev/null
+++ b/src/tbb/em64t-tbb.def
@@ -0,0 +1,139 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+; This file is organized with a section for each .cpp file.
+; Each of these sections is in alphabetical order.
+
+EXPORTS
+
+; Assembly-language support that is called directly by clients
+__TBB_machine_cmpswp1
+__TBB_machine_fetchadd1
+__TBB_machine_fetchstore1
+__TBB_machine_cmpswp2
+__TBB_machine_fetchadd2
+__TBB_machine_fetchstore2
+__TBB_machine_pause
+
+; cache_aligned_allocator.cpp
+?NFS_Allocate at internal@tbb@@YAPEAX_K0PEAX at Z
+?NFS_GetLineSize at internal@tbb@@YA_KXZ
+?NFS_Free at internal@tbb@@YAXPEAX at Z
+
+; task.cpp
+?allocate at allocate_additional_child_of_proxy@internal at tbb@@QEBAAEAVtask at 3@_K at Z
+?allocate at allocate_child_proxy@internal at tbb@@QEBAAEAVtask at 3@_K at Z
+?allocate at allocate_continuation_proxy@internal at tbb@@QEBAAEAVtask at 3@_K at Z
+?allocate at allocate_root_proxy@internal at tbb@@SAAEAVtask at 3@_K at Z
+?destroy at task@tbb@@QEAAXAEAV12@@Z
+?free at allocate_additional_child_of_proxy@internal at tbb@@QEBAXAEAVtask at 3@@Z
+?free at allocate_child_proxy@internal at tbb@@QEBAXAEAVtask at 3@@Z
+?free at allocate_continuation_proxy@internal at tbb@@QEBAXAEAVtask at 3@@Z
+?free at allocate_root_proxy@internal at tbb@@SAXAEAVtask at 3@@Z
+?initialize at task_scheduler_init@tbb@@QEAAXH at Z
+?internal_set_ref_count at task@tbb@@AEAAXH at Z
+?is_owned_by_current_thread at task@tbb@@QEBA_NXZ
+?self at task@tbb@@SAAEAV12 at XZ
+?spawn_and_wait_for_all at task@tbb@@QEAAXAEAVtask_list at 2@@Z
+?terminate at task_scheduler_init@tbb@@QEAAXXZ
+
+; tbb_misc.cpp
+?assertion_failure at tbb@@YAXPEBDH00 at Z
+?get_initial_auto_partitioner_divisor at internal@tbb@@YA_KXZ
+?handle_perror at internal@tbb@@YAXHPEBD at Z
+?set_assertion_handler at tbb@@YAP6AXPEBDH00 at ZP6AX0H00@Z at Z
+
+; pipeline.cpp
+??_7pipeline at tbb@@6B@
+??0pipeline at tbb@@QEAA at XZ
+??1filter at tbb@@UEAA at XZ
+??1pipeline at tbb@@UEAA at XZ
+?add_filter at pipeline@tbb@@QEAAXAEAVfilter at 2@@Z
+?clear at pipeline@tbb@@QEAAXXZ
+?inject_token at pipeline@tbb@@AEAAXAEAVtask at 2@@Z
+?run at pipeline@tbb@@QEAAX_K at Z
+
+; queuing_rw_mutex.cpp
+?acquire at scoped_lock@queuing_rw_mutex at tbb@@QEAAXAEAV23 at _N@Z
+?downgrade_to_reader at scoped_lock@queuing_rw_mutex at tbb@@QEAA_NXZ
+?release at scoped_lock@queuing_rw_mutex at tbb@@QEAAXXZ
+?upgrade_to_writer at scoped_lock@queuing_rw_mutex at tbb@@QEAA_NXZ
+?try_acquire at scoped_lock@queuing_rw_mutex at tbb@@QEAA_NAEAV23 at _N@Z
+
+; spin_rw_mutex.cpp
+?internal_itt_releasing at spin_rw_mutex@tbb@@CAXPEAV12@@Z
+?internal_acquire_writer at spin_rw_mutex@tbb@@CA_NPEAV12@@Z
+?internal_acquire_reader at spin_rw_mutex@tbb@@CAXPEAV12@@Z
+?internal_downgrade at spin_rw_mutex@tbb@@CAXPEAV12@@Z
+?internal_upgrade at spin_rw_mutex@tbb@@CA_NPEAV12@@Z
+?internal_release_reader at spin_rw_mutex@tbb@@CAXPEAV12@@Z
+?internal_release_writer at spin_rw_mutex@tbb@@CAXPEAV12@@Z
+?internal_try_acquire_writer at spin_rw_mutex@tbb@@CA_NPEAV12@@Z
+?internal_try_acquire_reader at spin_rw_mutex@tbb@@CA_NPEAV12@@Z
+
+; spin_mutex.cpp
+?internal_acquire at scoped_lock@spin_mutex at tbb@@AEAAXAEAV23@@Z
+?internal_release at scoped_lock@spin_mutex at tbb@@AEAAXXZ
+?internal_try_acquire at scoped_lock@spin_mutex at tbb@@AEAA_NAEAV23@@Z
+
+; mutex.cpp
+?internal_acquire at scoped_lock@mutex at tbb@@AEAAXAEAV23@@Z
+?internal_release at scoped_lock@mutex at tbb@@AEAAXXZ
+?internal_try_acquire at scoped_lock@mutex at tbb@@AEAA_NAEAV23@@Z
+?internal_construct at mutex@tbb@@AEAAXXZ
+?internal_destroy at mutex@tbb@@AEAAXXZ
+
+; queuing_mutex.cpp
+?acquire at scoped_lock@queuing_mutex at tbb@@QEAAXAEAV23@@Z
+?release at scoped_lock@queuing_mutex at tbb@@QEAAXXZ
+?try_acquire at scoped_lock@queuing_mutex at tbb@@QEAA_NAEAV23@@Z
+
+; concurrent_hash_map.cpp
+?internal_grow_predicate at hash_map_segment_base@internal at tbb@@QEBA_NXZ
+
+; ConcurrentQueue.cpp
+??0concurrent_queue_base at internal@tbb@@IEAA at _K@Z
+??0concurrent_queue_iterator_base at internal@tbb@@IEAA at AEBVconcurrent_queue_base@12@@Z
+??1concurrent_queue_base at internal@tbb@@MEAA at XZ
+??1concurrent_queue_iterator_base at internal@tbb@@IEAA at XZ
+?advance at concurrent_queue_iterator_base@internal at tbb@@IEAAXXZ
+?assign at concurrent_queue_iterator_base@internal at tbb@@IEAAXAEBV123@@Z
+?internal_pop at concurrent_queue_base@internal at tbb@@IEAAXPEAX at Z
+?internal_pop_if_present at concurrent_queue_base@internal at tbb@@IEAA_NPEAX at Z
+?internal_push at concurrent_queue_base@internal at tbb@@IEAAXPEBX at Z
+?internal_push_if_not_full at concurrent_queue_base@internal at tbb@@IEAA_NPEBX at Z
+?internal_set_capacity at concurrent_queue_base@internal at tbb@@IEAAX_J_K at Z
+?internal_size at concurrent_queue_base@internal at tbb@@IEBA_JXZ
+
+; ConcurrentVector.cpp
+?internal_assign at concurrent_vector_base@internal at tbb@@IEAAXAEBV123 at _KP6AXPEAX1@ZP6AX2PEBX1 at Z5@Z
+?internal_capacity at concurrent_vector_base@internal at tbb@@IEBA_KXZ
+?internal_clear at concurrent_vector_base@internal at tbb@@IEAAXP6AXPEAX_K at Z_N@Z
+?internal_copy at concurrent_vector_base@internal at tbb@@IEAAXAEBV123 at _KP6AXPEAXPEBX1@Z at Z
+?internal_grow_by at concurrent_vector_base@internal at tbb@@IEAA_K_K0P6AXPEAX0 at Z@Z
+?internal_grow_to_at_least at concurrent_vector_base@internal at tbb@@IEAAX_K0P6AXPEAX0 at Z@Z
+?internal_push_back at concurrent_vector_base@internal at tbb@@IEAAPEAX_KAEA_K at Z
+?internal_reserve at concurrent_vector_base@internal at tbb@@IEAAX_K00 at Z
diff --git a/src/tbb/gate.h b/src/tbb/gate.h
new file mode 100644
index 0000000..c6b92f1
--- /dev/null
+++ b/src/tbb/gate.h
@@ -0,0 +1,224 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _TBB_Gate_H
+#define _TBB_Gate_H
+
+#define IMPROVED_GATING 0
+namespace tbb {
+
+namespace internal {
+
+#if NO_GATE
+
+//! Dummy implementation for experiments
+class Gate {
+public:
+    void open() {}
+    void close() {}
+    void wait() {}
+};
+
+#elif USE_WINTHREAD
+
+class Gate {
+#if IMPROVED_GATING
+public:
+    typedef intptr state_t;
+private:
+    //! If state==0, then thread executing wait() suspend until state becomes non-zero.
+    state_t state;
+#else
+    intptr count;
+#endif /* IMPROVED_GATING */
+    CRITICAL_SECTION critical_section;
+    HANDLE event;
+public:
+    //! Initialize with count=0
+    Gate() :   
+#if IMPROVED_GATING
+    state(0) 
+#else
+    count(0) 
+#endif /* IMPROVED_GATING */
+    {
+        event = CreateEvent( NULL, true, false, NULL );
+        InitializeCriticalSection( &critical_section );
+    }
+    ~Gate() {
+#if !IMPROVED_GATING
+        __TBB_ASSERT( count==0, NULL );
+#endif /* !IMPROVED_GATING */
+        CloseHandle( event );
+        DeleteCriticalSection( &critical_section );
+    }
+#if IMPROVED_GATING
+    //! Get current state of gate
+    state_t get_state() const {
+        return state;
+    }
+    //! Update state=value if state==comparand (flip==false) or state!=comparand (flip==true)
+    void try_update( intptr value, intptr comparand, bool flip=false ) {
+        __TBB_ASSERT( comparand!=0 || value!=0, "either value or comparand must be non-zero" );
+        EnterCriticalSection( &critical_section );
+        state_t old = state;
+        if( flip ? old!=comparand : old==comparand ) {
+            state = value;
+            if( !old )
+                SetEvent( event );
+            else if( !value )
+                ResetEvent( event );
+        }
+        LeaveCriticalSection( &critical_section );
+    }
+    //! Wait for state!=0.
+    void wait() {
+        if( state==0 ) {
+            WaitForSingleObject( event, INFINITE );
+        }
+    }
+#else /* IMPROVED_GATING */
+    //! Increment count
+    void open() {
+        EnterCriticalSection( &critical_section );
+        if( ++count==1 )
+            SetEvent( event );
+        LeaveCriticalSection( &critical_section );
+    }
+    //! Decrement count
+    void close() {
+        EnterCriticalSection( &critical_section );
+        if( --count==0 )
+            ResetEvent( event );
+        LeaveCriticalSection( &critical_section );
+    }
+    //! Wait for count>0.
+    void wait() {
+        if( count==0 )
+            WaitForSingleObject( event, INFINITE );
+    }
+#endif /* IMPROVED_GATING */
+};
+
+#elif USE_PTHREAD
+
+class Gate {
+#if IMPROVED_GATING
+public:
+    typedef intptr state_t;
+private:
+    //! If state==0, then thread executing wait() suspend until state becomes non-zero.
+    state_t state;
+#else
+    intptr count;
+#endif /* IMPROVED_GATING */
+    pthread_mutex_t mutex;
+    pthread_cond_t cond;
+public:
+    //! Initialize with count=0
+    Gate() :   
+#if IMPROVED_GATING
+    state(0)
+#else
+    count(0)
+#endif /* IMPROVED_GATING */
+    {
+        pthread_mutex_init( &mutex, NULL );
+        pthread_cond_init( &cond, NULL);
+    }
+    ~Gate() {
+#if !IMPROVED_GATING
+        __TBB_ASSERT( count==0, NULL );
+#endif /* !IMPROVED_GATING */
+        pthread_cond_destroy( &cond );
+        pthread_mutex_destroy( &mutex );
+    }
+#if IMPROVED_GATING
+    //! Get current state of gate
+    state_t get_state() const {
+        return state;
+    }
+    //! Update state=value if state==comparand (flip==false) or state!=comparand (flip==true)
+    void try_update( intptr value, intptr comparand, bool flip=false ) {
+        __TBB_ASSERT( comparand!=0 || value!=0, "either value or comparand must be non-zero" );
+        pthread_mutex_lock( &mutex );
+        state_t old = state;
+        if( flip ? old!=comparand : old==comparand ) {
+            state = value;
+            if( !old )
+                pthread_cond_broadcast( &cond );
+        }
+        pthread_mutex_unlock( &mutex );
+    }
+    //! Wait for state!=0.
+    void wait() {
+        if( state==0 ) {
+            pthread_mutex_lock( &mutex );
+            while( state==0 ) {
+                pthread_cond_wait( &cond, &mutex );
+            }
+            pthread_mutex_unlock( &mutex );
+        }
+    }
+#else /* IMPROVED_GATING */
+    //! Increment count
+    void open() {
+        pthread_mutex_lock( &mutex );
+        if( ++count==1 )
+            pthread_cond_broadcast( &cond );
+        pthread_mutex_unlock( &mutex );
+    }
+    //! Decrement count
+    void close() {
+        pthread_mutex_lock( &mutex );
+        __TBB_ASSERT( count>0, NULL );
+        --count;
+        pthread_mutex_unlock( &mutex );
+    }
+    //! Wait for count>0.
+    void wait() {
+        if( count==0 ) {
+            pthread_mutex_lock( &mutex );
+            while( count==0 ) {
+                pthread_cond_wait( &cond, &mutex );
+            }
+            pthread_mutex_unlock( &mutex );
+        }
+    }
+#endif /* IMPROVED_GATING */
+};
+
+#else
+#error Must define USE_PTHREAD or USE_WINTHREAD
+#endif  /* threading kind */
+
+} // namespace Internal
+
+} // namespace ThreadingBuildingBlocks
+
+#endif /* _TBB_Gate_H */
diff --git a/src/tbb/ia32-masm/atomic_support.asm b/src/tbb/ia32-masm/atomic_support.asm
new file mode 100644
index 0000000..a733745
--- /dev/null
+++ b/src/tbb/ia32-masm/atomic_support.asm
@@ -0,0 +1,176 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+; DO NOT EDIT - AUTOMATICALLY GENERATED FROM .s FILE
+.686
+.model flat,c
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchadd1
+__TBB_machine_fetchadd1:
+	mov edx,4[esp]
+	mov eax,8[esp]
+	lock xadd [edx],al
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchstore1
+__TBB_machine_fetchstore1:
+	mov edx,4[esp]
+	mov eax,8[esp]
+	lock xchg [edx],al
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_cmpswp1
+__TBB_machine_cmpswp1:
+	mov edx,4[esp]
+	mov ecx,8[esp]
+	mov eax,12[esp]
+	lock cmpxchg [edx],cl
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchadd2
+__TBB_machine_fetchadd2:
+	mov edx,4[esp]
+	mov eax,8[esp]
+	lock xadd [edx],ax
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchstore2
+__TBB_machine_fetchstore2:
+	mov edx,4[esp]
+	mov eax,8[esp]
+	lock xchg [edx],ax
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_cmpswp2
+__TBB_machine_cmpswp2:
+	mov edx,4[esp]
+	mov ecx,8[esp]
+	mov eax,12[esp]
+	lock cmpxchg [edx],cx
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchadd4
+__TBB_machine_fetchadd4:
+	mov edx,4[esp]
+	mov eax,8[esp]
+	lock xadd [edx],eax
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchstore4
+__TBB_machine_fetchstore4:
+	mov edx,4[esp]
+	mov eax,8[esp]
+	lock xchg [edx],eax
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_cmpswp4
+__TBB_machine_cmpswp4:
+	mov edx,4[esp]
+	mov ecx,8[esp]
+	mov eax,12[esp]
+	lock cmpxchg [edx],ecx
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchadd8
+__TBB_machine_fetchadd8:
+	push ebx
+	push edi
+	mov edi,12[esp]
+	mov eax,[edi]
+	mov edx,4[edi]
+__TBB_machine_fetchadd8_loop:
+	mov ebx,16[esp]
+	mov ecx,20[esp]
+	add ebx,eax
+	adc ecx,edx
+	lock cmpxchg8b qword ptr [edi]
+	jnz __TBB_machine_fetchadd8_loop
+	pop edi
+	pop ebx
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_fetchstore8
+__TBB_machine_fetchstore8:
+	push ebx
+	push edi
+	mov edi,12[esp]
+	mov ebx,16[esp]
+	mov ecx,20[esp]
+	mov eax,[edi]
+	mov edx,4[edi]
+__TBB_machine_fetchstore8_loop:
+	lock cmpxchg8b qword ptr [edi]
+	jnz __TBB_machine_fetchstore8_loop
+	pop edi
+	pop ebx
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_cmpswp8
+__TBB_machine_cmpswp8:
+	push ebx
+	push edi
+	mov edi,12[esp]
+	mov ebx,16[esp]
+	mov ecx,20[esp]
+	mov eax,24[esp]
+	mov edx,28[esp]
+	lock cmpxchg8b qword ptr [edi]
+	pop edi
+	pop ebx
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_load8
+__TBB_machine_Load8:
+	sub esp,12
+	mov ecx,16[esp]
+	fild qword ptr [ecx]
+	fistp qword ptr [esp]
+	mov eax,[esp]
+	mov edx,4[esp]
+	add esp,12
+	ret
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_store8
+__TBB_machine_Store8:
+	mov ecx,4[esp]
+	fild qword ptr 8[esp]
+	fistp qword ptr [ecx]
+	ret
+end
diff --git a/src/tbb/ia32-masm/lock_byte.asm b/src/tbb/ia32-masm/lock_byte.asm
new file mode 100644
index 0000000..f8517f3
--- /dev/null
+++ b/src/tbb/ia32-masm/lock_byte.asm
@@ -0,0 +1,46 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+; DO NOT EDIT - AUTOMATICALLY GENERATED FROM .s FILE
+.686
+.model flat,c
+.code 
+	ALIGN 4
+	PUBLIC c __TBB_machine_trylockbyte
+__TBB_machine_trylockbyte:
+	mov edx,4[esp]
+	mov al,[edx]
+	mov cl,1
+	test al,1
+	jnz __TBB_machine_trylockbyte_contended
+	lock cmpxchg [edx],cl
+	jne __TBB_machine_trylockbyte_contended
+	mov eax,1
+	ret
+__TBB_machine_trylockbyte_contended:
+	xor eax,eax
+	ret
+end
diff --git a/src/tbb/ia32-tbb-mac-export.txt b/src/tbb/ia32-tbb-mac-export.txt
new file mode 100644
index 0000000..a7cdc6a
--- /dev/null
+++ b/src/tbb/ia32-tbb-mac-export.txt
@@ -0,0 +1,127 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# cache_aligned_allocator.cpp
+__ZN3tbb8internal12NFS_AllocateEmmPv
+__ZN3tbb8internal15NFS_GetLineSizeEv
+__ZN3tbb8internal8NFS_FreeEPv
+
+# Task.cpp
+__ZN3tbb19task_scheduler_init10initializeEi
+__ZN3tbb19task_scheduler_init9terminateEv
+__ZN3tbb4task22internal_set_ref_countEi
+__ZN3tbb4task22spawn_and_wait_for_allERNS_9task_listE
+__ZN3tbb4task4selfEv
+__ZN3tbb4task7destroyERS0_
+__ZNK3tbb4task26is_owned_by_current_threadEv
+__ZN3tbb8internal19allocate_root_proxy4freeERNS_4taskE
+__ZN3tbb8internal19allocate_root_proxy8allocateEm
+__ZNK3tbb8internal20allocate_child_proxy4freeERNS_4taskE
+__ZNK3tbb8internal20allocate_child_proxy8allocateEm
+__ZNK3tbb8internal27allocate_continuation_proxy4freeERNS_4taskE
+__ZNK3tbb8internal27allocate_continuation_proxy8allocateEm
+__ZNK3tbb8internal34allocate_additional_child_of_proxy4freeERNS_4taskE
+__ZNK3tbb8internal34allocate_additional_child_of_proxy8allocateEm
+
+# tbb_misc.cpp
+__ZN3tbb17assertion_failureEPKciS1_S1_
+__ZN3tbb21set_assertion_handlerEPFvPKciS1_S1_E
+__ZN3tbb8internal36get_initial_auto_partitioner_divisorEv
+__ZN3tbb8internal13handle_perrorEiPKc
+
+# Pipeline.cpp
+__ZTIN3tbb6filterE
+__ZTVN3tbb6filterE
+__ZN3tbb6filterD2Ev
+__ZN3tbb8pipeline10add_filterERNS_6filterE
+__ZN3tbb8pipeline12inject_tokenERNS_4taskE
+__ZN3tbb8pipeline3runEm
+__ZN3tbb8pipeline5clearEv
+__ZN3tbb8pipelineC1Ev
+__ZN3tbb8pipelineD1Ev
+
+# ReaderWriterMutex.cpp
+__ZN3tbb16queuing_rw_mutex11scoped_lock17upgrade_to_writerEv
+__ZN3tbb16queuing_rw_mutex11scoped_lock19downgrade_to_readerEv
+__ZN3tbb16queuing_rw_mutex11scoped_lock7acquireERS0_b
+__ZN3tbb16queuing_rw_mutex11scoped_lock7releaseEv
+__ZN3tbb16queuing_rw_mutex11scoped_lock11try_acquireERS0_b
+
+# spin_rw_mutex.cpp
+__ZN3tbb13spin_rw_mutex16internal_upgradeEPS0_
+__ZN3tbb13spin_rw_mutex22internal_itt_releasingEPS0_
+__ZN3tbb13spin_rw_mutex23internal_acquire_readerEPS0_
+__ZN3tbb13spin_rw_mutex23internal_acquire_writerEPS0_
+__ZN3tbb13spin_rw_mutex18internal_downgradeEPS0_
+__ZN3tbb13spin_rw_mutex23internal_release_readerEPS0_
+__ZN3tbb13spin_rw_mutex23internal_release_writerEPS0_
+__ZN3tbb13spin_rw_mutex27internal_try_acquire_readerEPS0_
+__ZN3tbb13spin_rw_mutex27internal_try_acquire_writerEPS0_
+
+# SpinMutex.cpp
+__ZN3tbb10spin_mutex11scoped_lock16internal_acquireERS0_
+__ZN3tbb10spin_mutex11scoped_lock16internal_releaseEv
+__ZN3tbb10spin_mutex11scoped_lock20internal_try_acquireERS0_
+
+# mutex.cpp
+__ZN3tbb5mutex11scoped_lock16internal_acquireERS0_
+__ZN3tbb5mutex11scoped_lock16internal_releaseEv
+__ZN3tbb5mutex11scoped_lock20internal_try_acquireERS0_
+__ZN3tbb5mutex16internal_destroyEv
+__ZN3tbb5mutex18internal_constructEv
+
+# QueuingMutex.cpp
+__ZN3tbb13queuing_mutex11scoped_lock7acquireERS0_
+__ZN3tbb13queuing_mutex11scoped_lock7releaseEv
+__ZN3tbb13queuing_mutex11scoped_lock11try_acquireERS0_
+
+# concurrent_hash_map
+__ZNK3tbb8internal21hash_map_segment_base23internal_grow_predicateEv
+
+# ConcurrentQueue.cpp
+__ZN3tbb8internal21concurrent_queue_base12internal_popEPv
+__ZN3tbb8internal21concurrent_queue_base13internal_pushEPKv
+__ZN3tbb8internal21concurrent_queue_base21internal_set_capacityEim
+__ZN3tbb8internal21concurrent_queue_base23internal_pop_if_presentEPv
+__ZN3tbb8internal21concurrent_queue_base25internal_push_if_not_fullEPKv
+__ZN3tbb8internal21concurrent_queue_baseC2Em
+__ZN3tbb8internal21concurrent_queue_baseD2Ev
+__ZTIN3tbb8internal21concurrent_queue_baseE
+__ZN3tbb8internal30concurrent_queue_iterator_base6assignERKS1_
+__ZN3tbb8internal30concurrent_queue_iterator_base7advanceEv
+__ZN3tbb8internal30concurrent_queue_iterator_baseC2ERKNS0_21concurrent_queue_baseE
+__ZN3tbb8internal30concurrent_queue_iterator_baseD2Ev
+__ZNK3tbb8internal21concurrent_queue_base13internal_sizeEv
+
+# ConcurrentVector.cpp
+__ZN3tbb8internal22concurrent_vector_base13internal_copyERKS1_mPFvPvPKvmE
+__ZN3tbb8internal22concurrent_vector_base14internal_clearEPFvPvmEb
+__ZN3tbb8internal22concurrent_vector_base15internal_assignERKS1_mPFvPvmEPFvS4_PKvmESA_
+__ZN3tbb8internal22concurrent_vector_base16internal_grow_byEmmPFvPvmE
+__ZN3tbb8internal22concurrent_vector_base16internal_reserveEmmm
+__ZN3tbb8internal22concurrent_vector_base18internal_push_backEmRm
+__ZN3tbb8internal22concurrent_vector_base25internal_grow_to_at_leastEmmPFvPvmE
+__ZNK3tbb8internal22concurrent_vector_base17internal_capacityEv
diff --git a/src/tbb/ia32-tbb.def b/src/tbb/ia32-tbb.def
new file mode 100644
index 0000000..4ea0ee3
--- /dev/null
+++ b/src/tbb/ia32-tbb.def
@@ -0,0 +1,145 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+EXPORTS
+
+; Assembly-language support that is called directly by clients
+;__TBB_machine_cmpswp1
+;__TBB_machine_cmpswp2
+;__TBB_machine_cmpswp4
+__TBB_machine_cmpswp8
+;__TBB_machine_fetchadd1
+;__TBB_machine_fetchadd2
+;__TBB_machine_fetchadd4
+__TBB_machine_fetchadd8
+;__TBB_machine_fetchstore1
+;__TBB_machine_fetchstore2
+;__TBB_machine_fetchstore4
+__TBB_machine_fetchstore8
+__TBB_machine_store8
+__TBB_machine_load8
+__TBB_machine_trylockbyte
+
+; cache_aligned_allocator.cpp
+?NFS_Allocate at internal@tbb@@YAPAXIIPAX at Z
+?NFS_GetLineSize at internal@tbb@@YAIXZ
+?NFS_Free at internal@tbb@@YAXPAX at Z
+
+; task.cpp
+?allocate at allocate_additional_child_of_proxy@internal at tbb@@QBEAAVtask at 3@I at Z
+?allocate at allocate_child_proxy@internal at tbb@@QBEAAVtask at 3@I at Z
+?allocate at allocate_continuation_proxy@internal at tbb@@QBEAAVtask at 3@I at Z
+?allocate at allocate_root_proxy@internal at tbb@@SAAAVtask at 3@I at Z
+?destroy at task@tbb@@QAEXAAV12@@Z
+?free at allocate_additional_child_of_proxy@internal at tbb@@QBEXAAVtask at 3@@Z
+?free at allocate_child_proxy@internal at tbb@@QBEXAAVtask at 3@@Z
+?free at allocate_continuation_proxy@internal at tbb@@QBEXAAVtask at 3@@Z
+?free at allocate_root_proxy@internal at tbb@@SAXAAVtask at 3@@Z
+?initialize at task_scheduler_init@tbb@@QAEXH at Z
+?internal_set_ref_count at task@tbb@@AAEXH at Z
+?is_owned_by_current_thread at task@tbb@@QBE_NXZ
+?self at task@tbb@@SAAAV12 at XZ
+?spawn_and_wait_for_all at task@tbb@@QAEXAAVtask_list at 2@@Z
+?terminate at task_scheduler_init@tbb@@QAEXXZ
+
+; tbb_misc.cpp
+?assertion_failure at tbb@@YAXPBDH00 at Z
+?get_initial_auto_partitioner_divisor at internal@tbb@@YAIXZ
+?handle_perror at internal@tbb@@YAXHPBD at Z
+?set_assertion_handler at tbb@@YAP6AXPBDH00 at ZP6AX0H00@Z at Z
+
+; pipeline.cpp
+??0pipeline at tbb@@QAE at XZ
+??1filter at tbb@@UAE at XZ
+??1pipeline at tbb@@UAE at XZ
+??_7pipeline at tbb@@6B@
+?add_filter at pipeline@tbb@@QAEXAAVfilter at 2@@Z
+?clear at pipeline@tbb@@QAEXXZ
+?inject_token at pipeline@tbb@@AAEXAAVtask at 2@@Z
+?run at pipeline@tbb@@QAEXI at Z
+
+; queuing_rw_mutex.cpp
+?acquire at scoped_lock@queuing_rw_mutex at tbb@@QAEXAAV23 at _N@Z
+?downgrade_to_reader at scoped_lock@queuing_rw_mutex at tbb@@QAE_NXZ
+?release at scoped_lock@queuing_rw_mutex at tbb@@QAEXXZ
+?upgrade_to_writer at scoped_lock@queuing_rw_mutex at tbb@@QAE_NXZ
+?try_acquire at scoped_lock@queuing_rw_mutex at tbb@@QAE_NAAV23 at _N@Z
+
+; spin_rw_mutex.cpp
+?internal_acquire_reader at spin_rw_mutex@tbb@@CAXPAV12@@Z
+?internal_acquire_writer at spin_rw_mutex@tbb@@CA_NPAV12@@Z
+?internal_downgrade at spin_rw_mutex@tbb@@CAXPAV12@@Z
+?internal_itt_releasing at spin_rw_mutex@tbb@@CAXPAV12@@Z
+?internal_release_reader at spin_rw_mutex@tbb@@CAXPAV12@@Z
+?internal_release_writer at spin_rw_mutex@tbb@@CAXPAV12@@Z
+?internal_upgrade at spin_rw_mutex@tbb@@CA_NPAV12@@Z
+?internal_try_acquire_writer at spin_rw_mutex@tbb@@CA_NPAV12@@Z
+?internal_try_acquire_reader at spin_rw_mutex@tbb@@CA_NPAV12@@Z
+
+; spin_mutex.cpp
+?internal_acquire at scoped_lock@spin_mutex at tbb@@AAEXAAV23@@Z
+?internal_release at scoped_lock@spin_mutex at tbb@@AAEXXZ
+?internal_try_acquire at scoped_lock@spin_mutex at tbb@@AAE_NAAV23@@Z
+
+; mutex.cpp
+?internal_acquire at scoped_lock@mutex at tbb@@AAEXAAV23@@Z
+?internal_release at scoped_lock@mutex at tbb@@AAEXXZ
+?internal_try_acquire at scoped_lock@mutex at tbb@@AAE_NAAV23@@Z
+?internal_construct at mutex@tbb@@AAEXXZ
+?internal_destroy at mutex@tbb@@AAEXXZ
+
+; queuing_mutex.cpp
+?acquire at scoped_lock@queuing_mutex at tbb@@QAEXAAV23@@Z
+?release at scoped_lock@queuing_mutex at tbb@@QAEXXZ
+?try_acquire at scoped_lock@queuing_mutex at tbb@@QAE_NAAV23@@Z
+
+; concurrent_hash_map.cpp
+?internal_grow_predicate at hash_map_segment_base@internal at tbb@@QBE_NXZ
+
+; ConcurrentQueue.cpp
+?advance at concurrent_queue_iterator_base@internal at tbb@@IAEXXZ
+?assign at concurrent_queue_iterator_base@internal at tbb@@IAEXABV123@@Z
+?internal_size at concurrent_queue_base@internal at tbb@@IBEHXZ
+??0concurrent_queue_base at internal@tbb@@IAE at I@Z
+??0concurrent_queue_iterator_base at internal@tbb@@IAE at ABVconcurrent_queue_base@12@@Z
+??1concurrent_queue_base at internal@tbb@@MAE at XZ
+??1concurrent_queue_iterator_base at internal@tbb@@IAE at XZ
+?internal_pop at concurrent_queue_base@internal at tbb@@IAEXPAX at Z
+?internal_pop_if_present at concurrent_queue_base@internal at tbb@@IAE_NPAX at Z
+?internal_push at concurrent_queue_base@internal at tbb@@IAEXPBX at Z
+?internal_push_if_not_full at concurrent_queue_base@internal at tbb@@IAE_NPBX at Z
+?internal_set_capacity at concurrent_queue_base@internal at tbb@@IAEXHI at Z
+
+; ConcurrentVector.cpp
+?internal_assign at concurrent_vector_base@internal at tbb@@IAEXABV123 at IP6AXPAXI@ZP6AX1PBXI at Z4@Z
+?internal_capacity at concurrent_vector_base@internal at tbb@@IBEIXZ
+?internal_clear at concurrent_vector_base@internal at tbb@@IAEXP6AXPAXI at Z_N@Z
+?internal_copy at concurrent_vector_base@internal at tbb@@IAEXABV123 at IP6AXPAXPBXI@Z at Z
+?internal_grow_by at concurrent_vector_base@internal at tbb@@IAEIIIP6AXPAXI at Z@Z
+?internal_grow_to_at_least at concurrent_vector_base@internal at tbb@@IAEXIIP6AXPAXI at Z@Z
+?internal_push_back at concurrent_vector_base@internal at tbb@@IAEPAXIAAI at Z
+?internal_reserve at concurrent_vector_base@internal at tbb@@IAEXIII at Z
+
diff --git a/src/tbb/itanium-gas/atomic_support.s b/src/tbb/itanium-gas/atomic_support.s
new file mode 100644
index 0000000..1a46462
--- /dev/null
+++ b/src/tbb/itanium-gas/atomic_support.s
@@ -0,0 +1,678 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_fetchadd1__TBB_full_fence#
+        .global __TBB_machine_fetchadd1__TBB_full_fence#
+__TBB_machine_fetchadd1__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_fetchadd1acquire
+}
+        .endp __TBB_machine_fetchadd1__TBB_full_fence#
+
+        .proc __TBB_machine_fetchadd1acquire#
+        .global __TBB_machine_fetchadd1acquire#
+__TBB_machine_fetchadd1acquire:
+
+
+
+
+
+
+
+        ld1 r9=[r32]
+;;
+Retry_1acquire:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg1.acq r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_1acquire
+        br.ret.sptk.many b0
+# 49 "<stdin>"
+        .endp __TBB_machine_fetchadd1acquire#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore1__TBB_full_fence#
+        .global __TBB_machine_fetchstore1__TBB_full_fence#
+__TBB_machine_fetchstore1__TBB_full_fence:
+        mf
+;;
+        xchg1 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore1__TBB_full_fence#
+
+
+        .proc __TBB_machine_fetchstore1acquire#
+        .global __TBB_machine_fetchstore1acquire#
+__TBB_machine_fetchstore1acquire:
+        xchg1 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore1acquire#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_cmpswp1__TBB_full_fence#
+        .global __TBB_machine_cmpswp1__TBB_full_fence#
+__TBB_machine_cmpswp1__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_cmpswp1acquire
+}
+        .endp __TBB_machine_cmpswp1__TBB_full_fence#
+
+        .proc __TBB_machine_cmpswp1acquire#
+        .global __TBB_machine_cmpswp1acquire#
+__TBB_machine_cmpswp1acquire:
+
+        zxt1 r34=r34
+;;
+
+        mov ar.ccv=r34
+;;
+        cmpxchg1.acq r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp1acquire#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_fetchadd2__TBB_full_fence#
+        .global __TBB_machine_fetchadd2__TBB_full_fence#
+__TBB_machine_fetchadd2__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_fetchadd2acquire
+}
+        .endp __TBB_machine_fetchadd2__TBB_full_fence#
+
+        .proc __TBB_machine_fetchadd2acquire#
+        .global __TBB_machine_fetchadd2acquire#
+__TBB_machine_fetchadd2acquire:
+
+
+
+
+
+
+
+        ld2 r9=[r32]
+;;
+Retry_2acquire:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg2.acq r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_2acquire
+        br.ret.sptk.many b0
+# 49 "<stdin>"
+        .endp __TBB_machine_fetchadd2acquire#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore2__TBB_full_fence#
+        .global __TBB_machine_fetchstore2__TBB_full_fence#
+__TBB_machine_fetchstore2__TBB_full_fence:
+        mf
+;;
+        xchg2 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore2__TBB_full_fence#
+
+
+        .proc __TBB_machine_fetchstore2acquire#
+        .global __TBB_machine_fetchstore2acquire#
+__TBB_machine_fetchstore2acquire:
+        xchg2 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore2acquire#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_cmpswp2__TBB_full_fence#
+        .global __TBB_machine_cmpswp2__TBB_full_fence#
+__TBB_machine_cmpswp2__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_cmpswp2acquire
+}
+        .endp __TBB_machine_cmpswp2__TBB_full_fence#
+
+        .proc __TBB_machine_cmpswp2acquire#
+        .global __TBB_machine_cmpswp2acquire#
+__TBB_machine_cmpswp2acquire:
+
+        zxt2 r34=r34
+;;
+
+        mov ar.ccv=r34
+;;
+        cmpxchg2.acq r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp2acquire#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_fetchadd4__TBB_full_fence#
+        .global __TBB_machine_fetchadd4__TBB_full_fence#
+__TBB_machine_fetchadd4__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_fetchadd4acquire
+}
+        .endp __TBB_machine_fetchadd4__TBB_full_fence#
+
+        .proc __TBB_machine_fetchadd4acquire#
+        .global __TBB_machine_fetchadd4acquire#
+__TBB_machine_fetchadd4acquire:
+
+        cmp.eq p6,p0=1,r33
+        cmp.eq p8,p0=-1,r33
+  (p6) br.cond.dptk Inc_4acquire
+  (p8) br.cond.dpnt Dec_4acquire
+;;
+
+        ld4 r9=[r32]
+;;
+Retry_4acquire:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg4.acq r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_4acquire
+        br.ret.sptk.many b0
+
+Inc_4acquire:
+        fetchadd4.acq r8=[r32],1
+        br.ret.sptk.many b0
+Dec_4acquire:
+        fetchadd4.acq r8=[r32],-1
+        br.ret.sptk.many b0
+
+        .endp __TBB_machine_fetchadd4acquire#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore4__TBB_full_fence#
+        .global __TBB_machine_fetchstore4__TBB_full_fence#
+__TBB_machine_fetchstore4__TBB_full_fence:
+        mf
+;;
+        xchg4 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore4__TBB_full_fence#
+
+
+        .proc __TBB_machine_fetchstore4acquire#
+        .global __TBB_machine_fetchstore4acquire#
+__TBB_machine_fetchstore4acquire:
+        xchg4 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore4acquire#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_cmpswp4__TBB_full_fence#
+        .global __TBB_machine_cmpswp4__TBB_full_fence#
+__TBB_machine_cmpswp4__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_cmpswp4acquire
+}
+        .endp __TBB_machine_cmpswp4__TBB_full_fence#
+
+        .proc __TBB_machine_cmpswp4acquire#
+        .global __TBB_machine_cmpswp4acquire#
+__TBB_machine_cmpswp4acquire:
+
+        zxt4 r34=r34
+;;
+
+        mov ar.ccv=r34
+;;
+        cmpxchg4.acq r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp4acquire#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_fetchadd8__TBB_full_fence#
+        .global __TBB_machine_fetchadd8__TBB_full_fence#
+__TBB_machine_fetchadd8__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_fetchadd8acquire
+}
+        .endp __TBB_machine_fetchadd8__TBB_full_fence#
+
+        .proc __TBB_machine_fetchadd8acquire#
+        .global __TBB_machine_fetchadd8acquire#
+__TBB_machine_fetchadd8acquire:
+
+        cmp.eq p6,p0=1,r33
+        cmp.eq p8,p0=-1,r33
+  (p6) br.cond.dptk Inc_8acquire
+  (p8) br.cond.dpnt Dec_8acquire
+;;
+
+        ld8 r9=[r32]
+;;
+Retry_8acquire:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg8.acq r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_8acquire
+        br.ret.sptk.many b0
+
+Inc_8acquire:
+        fetchadd8.acq r8=[r32],1
+        br.ret.sptk.many b0
+Dec_8acquire:
+        fetchadd8.acq r8=[r32],-1
+        br.ret.sptk.many b0
+
+        .endp __TBB_machine_fetchadd8acquire#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore8__TBB_full_fence#
+        .global __TBB_machine_fetchstore8__TBB_full_fence#
+__TBB_machine_fetchstore8__TBB_full_fence:
+        mf
+;;
+        xchg8 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore8__TBB_full_fence#
+
+
+        .proc __TBB_machine_fetchstore8acquire#
+        .global __TBB_machine_fetchstore8acquire#
+__TBB_machine_fetchstore8acquire:
+        xchg8 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore8acquire#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+
+
+        .proc __TBB_machine_cmpswp8__TBB_full_fence#
+        .global __TBB_machine_cmpswp8__TBB_full_fence#
+__TBB_machine_cmpswp8__TBB_full_fence:
+{
+        mf
+        br __TBB_machine_cmpswp8acquire
+}
+        .endp __TBB_machine_cmpswp8__TBB_full_fence#
+
+        .proc __TBB_machine_cmpswp8acquire#
+        .global __TBB_machine_cmpswp8acquire#
+__TBB_machine_cmpswp8acquire:
+
+
+
+
+        mov ar.ccv=r34
+;;
+        cmpxchg8.acq r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp8acquire#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+# 19 "<stdin>"
+        .proc __TBB_machine_fetchadd1release#
+        .global __TBB_machine_fetchadd1release#
+__TBB_machine_fetchadd1release:
+
+
+
+
+
+
+
+        ld1 r9=[r32]
+;;
+Retry_1release:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg1.rel r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_1release
+        br.ret.sptk.many b0
+# 49 "<stdin>"
+        .endp __TBB_machine_fetchadd1release#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore1release#
+        .global __TBB_machine_fetchstore1release#
+__TBB_machine_fetchstore1release:
+        mf
+;;
+        xchg1 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore1release#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+# 101 "<stdin>"
+        .proc __TBB_machine_cmpswp1release#
+        .global __TBB_machine_cmpswp1release#
+__TBB_machine_cmpswp1release:
+
+        zxt1 r34=r34
+;;
+
+        mov ar.ccv=r34
+;;
+        cmpxchg1.rel r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp1release#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+# 19 "<stdin>"
+        .proc __TBB_machine_fetchadd2release#
+        .global __TBB_machine_fetchadd2release#
+__TBB_machine_fetchadd2release:
+
+
+
+
+
+
+
+        ld2 r9=[r32]
+;;
+Retry_2release:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg2.rel r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_2release
+        br.ret.sptk.many b0
+# 49 "<stdin>"
+        .endp __TBB_machine_fetchadd2release#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore2release#
+        .global __TBB_machine_fetchstore2release#
+__TBB_machine_fetchstore2release:
+        mf
+;;
+        xchg2 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore2release#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+# 101 "<stdin>"
+        .proc __TBB_machine_cmpswp2release#
+        .global __TBB_machine_cmpswp2release#
+__TBB_machine_cmpswp2release:
+
+        zxt2 r34=r34
+;;
+
+        mov ar.ccv=r34
+;;
+        cmpxchg2.rel r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp2release#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+# 19 "<stdin>"
+        .proc __TBB_machine_fetchadd4release#
+        .global __TBB_machine_fetchadd4release#
+__TBB_machine_fetchadd4release:
+
+        cmp.eq p6,p0=1,r33
+        cmp.eq p8,p0=-1,r33
+  (p6) br.cond.dptk Inc_4release
+  (p8) br.cond.dpnt Dec_4release
+;;
+
+        ld4 r9=[r32]
+;;
+Retry_4release:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg4.rel r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_4release
+        br.ret.sptk.many b0
+
+Inc_4release:
+        fetchadd4.rel r8=[r32],1
+        br.ret.sptk.many b0
+Dec_4release:
+        fetchadd4.rel r8=[r32],-1
+        br.ret.sptk.many b0
+
+        .endp __TBB_machine_fetchadd4release#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore4release#
+        .global __TBB_machine_fetchstore4release#
+__TBB_machine_fetchstore4release:
+        mf
+;;
+        xchg4 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore4release#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+# 101 "<stdin>"
+        .proc __TBB_machine_cmpswp4release#
+        .global __TBB_machine_cmpswp4release#
+__TBB_machine_cmpswp4release:
+
+        zxt4 r34=r34
+;;
+
+        mov ar.ccv=r34
+;;
+        cmpxchg4.rel r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp4release#
+// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh
+# 1 "<stdin>"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "<stdin>"
+
+
+
+
+
+        .section .text
+        .align 16
+# 19 "<stdin>"
+        .proc __TBB_machine_fetchadd8release#
+        .global __TBB_machine_fetchadd8release#
+__TBB_machine_fetchadd8release:
+
+        cmp.eq p6,p0=1,r33
+        cmp.eq p8,p0=-1,r33
+  (p6) br.cond.dptk Inc_8release
+  (p8) br.cond.dpnt Dec_8release
+;;
+
+        ld8 r9=[r32]
+;;
+Retry_8release:
+        mov ar.ccv=r9
+        mov r8=r9;
+        add r10=r9,r33
+;;
+        cmpxchg8.rel r9=[r32],r10,ar.ccv
+;;
+        cmp.ne p7,p0=r8,r9
+  (p7) br.cond.dpnt Retry_8release
+        br.ret.sptk.many b0
+
+Inc_8release:
+        fetchadd8.rel r8=[r32],1
+        br.ret.sptk.many b0
+Dec_8release:
+        fetchadd8.rel r8=[r32],-1
+        br.ret.sptk.many b0
+
+        .endp __TBB_machine_fetchadd8release#
+# 62 "<stdin>"
+        .section .text
+        .align 16
+        .proc __TBB_machine_fetchstore8release#
+        .global __TBB_machine_fetchstore8release#
+__TBB_machine_fetchstore8release:
+        mf
+;;
+        xchg8 r8=[r32],r33
+        br.ret.sptk.many b0
+        .endp __TBB_machine_fetchstore8release#
+# 88 "<stdin>"
+        .section .text
+        .align 16
+# 101 "<stdin>"
+        .proc __TBB_machine_cmpswp8release#
+        .global __TBB_machine_cmpswp8release#
+__TBB_machine_cmpswp8release:
+
+
+
+
+        mov ar.ccv=r34
+;;
+        cmpxchg8.rel r8=[r32],r33,ar.ccv
+        br.ret.sptk.many b0
+        .endp __TBB_machine_cmpswp8release#
diff --git a/src/tbb/itanium-gas/lock_byte.s b/src/tbb/itanium-gas/lock_byte.s
new file mode 100644
index 0000000..ed88b75
--- /dev/null
+++ b/src/tbb/itanium-gas/lock_byte.s
@@ -0,0 +1,54 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+	// Support for class TinyLock
+	.section .text
+	.align 16
+	// unsigned int __TBB_machine_trylockbyte( byte& flag );
+	// r32 = address of flag 
+	.proc  __TBB_machine_trylockbyte#
+	.global __TBB_machine_trylockbyte#
+ADDRESS_OF_FLAG=r32
+RETCODE=r8
+FLAG=r9
+BUSY=r10
+SCRATCH=r11
+__TBB_machine_trylockbyte:
+        ld1.acq FLAG=[ADDRESS_OF_FLAG]
+        mov BUSY=1
+        mov RETCODE=0
+;;
+        cmp.ne p6,p0=0,FLAG
+        mov ar.ccv=r0
+(p6)    br.ret.sptk.many b0
+;;
+        cmpxchg1.acq SCRATCH=[ADDRESS_OF_FLAG],BUSY,ar.ccv  // Try to acquire lock
+;;
+        cmp.eq p6,p0=0,SCRATCH
+;;
+(p6)    mov RETCODE=1
+   	br.ret.sptk.many b0	
+	.endp __TBB_TryLockByte#
diff --git a/src/tbb/itanium-gas/log2.s b/src/tbb/itanium-gas/log2.s
new file mode 100644
index 0000000..1d28d12
--- /dev/null
+++ b/src/tbb/itanium-gas/log2.s
@@ -0,0 +1,67 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+	// Support for class ConcurrentVector
+	.section .text
+	.align 16
+	// unsigned long __TBB_machine_lg( unsigned long x );
+	// r32 = x
+	.proc  __TBB_machine_lg#
+	.global __TBB_machine_lg#
+__TBB_machine_lg:
+        shr r16=r32,1	// .x
+;;
+        shr r17=r32,2	// ..x
+	or r32=r32,r16	// xx
+;;
+	shr r16=r32,3	// ...xx
+	or r32=r32,r17  // xxx
+;;
+	shr r17=r32,5	// .....xxx
+	or r32=r32,r16  // xxxxx
+;;
+	shr r16=r32,8	// ........xxxxx
+	or r32=r32,r17	// xxxxxxxx
+;;
+	shr r17=r32,13
+	or r32=r32,r16	// 13x
+;;
+	shr r16=r32,21
+	or r32=r32,r17	// 21x
+;;
+	shr r17=r32,34  
+	or r32=r32,r16	// 34x
+;;
+	shr r16=r32,55
+	or r32=r32,r17  // 55x
+;;
+	or r32=r32,r16  // 64x
+;;
+	popcnt r8=r32
+;;
+	add r8=-1,r8
+   	br.ret.sptk.many b0	
+	.endp __TBB_machine_lg#
diff --git a/src/tbb/itanium-gas/pause.s b/src/tbb/itanium-gas/pause.s
new file mode 100644
index 0000000..58e8d74
--- /dev/null
+++ b/src/tbb/itanium-gas/pause.s
@@ -0,0 +1,41 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+	.section .text
+	.align 16
+	// void __TBB_machine_pause( long count );
+	// r32 = count
+	.proc  __TBB_machine_pause#
+	.global __TBB_machine_pause#
+count = r32
+__TBB_machine_pause:
+        hint.m 0
+	add count=-1,count
+;;
+	cmp.eq p6,p7=0,count
+(p7)	br.cond.dpnt __TBB_machine_pause
+(p6)   	br.ret.sptk.many b0	
+	.endp __TBB_machine_pause#
diff --git a/src/tbb/itanium-tbb.def b/src/tbb/itanium-tbb.def
new file mode 100644
index 0000000..61ad8c7
--- /dev/null
+++ b/src/tbb/itanium-tbb.def
@@ -0,0 +1,169 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+; This file is organized with a section for each .cpp file.
+; Each of these sections is in alphabetical order.
+
+EXPORTS
+
+; Assembly-language support that is called directly by clients
+__TBB_CompareAndSwap1acquire
+__TBB_CompareAndSwap1__TBB_full_fence
+__TBB_CompareAndSwap1release
+__TBB_CompareAndSwap2acquire
+__TBB_CompareAndSwap2__TBB_full_fence
+__TBB_CompareAndSwap2release
+__TBB_CompareAndSwap4acquire
+__TBB_CompareAndSwap4__TBB_full_fence
+__TBB_CompareAndSwap4release
+__TBB_CompareAndSwap8acquire
+__TBB_CompareAndSwap8__TBB_full_fence
+__TBB_CompareAndSwap8release
+__TBB_FetchAndAdd1acquire
+__TBB_FetchAndAdd1__TBB_full_fence
+__TBB_FetchAndAdd1release
+__TBB_FetchAndAdd2acquire
+__TBB_FetchAndAdd2__TBB_full_fence
+__TBB_FetchAndAdd2release
+__TBB_FetchAndAdd4acquire
+__TBB_FetchAndAdd4__TBB_full_fence
+__TBB_FetchAndAdd4release
+__TBB_FetchAndAdd8acquire
+__TBB_FetchAndAdd8__TBB_full_fence
+__TBB_FetchAndAdd8release
+__TBB_FetchAndStore1acquire
+__TBB_FetchAndStore1__TBB_full_fence
+__TBB_FetchAndStore1release
+__TBB_FetchAndStore2acquire
+__TBB_FetchAndStore2__TBB_full_fence
+__TBB_FetchAndStore2release
+__TBB_FetchAndStore4acquire
+__TBB_FetchAndStore4__TBB_full_fence
+__TBB_FetchAndStore4release
+__TBB_FetchAndStore8acquire
+__TBB_FetchAndStore8__TBB_full_fence
+__TBB_FetchAndStore8release
+__TBB_LockByte
+__TBB_TryLockByte
+__TBB_Log2
+__TBB_Pause
+;__TBB_TaggedCompareAndSwap
+;__TBB_CheckAcquire
+
+; NFS_Allocator.cpp
+?NFS_Allocate at internal@tbb@@YAPEAX_K0PEAX at Z
+?NFS_GetLineSize at internal@tbb@@YA_KXZ
+?NFS_Free at internal@tbb@@YAXPEAX at Z
+
+; task.cpp
+?allocate at allocate_additional_child_of_proxy@internal at tbb@@QEBAAEAVtask at 3@_K at Z
+?allocate at allocate_child_proxy@internal at tbb@@QEBAAEAVtask at 3@_K at Z
+?allocate at allocate_continuation_proxy@internal at tbb@@QEBAAEAVtask at 3@_K at Z
+?allocate at allocate_root_proxy@internal at tbb@@SAAEAVtask at 3@_K at Z
+?destroy at task@tbb@@QEAAXAEAV12@@Z
+?free at allocate_additional_child_of_proxy@internal at tbb@@QEBAXAEAVtask at 3@@Z
+?free at allocate_child_proxy@internal at tbb@@QEBAXAEAVtask at 3@@Z
+?free at allocate_continuation_proxy@internal at tbb@@QEBAXAEAVtask at 3@@Z
+?free at allocate_root_proxy@internal at tbb@@SAXAEAVtask at 3@@Z
+?initialize at task_scheduler_init@tbb@@QEAAXH at Z
+?internal_set_ref_count at task@tbb@@AEAAXH at Z
+?is_owned_by_current_thread at task@tbb@@QEBA_NXZ
+?self at task@tbb@@SAAEAV12 at XZ
+?spawn_and_wait_for_all at task@tbb@@QEAAXAEAVtask_list at 2@@Z
+?terminate at task_scheduler_init@tbb@@QEAAXXZ
+
+; tbb_misc.cpp
+?assertion_failure at tbb@@YAXPEBDH00 at Z
+
+; pipeline.cpp
+??_7pipeline at tbb@@6B@
+??0pipeline at tbb@@QEAA at XZ
+??1filter at tbb@@UEAA at XZ
+??1pipeline at tbb@@UEAA at XZ
+?add_filter at pipeline@tbb@@QEAAXAEAVfilter at 2@@Z
+?clear at pipeline@tbb@@QEAAXXZ
+?inject_token at pipeline@tbb@@AEAAXAEAVtask at 2@@Z
+?run at pipeline@tbb@@QEAAX_K at Z
+
+; queuing_rw_mutex.cpp
+?acquire at scoped_lock@queuing_rw_mutex at tbb@@QEAAXAEAV23 at _N@Z
+?downgrade_to_reader at scoped_lock@queuing_rw_mutex at tbb@@QEAA_NXZ
+?release at scoped_lock@queuing_rw_mutex at tbb@@QEAAXXZ
+?upgrade_to_writer at scoped_lock@queuing_rw_mutex at tbb@@QEAA_NXZ
+?try_acquire at scoped_lock@queuing_rw_mutex at tbb@@QEAA_NAEAV23 at _N@Z
+
+; spin_rw_mutex.cpp
+?internal_acquire_writer at spin_rw_mutex@tbb@@AEAA_NXZ
+?internal_acquire_reader at spin_rw_mutex@tbb@@AEAAXXZ
+?internal_upgrade at spin_rw_mutex@tbb@@AEAA_NXZ
+?internal_downgrade at spin_rw_mutex@tbb@@AEAAXXZ
+?internal_itt_releasing at spin_rw_mutex@tbb@@AEAAXXZ
+?internal_release_reader at spin_rw_mutex@tbb@@AEAAXXZ
+?internal_release_writer at spin_rw_mutex@tbb@@AEAAXXZ
+?internal_try_acquire_writer at spin_rw_mutex@tbb@@AEAA_NXZ
+?internal_try_acquire_reader at spin_rw_mutex@tbb@@AEAA_NXZ
+
+; spin_mutex.cpp
+?internal_acquire at scoped_lock@spin_mutex at tbb@@AEAAXAEAV23@@Z
+?internal_release at scoped_lock@spin_mutex at tbb@@AEAAXXZ
+?internal_try_acquire at scoped_lock@spin_mutex at tbb@@AEAA_NAEAV23@@Z
+
+; mutex.cpp
+?internal_acquire at scoped_lock@mutex at tbb@@AEAAXAEAV23@@Z
+?internal_release at scoped_lock@mutex at tbb@@AEAAXXZ
+?internal_try_acquire at scoped_lock@mutex at tbb@@AEAA_NAEAV23@@Z
+?internal_construct at mutex@tbb@@AEAAXXZ
+?internal_destroy at mutex@tbb@@AEAAXXZ
+
+; queuing_mutex.cpp
+?acquire at scoped_lock@queuing_mutex at tbb@@QEAAXAEAV23@@Z
+?release at scoped_lock@queuing_mutex at tbb@@QEAAXXZ
+?try_acquire at scoped_lock@queuing_mutex at tbb@@QEAA_NAEAV23@@Z
+
+; ConcurrentQueue.cpp
+??0concurrent_queue_base at internal@tbb@@IEAA at _K@Z
+??0concurrent_queue_iterator_base at internal@tbb@@IEAA at AEBVconcurrent_queue_base@12@@Z
+??1concurrent_queue_base at internal@tbb@@IEAA at XZ
+??1concurrent_queue_iterator_base at internal@tbb@@IEAA at XZ
+?advance at concurrent_queue_iterator_base@internal at tbb@@IEAAXXZ
+?assign at concurrent_queue_iterator_base@internal at tbb@@IEAAXAEBV123@@Z
+?internal_pop at concurrent_queue_base@internal at tbb@@IEAAXPEAX at Z
+?internal_pop_if_present at concurrent_queue_base@internal at tbb@@IEAA_NPEAX at Z
+?internal_push at concurrent_queue_base@internal at tbb@@IEAAXPEBX at Z
+?internal_push_if_not_full at concurrent_queue_base@internal at tbb@@IEAA_NPEBX at Z
+?internal_set_capacity at concurrent_queue_base@internal at tbb@@IEAAX_J_K at Z
+?internal_size at concurrent_queue_base@internal at tbb@@IEBA_JXZ
+
+; ConcurrentVector.cpp
+?internal_assign at concurrent_vector_base@internal at tbb@@IEAAXAEBV123 at _KP6AXPEAX1@ZP6AX2PEBX1 at Z5@Z
+?internal_capacity at concurrent_vector_base@internal at tbb@@IEBA_KXZ
+?internal_clear at concurrent_vector_base@internal at tbb@@IEAAXP6AXPEAX_K at Z_N@Z
+?internal_copy at concurrent_vector_base@internal at tbb@@IEAAXAEBV123 at _KP6AXPEAXPEBX1@Z at Z
+?internal_grow_by at concurrent_vector_base@internal at tbb@@IEAA_K_K0P6AXPEAX0 at Z@Z
+?internal_grow_to_at_least at concurrent_vector_base@internal at tbb@@IEAAX_K0P6AXPEAX0 at Z@Z
+?internal_push_back at concurrent_vector_base@internal at tbb@@IEAAPEAX_KAEA_K at Z
+?internal_reserve at concurrent_vector_base@internal at tbb@@IEAAX_K00 at Z
+
diff --git a/src/tbb/itt_notify.cpp b/src/tbb/itt_notify.cpp
new file mode 100644
index 0000000..76640d3
--- /dev/null
+++ b/src/tbb/itt_notify.cpp
@@ -0,0 +1,140 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#define INSTANTIATE_ITT_NOTIFY 1
+#include "itt_notify.h"
+#include "tbb_misc.h"
+#include <stdlib.h>
+#include <string.h>
+#include "tbb/tbb_machine.h"
+
+#if _WIN32||_WIN64
+#include <windows.h>
+#else
+#include <dlfcn.h>
+#endif /* _WIN32||_WIN64 */
+
+namespace tbb {
+namespace internal {
+
+#if DO_ITT_NOTIFY
+//! Table describing the __itt_notify handlers.
+static const DynamicLinkDescriptor ITT_HandlerTable[] = {
+    {"__itt_notify_sync_prepare",ADDRESS_OF_HANDLER(&ITT_Handler_sync_prepare)},
+    {"__itt_notify_sync_acquired",ADDRESS_OF_HANDLER(&ITT_Handler_sync_acquired)},
+    {"__itt_notify_sync_releasing",ADDRESS_OF_HANDLER(&ITT_Handler_sync_releasing)},
+    {"__itt_notify_sync_cancel",ADDRESS_OF_HANDLER(&ITT_Handler_sync_cancel)},
+# if _WIN32||_WIN64
+#  ifdef UNICODE
+    {"__itt_thr_name_setW",ADDRESS_OF_HANDLER(&ITT_Handler_thr_name_set)},
+#  else
+    {"__itt_thr_name_setA",ADDRESS_OF_HANDLER(&ITT_Handler_thr_name_set)},
+#  endif
+# else
+    {"__itt_thr_name_set",ADDRESS_OF_HANDLER(&ITT_Handler_thr_name_set)},
+# endif
+};
+
+// LIBITTNOTIFY_NAME is the name of the ITT notification library 
+# if _WIN32||_WIN64
+#  define LIBITTNOTIFY_NAME "libittnotify.dll"
+# elif __linux__
+#  define LIBITTNOTIFY_NAME "libittnotify.so"
+# elif __APPLE__
+#  define LIBITTNOTIFY_NAME "libittnotify.dylib"
+# else
+#  error Unknown OS
+# endif
+
+/** Caller is responsible for ensuring this routine is called exactly once. */
+bool InitializeITT() {
+    bool result = false;
+    // Check if we are running under control of VTune.
+    if( GetBoolEnvironmentVariable("KMP_FOR_TCHECK") || GetBoolEnvironmentVariable("KMP_FOR_TPROFILE") ) {
+        // Yes, we are under control of VTune.  Check for libittnotify library.
+        result = FillDynamicLinks( LIBITTNOTIFY_NAME, ITT_HandlerTable, 5 );
+    }
+    if (!result){
+        for (int i = 0; i < 5; i++)
+            *ITT_HandlerTable[i].handler = NULL;
+    }
+    PrintExtraVersionInfo( "ITT", result?"yes":"no" );
+    return result;
+}
+
+//! Defined in task.cpp
+extern void DoOneTimeInitializations();
+
+//! Executed on very first call throught ITT_Handler_sync_prepare
+void dummy_sync_prepare( volatile void* ptr ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( ITT_Handler_sync_prepare!=&dummy_sync_prepare, NULL );
+    if (ITT_Handler_sync_prepare)
+        (*ITT_Handler_sync_prepare) (ptr);
+}
+
+//! Executed on very first call throught ITT_Handler_sync_acquired
+void dummy_sync_acquired( volatile void* ptr ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( ITT_Handler_sync_acquired!=&dummy_sync_acquired, NULL );
+    if (ITT_Handler_sync_acquired)
+        (*ITT_Handler_sync_acquired) (ptr);
+}
+
+//! Executed on very first call throught ITT_Handler_sync_releasing
+void dummy_sync_releasing( volatile void* ptr ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( ITT_Handler_sync_releasing!=&dummy_sync_releasing, NULL );
+    if (ITT_Handler_sync_releasing)
+        (*ITT_Handler_sync_releasing) (ptr);
+}
+
+//! Executed on very first call throught ITT_Handler_sync_cancel
+void dummy_sync_cancel( volatile void* ptr ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( ITT_Handler_sync_releasing!=&dummy_sync_cancel, NULL );
+    if (ITT_Handler_sync_cancel)
+        (*ITT_Handler_sync_cancel) (ptr);
+}
+
+//! Executed on very first call throught ITT_Handler_thr_name_set
+int dummy_thr_name_set( const char* str, int number ) {
+    DoOneTimeInitializations();
+    __TBB_ASSERT( ITT_Handler_thr_name_set!=&dummy_thr_name_set, NULL );
+    if (ITT_Handler_thr_name_set)
+        return (*ITT_Handler_thr_name_set) (str, number);
+    else{// ITT_Handler_thr_name_set is NULL. It means that ITT support is disabled.
+        return -1;
+    }
+}
+
+#endif /* DO_ITT_NOTIFY */
+
+} // namespace internal 
+
+} // namespace tbb
diff --git a/src/tbb/itt_notify.h b/src/tbb/itt_notify.h
new file mode 100644
index 0000000..33b1dfa
--- /dev/null
+++ b/src/tbb/itt_notify.h
@@ -0,0 +1,116 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _TBB_ITT_NOTIFY
+#define _TBB_ITT_NOTIFY
+
+// IMPORTANT: To use itt_notify.cpp/itt_notify.h in a library, exactly
+// one of the files that #includes itt_notify.h should have
+//     #define INSTANTIATE_ITT_NOTIFY 1
+// just before the #include of "itt_notify.h".  
+// That file is the one that will have the instances of the hooks.
+//
+// The intent is to allow precise placement of the hooks.  Ideally, they
+// should reside on a hot mostly-read cache line.
+
+#if DO_ITT_NOTIFY
+
+namespace tbb {
+
+namespace internal {
+
+//! Initialize support for __itt_notify handlers
+/** It is the callers responsibility to ensure that this routine is called only once. 
+    Returns true if ITT hooks were installed; false otherwise. */
+bool InitializeITT();
+
+//! A pointer to a __itt_notify call.
+typedef void (*PointerToITT_Handler)(volatile void*);
+
+//! A pointer to __itt_thr_set_name call.
+typedef int (*PointerToITT_Name_Set)(const char*, int);
+
+//! Dummy routine used for first indirect call via ITT_Handler_sync_prepare
+void dummy_sync_prepare(volatile void*);
+
+//! Dummy routine used for first indirect call via ITT_Handler_sync_acquired.
+void dummy_sync_acquired(volatile void*);
+
+//! Dummy routine used for first indirect call via ITT_Handler_sync_releasing.
+void dummy_sync_releasing(volatile void*);
+
+//! Dummy routine used for first indirect call via ITT_Handler_sync_cancel.
+void dummy_sync_cancel(volatile void*);
+
+//! Dummy routine used for first indirect call via ITT_Handler_thr_name_set.
+int dummy_thr_name_set(const char*, int);
+
+#if INSTANTIATE_ITT_NOTIFY
+PointerToITT_Handler ITT_Handler_sync_prepare = &dummy_sync_prepare;
+PointerToITT_Handler ITT_Handler_sync_acquired = &dummy_sync_acquired;
+PointerToITT_Handler ITT_Handler_sync_releasing = &dummy_sync_releasing;
+PointerToITT_Handler ITT_Handler_sync_cancel = &dummy_sync_cancel;
+PointerToITT_Name_Set ITT_Handler_thr_name_set = &dummy_thr_name_set;
+#else
+extern PointerToITT_Handler ITT_Handler_sync_prepare;
+extern PointerToITT_Handler ITT_Handler_sync_acquired;
+extern PointerToITT_Handler ITT_Handler_sync_releasing;
+extern PointerToITT_Handler ITT_Handler_sync_cancel;
+extern PointerToITT_Name_Set ITT_Handler_thr_name_set;
+#endif
+
+} // namespace internal 
+
+} // namespace tbb
+
+//! Glues two tokens together.
+#define ITT_GLUE(x,y) tbb::internal::x##y
+
+//! Call routine itt_notify_(name) if corresponding handler is available.
+/** For example, use ITT_NOTIFY(sync_releasing,x) to invoke __itt_notify_sync_releasing(x).
+    Ordinarily, preprocessor token gluing games should be avoided.
+    But here, it seemed to be the best way to handle the issue. */
+#define ITT_NOTIFY(name,pointer) ( ITT_GLUE(ITT_Handler_,name) ? ITT_GLUE(ITT_Handler_,name)(pointer) : (void)0 )
+
+#define ITT_NAME_SET(name,pointer,length) ( ITT_GLUE(ITT_Handler_,name) ? ITT_GLUE(ITT_Handler_,name)(pointer,length) : 0 )
+
+#else
+
+#define ITT_NOTIFY(name,pointer) ((void)0)
+ 
+#define ITT_NAME_SET(name,pointer,length) ((void)0)
+ 
+#endif /* DO_ITT_NOTIFY */
+
+#if DO_ITT_QUIET
+#define ITT_QUIET(x) (__itt_thr_mode_set(__itt_thr_prop_quiet,(x)?__itt_thr_state_set:__itt_thr_state_clr))
+#else
+#define ITT_QUIET(x) ((void)0)
+#endif /* DO_ITT_QUIET */
+
+#endif /* _TBB_ITT_NOTIFY */
diff --git a/src/tbb/mutex.cpp b/src/tbb/mutex.cpp
new file mode 100644
index 0000000..81d0e02
--- /dev/null
+++ b/src/tbb/mutex.cpp
@@ -0,0 +1,128 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/mutex.h"
+
+namespace tbb {
+    void mutex::scoped_lock::internal_acquire( mutex& m ) {
+
+#if _WIN32||_WIN64
+        switch( m.state ) {
+        case INITIALIZED: 
+            EnterCriticalSection(&m.impl);
+            break;
+        case DESTROYED: 
+            __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); 
+            break;
+        default: 
+            __TBB_ASSERT(false,"mutex::scoped_lock: illegal mutex state");
+            break;
+        }
+#else
+        int error_code = pthread_mutex_lock(&m.impl);
+        __TBB_ASSERT_EX(!error_code,"mutex::scoped_lock: pthread_mutex_lock failed");
+#endif /* _WIN32||_WIN64 */
+        my_mutex = &m;
+    }
+
+void mutex::scoped_lock::internal_release() {
+    __TBB_ASSERT( my_mutex, "mutex::scoped_lock: not holding a mutex" );
+#if _WIN32||_WIN64    
+     switch( my_mutex->state ) {
+        case INITIALIZED: 
+            LeaveCriticalSection(&my_mutex->impl);
+            break;
+        case DESTROYED: 
+            __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); 
+            break;
+        default: 
+            __TBB_ASSERT(false,"mutex::scoped_lock: illegal mutex state");
+            break;
+    }
+#else
+     int error_code = pthread_mutex_unlock(&my_mutex->impl);
+     __TBB_ASSERT_EX(!error_code, "mutex::scoped_lock: pthread_mutex_unlock failed");
+#endif /* _WIN32||_WIN64 */
+     my_mutex = NULL;
+}
+
+bool mutex::scoped_lock::internal_try_acquire( mutex& m ) {
+#if _WIN32||_WIN64
+    switch( m.state ) {
+        case INITIALIZED: 
+            break;
+        case DESTROYED: 
+            __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); 
+            break;
+        default: 
+            __TBB_ASSERT(false,"mutex::scoped_lock: illegal mutex state");
+            break;
+    }
+#endif /* _WIN32||_WIN64 */
+
+    bool result;
+#if _WIN32||_WIN64
+            result = TryEnterCriticalSection(&m.impl)!=0;
+#else
+            result = pthread_mutex_trylock(&m.impl)==0;
+#endif /* _WIN32||_WIN64 */
+    if( result )
+        my_mutex = &m;
+    return result;
+}
+
+void mutex::internal_construct() {
+#if _WIN32||_WIN64
+    InitializeCriticalSection(&impl);
+    state = INITIALIZED;  
+#else
+    int error_code = pthread_mutex_init(&impl,NULL);
+    if( error_code )
+        tbb::internal::handle_perror(error_code,"mutex: pthread_mutex_init failed");
+#endif /* _WIN32||_WIN64*/    
+}
+
+void mutex::internal_destroy() {
+#if _WIN32||_WIN64
+    switch( state ) {
+       case INITIALIZED: {
+           DeleteCriticalSection(&impl);
+       } break;
+       case DESTROYED: 
+           __TBB_ASSERT(false,"mutex: already destroyed"); break;
+       default: 
+           __TBB_ASSERT(false,"mutex: illegal state for destruction");
+    }
+    state = DESTROYED;
+#else
+    int error_code = pthread_mutex_destroy(&impl); 
+    __TBB_ASSERT_EX(!error_code,"mutex: pthread_mutex_destroy failed");
+#endif /* _WIN32||_WIN64 */
+}
+
+} // namespace tbb
diff --git a/src/tbb/pipeline.cpp b/src/tbb/pipeline.cpp
new file mode 100644
index 0000000..ad02743
--- /dev/null
+++ b/src/tbb/pipeline.cpp
@@ -0,0 +1,280 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/pipeline.h"
+#include "tbb/cache_aligned_allocator.h"
+#include "itt_notify.h"
+
+
+namespace tbb {
+
+namespace internal {
+
+//! A buffer of ordered items.
+/** Each item is a task, inserted into a position in the buffer corrsponding to a Token. */
+class ordered_buffer {
+    typedef  Token  size_type;
+
+    //! Array of deferred tasks that cannot yet start executing. 
+    /** Element is NULL if unused. */
+    task** array;
+
+    //! Size of array
+    /** Always 0 or a power of 2 */
+    size_type array_size;
+
+    //! Lowest token that can start executing.
+    /** All prior Token have already been seen. */
+    Token low_token;
+
+    //! Serializes updates.
+    spin_mutex array_mutex;
+
+    //! Resize "array".
+    /** Caller is responsible to acquiring a lock on "array_mutex". */
+    void grow( size_type minimum_size );
+
+    //! Initial size for "array"
+    /** Must be a power of 2 */
+    static const size_type initial_buffer_size = 4;
+public:
+    //! Construct empty buffer.
+    ordered_buffer() : array(NULL), array_size(0), low_token(0) {
+        grow(initial_buffer_size);
+        __TBB_ASSERT( array, NULL );
+    }
+
+    //! Destroy the buffer.
+    ~ordered_buffer() {
+        __TBB_ASSERT( array, NULL );
+        cache_aligned_allocator<task*>().deallocate(array,array_size);
+        poison_pointer( array );
+    }
+
+    //! Put a token into the buffer.
+    /** The putter must be in state that works if enqueued for later wakeup 
+        If putter was enqueued, returns NULL.  Otherwise returns putter,
+        which the caller is expected to spawn. */
+    task* put_token( task& putter, Token token ) {
+        task* result = &putter;
+        {
+            spin_mutex::scoped_lock lock( array_mutex );
+            if( token!=low_token ) {
+                // Trying to put token that is beyond low_token.
+                // Need to wait until low_token catches up before dispatching.
+                result = NULL;
+                __TBB_ASSERT( token>low_token, NULL );
+                if( token-low_token>=array_size ) 
+                    grow( token-low_token+1 );
+                ITT_NOTIFY( sync_releasing, this );
+                array[token&array_size-1] = &putter;
+            }
+        }
+        return result;
+    }
+
+    //! Note that processing of a token is finished.
+    /** Fires up processing of the next token, if processing was deferred. */
+    void note_done( Token token, task& spawner ) {
+        task* wakee=NULL;
+        {
+            spin_mutex::scoped_lock lock( array_mutex );
+            if( token==low_token ) {
+                // Wake the next task
+                task*& item = array[++low_token & array_size-1];
+                ITT_NOTIFY( sync_acquired, this );
+                wakee = item;
+                item = NULL;
+            }
+        }
+        if( wakee ) {
+            spawner.spawn(*wakee);
+        }
+    }
+};
+
+void ordered_buffer::grow( size_type minimum_size ) {
+    size_type old_size = array_size;
+    size_type new_size = old_size ? 2*old_size : initial_buffer_size;
+    while( new_size<minimum_size ) 
+        new_size*=2;
+    task** new_array = cache_aligned_allocator<task*>().allocate(new_size);
+    task** old_array = array;
+    for( size_type i=0; i<new_size; ++i )
+        new_array[i] = NULL;
+    long t=low_token;
+    for( size_type i=0; i<old_size; ++i, ++t )
+        new_array[t&new_size-1] = old_array[t&old_size-1];
+    array = new_array;
+    array_size = new_size;
+    if( old_array )
+        cache_aligned_allocator<task*>().deallocate(old_array,old_size);
+}
+
+class stage_task: public task {
+private:
+    friend class tbb::pipeline;
+    pipeline& my_pipeline;
+    void* my_object;
+    filter* my_filter;  
+    const Token my_token;
+public:
+    stage_task( pipeline& pipeline, Token token, filter* filter_list ) : 
+        my_pipeline(pipeline), 
+        my_filter(filter_list),
+        my_token(token)
+    {}
+    task* execute();
+};
+
+task* stage_task::execute() {
+    my_object = (*my_filter)(my_object);
+    if( ordered_buffer* input_buffer = my_filter->input_buffer )
+        input_buffer->note_done(my_token,*this);
+    task* next = NULL;
+    my_filter = my_filter->next_filter_in_pipeline; 
+    if( my_filter ) {
+        // There is another filter to execute.
+        // Crank up priority a notch.
+        add_to_depth(1);
+        if( ordered_buffer* input_buffer = my_filter->input_buffer ) {
+            // The next filter must execute tokens in order.
+            stage_task& clone = *new( allocate_continuation() ) stage_task( my_pipeline, my_token, my_filter );
+            clone.my_object = my_object;
+            next = input_buffer->put_token(clone,my_token);
+        } else {
+            recycle_as_continuation();
+            next = this;
+        }
+    } else {
+        // Reached end of the pipe.  Inject a new token.
+        // The token must be injected before execute() returns, in order to prevent the
+        // end_counter task's reference count from prematurely reaching 0.
+        set_depth( my_pipeline.end_counter->depth()+1 ); 
+        my_pipeline.inject_token( *this );
+    }
+    return next;
+}
+
+} // namespace internal
+
+void pipeline::inject_token( task& self ) {
+    void* o = NULL;
+    filter* f = filter_list;
+    spin_mutex::scoped_lock lock( input_mutex );
+    if( !end_of_input ) {
+        ITT_NOTIFY(sync_acquired, this );
+        o = (*f)(NULL);
+        ITT_NOTIFY(sync_releasing, this );
+        if( o ) {
+            internal::Token token = token_counter++;
+            lock.release(); // release the lock as soon as finished updating shared fields
+
+            f = f->next_filter_in_pipeline;
+            // Successfully fetched another input object.  
+            // Create a stage_task to process it.
+            internal::stage_task* s = new( self.allocate_additional_child_of(*end_counter) ) internal::stage_task( *this, token, f );
+            s->my_object = o;
+            if( internal::ordered_buffer* input_buffer = f->input_buffer ) {
+                // The next filter must execute tokens in order.
+                s = static_cast<internal::stage_task*>(input_buffer->put_token(*s,token));
+            } 
+            if( s ) {
+                self.spawn(*s);
+            }
+        } 
+        else 
+            end_of_input = true;
+    }
+}
+
+pipeline::pipeline() : 
+    filter_list(NULL),
+    filter_end(&filter_list),
+    end_counter(NULL),
+    token_counter(0),
+    end_of_input(false)
+{
+}
+
+pipeline::~pipeline() {
+    clear();
+}
+
+void pipeline::clear() {
+    filter* next;
+    for( filter* f = filter_list; f; f=next ) {
+        if( internal::ordered_buffer* b = f->input_buffer ) {
+            delete b; 
+            f->input_buffer = NULL;
+        }
+        next=f->next_filter_in_pipeline;
+        f->next_filter_in_pipeline = filter::not_in_pipeline();
+    }
+    filter_list = NULL;
+}
+
+void pipeline::add_filter( filter& filter ) {
+    __TBB_ASSERT( filter.next_filter_in_pipeline==filter::not_in_pipeline(), "filter already part of pipeline?" );
+    __TBB_ASSERT( !end_counter, "invocation of add_filter on running pipeline" );
+    if( filter.is_serial() ) {
+        filter.input_buffer = new internal::ordered_buffer();
+    }
+    *filter_end = &filter;
+    filter_end = &filter.next_filter_in_pipeline;
+    *filter_end = NULL;
+}
+
+void pipeline::run( size_t max_number_of_live_tokens ) {
+    __TBB_ASSERT( max_number_of_live_tokens>0, "pipeline::run must have at least one token" );
+    __TBB_ASSERT( !end_counter, "pipeline already running?" );
+    if( filter_list ) {
+        if( filter_list->next_filter_in_pipeline ) {
+            end_of_input = false;
+            end_counter = new( task::allocate_root() ) empty_task;
+            end_counter->set_ref_count(1);
+            for( size_t i=0; i<max_number_of_live_tokens; ++i )
+                inject_token( *end_counter );
+            end_counter->wait_for_all();
+            end_counter->destroy(*end_counter);
+            end_counter = NULL;
+        } else {
+            // There are no filters, and thus no parallelism is possible.
+            // Just drain the input stream.
+            while( (*filter_list)(NULL) ) 
+                continue;
+        }
+    } 
+}
+
+filter::~filter() {
+    __TBB_ASSERT( next_filter_in_pipeline==filter::not_in_pipeline(), "cannot destroy filter that is part of pipeline" );
+}
+
+} // tbb
+
diff --git a/src/tbb/queuing_mutex.cpp b/src/tbb/queuing_mutex.cpp
new file mode 100644
index 0000000..02807cb
--- /dev/null
+++ b/src/tbb/queuing_mutex.cpp
@@ -0,0 +1,116 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/tbb_machine.h"
+#include "tbb/tbb_stddef.h"
+#include "tbb_misc.h"
+#include "tbb/queuing_mutex.h"
+#include "itt_notify.h"
+
+
+namespace tbb {
+
+using namespace internal;
+
+//! A method to acquire queuing_mutex lock
+void queuing_mutex::scoped_lock::acquire( queuing_mutex& m )
+{
+    __TBB_ASSERT( !this->mutex, "scoped_lock is already holding a mutex");
+
+    // Must set all fields before the fetch_and_store, because once the
+    // fetch_and_store executes, *this becomes accessible to other threads.
+    mutex = &m;
+    next  = NULL;
+    going = 0;
+
+    ITT_NOTIFY(sync_prepare, mutex);
+    // The fetch_and_store must have release semantics, because we are
+    // "sending" the fields initialized above to other processors.
+    scoped_lock* pred = m.q_tail.fetch_and_store<tbb::release>(this);
+    if( pred ) {
+        __TBB_ASSERT( !pred->next, "the predecessor has another successor!");
+        pred->next = this;
+        SpinwaitWhileEq( going, 0ul );
+    }
+    ITT_NOTIFY(sync_acquired, mutex);
+
+    // Force acquire so that user's critical section receives correct values
+    // from processor that was previously in the user's critical section.
+    __TBB_load_with_acquire(going);
+}
+
+//! A method to acquire queuing_mutex if it is free
+bool queuing_mutex::scoped_lock::try_acquire( queuing_mutex& m )
+{
+    __TBB_ASSERT( !this->mutex, "scoped_lock is already holding a mutex");
+
+    // Must set all fields before the fetch_and_store, because once the
+    // fetch_and_store executes, *this becomes accessible to other threads.
+    next  = NULL;
+    going = 0;
+
+    if( m.q_tail ) return false;
+    // The CAS must have release semantics, because we are
+    // "sending" the fields initialized above to other processors.
+    scoped_lock* pred = m.q_tail.compare_and_swap<tbb::release>(this, NULL);
+
+    // Force acquire so that user's critical section receives correct values
+    // from processor that was previously in the user's critical section.
+    // try_acquire should always have acquire semantic, even if failed.
+    __TBB_load_with_acquire(going);
+    if( !pred ) {
+        mutex = &m;
+        ITT_NOTIFY(sync_acquired, mutex);
+        return true;
+    } else return false;
+}
+
+//! A method to release queuing_mutex lock
+void queuing_mutex::scoped_lock::release( )
+{
+    __TBB_ASSERT(this->mutex!=NULL, "no lock acquired");
+
+    ITT_NOTIFY(sync_releasing, mutex);
+    if( !next ) {
+        if( this == mutex->q_tail.compare_and_swap<tbb::release>(NULL, this) ) {
+            // this was the only item in the queue, and the queue is now empty.
+            goto done;
+        }
+        // Someone in the queue
+        SpinwaitWhileEq( next, (scoped_lock*)0 );
+    }
+    __TBB_ASSERT(next,NULL);
+    // The volatile here ensures release semantics on IPF, which are necessary
+    // so that the user's critical section sends the correct values to the next
+    // process that acquires the critical section.
+    __TBB_store_with_release(next->going, 1);
+done:
+    initialize();
+}
+
+} // namespace tbb
diff --git a/src/tbb/queuing_rw_mutex.cpp b/src/tbb/queuing_rw_mutex.cpp
new file mode 100644
index 0000000..8b64ce6
--- /dev/null
+++ b/src/tbb/queuing_rw_mutex.cpp
@@ -0,0 +1,475 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/** Before making any changes in the implementation, please emulate algorithmic changes
+    with SPIN tool using <TBB directory>/tools/spin_models/ReaderWriterMutex.pml.
+    There could be some code looking as "can be restructured" but its structure does matter! */
+
+#include "tbb/tbb_machine.h"
+#include "tbb/tbb_stddef.h"
+#include "tbb_misc.h"
+#include "tbb/queuing_rw_mutex.h"
+#include "itt_notify.h"
+
+
+namespace tbb {
+
+using namespace internal;
+
+const unsigned char RELEASED = 0;
+const unsigned char ACQUIRED = 1;
+ 
+template<typename T>
+inline atomic<T>& as_atomic( T& t ) {
+    return *(atomic<T>*)&t;
+}
+
+inline bool queuing_rw_mutex::scoped_lock::try_acquire_internal_lock()
+{
+    return as_atomic(internal_lock).compare_and_swap<tbb::acquire>(ACQUIRED,RELEASED) == RELEASED;
+}
+
+inline void queuing_rw_mutex::scoped_lock::acquire_internal_lock()
+{
+    // Usually, we would use the test-test-and-set idiom here, with exponential backoff.
+    // But so far, experiments indicate there is no value in doing so here.
+    while( !try_acquire_internal_lock() ) {
+        __TBB_Pause(1);
+    }
+}
+
+inline void queuing_rw_mutex::scoped_lock::release_internal_lock()
+{
+    __TBB_store_with_release(internal_lock,RELEASED);
+}
+
+inline void queuing_rw_mutex::scoped_lock::wait_for_release_of_internal_lock()
+{
+    SpinwaitUntilEq(internal_lock, RELEASED);
+}
+
+inline void queuing_rw_mutex::scoped_lock::unblock_or_wait_on_internal_lock( uintptr_t flag ) {
+    if( flag )
+        wait_for_release_of_internal_lock();
+    else
+        release_internal_lock();
+}
+
+template<typename T>
+class tricky_atomic_pointer {
+public:
+    typedef typename atomic_word<sizeof(T*)>::word word;
+    template<memory_semantics M>
+    static T* fetch_and_add( T* volatile * location, word addend ) {
+        return reinterpret_cast<T*>( atomic_traits<sizeof(T*),M>::fetch_and_add(location, addend) );
+    }
+    template<memory_semantics M>
+    static T* fetch_and_store( T* volatile * location, T* value ) {
+        return reinterpret_cast<T*>( atomic_traits<sizeof(T*),M>::fetch_and_store(location, reinterpret_cast<word>(value)) );
+    }
+    template<memory_semantics M>
+    static T* compare_and_swap( T* volatile * location, T* value, T* comparand ) {
+        return reinterpret_cast<T*>(
+                 atomic_traits<sizeof(T*),M>::compare_and_swap(location, reinterpret_cast<word>(value),
+                                                              reinterpret_cast<word>(comparand))
+               );
+    }
+
+    T* & ref;
+    tricky_atomic_pointer( T*& original ) : ref(original) {};
+    tricky_atomic_pointer( T* volatile & original ) : ref(original) {};
+    T* operator&( word operand2 ) const {
+        return reinterpret_cast<T*>( reinterpret_cast<word>(ref) & operand2 );
+    }
+    T* operator|( word operand2 ) const {
+        return reinterpret_cast<T*>( reinterpret_cast<word>(ref) | operand2 );
+    }
+};
+typedef tricky_atomic_pointer<queuing_rw_mutex::scoped_lock> tricky_pointer;
+
+//! Mask for low order bit of a pointer.
+static const tricky_pointer::word FLAG = 0x1;
+
+inline
+uintptr get_flag( queuing_rw_mutex::scoped_lock* ptr ) { 
+    return uintptr(tricky_pointer(ptr)&FLAG);
+}
+
+
+//! Methods of queuing_rw_mutex::scoped_lock
+/** ----------------------------------------- **/
+
+//! A method to acquire queuing_rw_mutex lock
+void queuing_rw_mutex::scoped_lock::acquire( queuing_rw_mutex& m, bool write )
+{
+    __TBB_ASSERT( !this->mutex, "scoped_lock is already holding a mutex");
+
+    // Must set all fields before the fetch_and_store, because once the
+    // fetch_and_store executes, *this becomes accessible to other threads.
+    mutex = &m;
+    prev  = NULL;
+    next  = NULL;
+    going = 0;
+    state = write ? STATE_WRITER : STATE_READER;
+    internal_lock = RELEASED;
+
+    ITT_NOTIFY(sync_prepare, mutex);
+    queuing_rw_mutex::scoped_lock* pred = m.q_tail.fetch_and_store<tbb::release>(this);
+
+    if( write ) {       // Acquiring for write
+
+        if( pred ) {
+            pred = tricky_pointer(pred) & ~FLAG;
+            __TBB_ASSERT( !( tricky_pointer(pred) & FLAG ), "use of corrupted pointer!" );
+            __TBB_ASSERT( !pred->next, "the predecessor has another successor!");
+            // ensure release semantics on IPF
+           __TBB_store_with_release(pred->next,this);
+            SpinwaitUntilEq(going, 1);
+        }
+
+    } else {            // Acquiring for read
+
+        if( pred ) {
+            unsigned short pred_state;
+            __TBB_ASSERT( !this->prev, "the predecessor is already set" );
+            if( tricky_pointer(pred)&FLAG ) {
+                /* this is only possible if pred is an upgrading reader and it signals us to wait */
+                pred_state = STATE_UPGRADE_WAITING;
+                pred = tricky_pointer(pred) & ~FLAG;
+            } else {
+                // Load pred->state now, because once pred->next becomes
+                // non-NULL, we must assume that *pred might be destroyed.
+                pred_state = pred->state.compare_and_swap<tbb::acquire>(STATE_READER_UNBLOCKNEXT, STATE_READER);
+            }
+            this->prev = pred;
+            __TBB_ASSERT( !( tricky_pointer(pred) & FLAG ), "use of corrupted pointer!" );
+            __TBB_ASSERT( !pred->next, "the predecessor has another successor!");
+            // ensure release semantics on IPF
+           __TBB_store_with_release(pred->next,this);
+            if( pred_state != STATE_ACTIVEREADER ) {
+                SpinwaitUntilEq(going, 1);
+            }
+        }
+        unsigned short old_state = state.compare_and_swap<tbb::acquire>(STATE_ACTIVEREADER, STATE_READER);
+        if( old_state!=STATE_READER ) {
+            // Failed to become active reader -> need to unblock the next waiting reader first
+            __TBB_ASSERT( state==STATE_READER_UNBLOCKNEXT, "unexpected state" );
+            SpinwaitWhileEq(next, (scoped_lock*)NULL);
+            /* state should be changed before unblocking the next otherwise it might finish
+               and another thread can get our old state and left blocked */
+            state = STATE_ACTIVEREADER;
+            // ensure release semantics on IPF
+           __TBB_store_with_release(next->going,1);
+        }
+    }
+
+    ITT_NOTIFY(sync_acquired, mutex);
+
+    // Force acquire so that user's critical section receives correct values
+    // from processor that was previously in the user's critical section.
+    __TBB_load_with_acquire(going);
+}
+
+//! A method to try-acquire queuing_rw_mutex lock
+bool queuing_rw_mutex::scoped_lock::try_acquire( queuing_rw_mutex& m, bool write )
+{
+    __TBB_ASSERT( !this->mutex, "scoped_lock is already holding a mutex");
+
+    // Must set all fields before the fetch_and_store, because once the
+    // fetch_and_store executes, *this becomes accessible to other threads.
+    prev  = NULL;
+    next  = NULL;
+    going = 0;
+    state = write ? STATE_WRITER : STATE_ACTIVEREADER;
+    internal_lock = RELEASED;
+
+    if( m.q_tail ) return false;
+    // The CAS must have release semantics, because we are
+    // "sending" the fields initialized above to other processors.
+    queuing_rw_mutex::scoped_lock* pred = m.q_tail.compare_and_swap<tbb::release>(this, NULL);
+
+    // Force acquire so that user's critical section receives correct values
+    // from processor that was previously in the user's critical section.
+    // try_acquire should always have acquire semantic, even if failed.
+    __TBB_load_with_acquire(going);
+
+    if( !pred ) {
+        mutex = &m;
+        ITT_NOTIFY(sync_acquired, mutex);
+        return true;
+    } else return false;
+
+}
+
+//! A method to release queuing_rw_mutex lock
+void queuing_rw_mutex::scoped_lock::release( )
+{
+    __TBB_ASSERT(this->mutex!=NULL, "no lock acquired");
+
+    ITT_NOTIFY(sync_releasing, mutex);
+
+    if( state == STATE_WRITER ) { // Acquired for write
+
+        // The logic below is the same as "writerUnlock", but restructured to remove "return" in the middle of routine.
+        // In the statement below, acquire semantics of reading 'next' is required
+        // so that following operations with fields of 'next' are safe.
+        scoped_lock* n = __TBB_load_with_acquire(next);
+        if( !n ) {
+            if( this == mutex->q_tail.compare_and_swap<tbb::release>(NULL, this) ) {
+                // this was the only item in the queue, and the queue is now empty.
+                goto done;
+            }
+            SpinwaitWhileEq( next, (scoped_lock*)NULL );
+            n = next;
+        }
+        n->going = 2; // protect next queue node from being destroyed too early
+        if( n->state==STATE_UPGRADE_WAITING ) {
+            // the next waiting for upgrade means this writer was upgraded before.
+            acquire_internal_lock();
+            queuing_rw_mutex::scoped_lock* tmp = tricky_pointer::fetch_and_store<tbb::release>(&(n->prev), NULL);
+            n->state = STATE_UPGRADE_LOSER;
+            // The volatile here ensures release semantics on IPF, which is necessary
+            // so that the user's critical section sends the correct values to the next
+            // process that acquires the critical section.
+            __TBB_store_with_release(n->going,1);
+            unblock_or_wait_on_internal_lock(get_flag(tmp));
+        } else {
+            __TBB_ASSERT( state & (STATE_COMBINED_WAITINGREADER | STATE_WRITER), "unexpected state" );
+            __TBB_ASSERT( !( tricky_pointer(n->prev) & FLAG ), "use of corrupted pointer!" );
+            n->prev = NULL;
+            // ensure release semantics on IPF
+            __TBB_store_with_release(n->going,1);
+        }
+
+    } else { // Acquired for read
+
+        queuing_rw_mutex::scoped_lock *tmp = NULL;
+retry:
+        // Addition to the original paper: Mark this->prev as in use
+        queuing_rw_mutex::scoped_lock *pred = tricky_pointer::fetch_and_add<tbb::acquire>(&(this->prev), FLAG);
+
+        if( pred ) {
+            if( !(pred->try_acquire_internal_lock()) )
+            {
+                // Failed to acquire the lock on pred. The predecessor either unlinks or upgrades.
+                // In the second case, it could or could not know my "in use" flag - need to check
+                tmp = tricky_pointer::compare_and_swap<tbb::release>(&(this->prev), pred, tricky_pointer(pred)|FLAG );
+                if( !(tricky_pointer(tmp)&FLAG) ) {
+                    // Wait for the predecessor to change this->prev (e.g. during unlink)
+                    SpinwaitWhileEq( this->prev, tricky_pointer(pred)|FLAG );
+                    // Now owner of pred is waiting for _us_ to release its lock
+                    pred->release_internal_lock();
+                }
+                else ; // The "in use" flag is back -> the predecessor didn't get it and will release itself; nothing to do
+
+                tmp = NULL;
+                goto retry;
+            }
+            __TBB_ASSERT(pred && pred->internal_lock==ACQUIRED, "predecessor's lock is not acquired");
+            this->prev = pred;
+            acquire_internal_lock();
+
+            __TBB_store_with_release(pred->next,reinterpret_cast<scoped_lock *>(NULL));
+
+            if( !next && this != mutex->q_tail.compare_and_swap<tbb::release>(pred, this) ) {
+                SpinwaitWhileEq( next, (void*)NULL );
+            }
+            __TBB_ASSERT( !get_flag(next), "use of corrupted pointer" );
+
+            // ensure acquire semantics of reading 'next'
+            if( __TBB_load_with_acquire(next) ) { // I->next != nil
+                // Equivalent to I->next->prev = I->prev but protected against (prev[n]&FLAG)!=0
+                tmp = tricky_pointer::fetch_and_store<tbb::release>(&(next->prev), pred);
+                // I->prev->next = I->next;
+                __TBB_ASSERT(this->prev==pred, "");
+                __TBB_store_with_release(pred->next,next);
+            }
+            // Safe to release in the order opposite to acquiring which makes the code simplier
+            pred->release_internal_lock();
+
+        } else { // No predecessor when we looked
+            acquire_internal_lock();  // "exclusiveLock(&I->EL)"
+            // ensure acquire semantics of reading 'next'
+            scoped_lock* n = __TBB_load_with_acquire(next);
+            if( !n ) {
+                if( this != mutex->q_tail.compare_and_swap<tbb::release>(NULL, this) ) {
+                    SpinwaitWhileEq( next, (scoped_lock*)NULL );
+                    n = next;
+                } else {
+                    goto unlock_self;
+                }
+            }
+            n->going = 2; // protect next queue node from being destroyed too early
+            tmp = tricky_pointer::fetch_and_store<tbb::release>(&(n->prev), NULL);
+            // ensure release semantics on IPF
+            __TBB_store_with_release(n->going,1);
+        }
+unlock_self:
+        unblock_or_wait_on_internal_lock(get_flag(tmp));
+    }
+done:
+    SpinwaitWhileEq( going, 2 );
+
+    initialize();
+}
+
+//! A method to downgrade a writer to a reader.
+/** See more detailed comments in the SPIN model:
+    <TBB directory>/tools/spin_models/ReaderWriterMutex.pml */
+bool queuing_rw_mutex::scoped_lock::downgrade_to_reader()
+{
+    __TBB_ASSERT( state==STATE_WRITER, "no sense to downgrade a reader" );
+
+    ITT_NOTIFY(sync_releasing, mutex);
+
+    // ensure acquire semantics of reading 'next'
+    if( ! __TBB_load_with_acquire(next) ) {
+        state = STATE_READER;
+        if( this==mutex->q_tail ) {
+            unsigned short old_state = state.compare_and_swap<tbb::release>(STATE_ACTIVEREADER, STATE_READER);
+            if( old_state==STATE_READER ) {
+                goto downgrade_done;
+            }
+        }
+        /* wait for the next to register */
+        SpinwaitWhileEq( next, (void*)NULL );
+    }
+    __TBB_ASSERT( next, "still no successor at this point!" );
+    if( next->state & STATE_COMBINED_WAITINGREADER )
+        __TBB_store_with_release(next->going,1);
+    else if( next->state==STATE_UPGRADE_WAITING )
+        // the next waiting for upgrade means this writer was upgraded before.
+        next->state = STATE_UPGRADE_LOSER;
+    state = STATE_ACTIVEREADER;
+
+downgrade_done:
+    return true;
+}
+
+//! A method to upgrade a reader to a writer.
+/** See more detailed comments in the SPIN model:
+    <TBB directory>/tools/spin_models/ReaderWriterMutex.pml */
+bool queuing_rw_mutex::scoped_lock::upgrade_to_writer()
+{
+    __TBB_ASSERT( state==STATE_ACTIVEREADER, "only active reader can be upgraded" );
+
+    queuing_rw_mutex::scoped_lock * tmp;
+    queuing_rw_mutex::scoped_lock * me = this;
+
+    ITT_NOTIFY(sync_releasing, mutex);
+    state = STATE_UPGRADE_REQUESTED;
+requested:
+    __TBB_ASSERT( !( tricky_pointer(next) & FLAG ), "use of corrupted pointer!" );
+    acquire_internal_lock();
+    if( this != mutex->q_tail.compare_and_swap<tbb::release>(tricky_pointer(me)|FLAG, this) ) {
+        SpinwaitWhileEq( next, (void*)NULL );
+        queuing_rw_mutex::scoped_lock * n;
+        n = tricky_pointer::fetch_and_add<tbb::acquire>(&(this->next), FLAG);
+        unsigned short n_state = n->state;
+        /* the next reader can be blocked by our state. the best thing to do is to unblock it */
+        if( n_state & STATE_COMBINED_WAITINGREADER )
+            __TBB_store_with_release(n->going,1);
+        tmp = tricky_pointer::fetch_and_store<tbb::release>(&(n->prev), this);
+        unblock_or_wait_on_internal_lock(get_flag(tmp));
+        if( n_state & (STATE_COMBINED_READER | STATE_UPGRADE_REQUESTED) ) {
+            // save n|FLAG for simplicity of following comparisons
+            tmp = tricky_pointer(n)|FLAG;
+            ExponentialBackoff backoff;
+            while(next==tmp) {
+                if( state & STATE_COMBINED_UPGRADING ) {
+                    if( __TBB_load_with_acquire(next)==tmp )
+                        next = n;
+                    goto waiting;
+                }
+                backoff.pause();
+            }
+            __TBB_ASSERT(next!=(tricky_pointer(n)|FLAG), NULL);
+            goto requested;
+        } else {
+            __TBB_ASSERT( n_state & (STATE_WRITER | STATE_UPGRADE_WAITING), "unexpected state");
+            __TBB_ASSERT( (tricky_pointer(n)|FLAG)==next, NULL);
+            next = n;
+        }
+    } else {
+        /* We are in the tail; whoever comes next is blocked by q_tail&FLAG */
+        release_internal_lock();
+    } // if( this != mutex->q_tail... )
+    state.compare_and_swap<tbb::acquire>(STATE_UPGRADE_WAITING, STATE_UPGRADE_REQUESTED);
+
+waiting:
+    __TBB_ASSERT( !( tricky_pointer(next) & FLAG ), "use of corrupted pointer!" );
+    __TBB_ASSERT( state & STATE_COMBINED_UPGRADING, "wrong state at upgrade waiting_retry" );
+    __TBB_ASSERT( me==this, NULL );
+    ITT_NOTIFY(sync_prepare, mutex);
+    /* if noone was blocked by the "corrupted" q_tail, turn it back */
+    mutex->q_tail.compare_and_swap<tbb::release>( this, tricky_pointer(me)|FLAG );
+    queuing_rw_mutex::scoped_lock * pred;
+    pred = tricky_pointer::fetch_and_add<tbb::acquire>(&(this->prev), FLAG);
+    if( pred ) {
+        bool success = pred->try_acquire_internal_lock();
+        //unsigned short pred_state = // keep the variable in code just in case
+		pred->state.compare_and_swap<tbb::release>(STATE_UPGRADE_WAITING, STATE_UPGRADE_REQUESTED);
+        if( !success ) {
+            tmp = tricky_pointer::compare_and_swap<tbb::release>(&(this->prev), pred, tricky_pointer(pred)|FLAG );
+            if( tricky_pointer(tmp)&FLAG ) {
+                SpinwaitWhileEq(this->prev, pred);
+                pred = this->prev;
+            } else {
+                SpinwaitWhileEq( this->prev, tricky_pointer(pred)|FLAG );
+                pred->release_internal_lock();
+            }
+        } else {
+            this->prev = pred;
+            pred->release_internal_lock();
+            SpinwaitWhileEq(this->prev, pred);
+            pred = this->prev;
+        }
+        if( pred )
+            goto waiting;
+    } else {
+        // restore the corrupted prev field for possible further use (e.g. if downgrade back to reader)
+        this->prev = pred;
+    }
+    __TBB_ASSERT( !pred && !this->prev, "" );
+
+    // additional lifetime issue prevention checks
+    // wait for the successor to finish working with my fields
+    wait_for_release_of_internal_lock();
+    // now wait for the predecesor to finish working with my fields
+    SpinwaitWhileEq( going, 2 );
+    // there is an acquire semantics statement in the end of SpinwaitWhileEq.
+
+    bool result = ( state != STATE_UPGRADE_LOSER );
+    state = STATE_WRITER;
+    going = 1;
+
+    ITT_NOTIFY(sync_acquired, mutex);
+    return result;
+}
+
+} // namespace tbb
diff --git a/src/tbb/spin_mutex.cpp b/src/tbb/spin_mutex.cpp
new file mode 100644
index 0000000..402737a
--- /dev/null
+++ b/src/tbb/spin_mutex.cpp
@@ -0,0 +1,64 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/tbb_machine.h"
+#include "tbb/spin_mutex.h"
+#include "itt_notify.h"
+#include "tbb_misc.h"
+
+namespace tbb {
+
+void spin_mutex::scoped_lock::internal_acquire( spin_mutex& m ) {
+    __TBB_ASSERT( !my_mutex, "already holding a lock on a spin_mutex" );
+    ITT_NOTIFY(sync_prepare, &m);
+    my_unlock_value = __TBB_LockByte(m.flag);
+    my_mutex = &m;
+    ITT_NOTIFY(sync_acquired, &m);
+}
+
+void spin_mutex::scoped_lock::internal_release() {
+    __TBB_ASSERT( my_mutex, "release on spin_mutex::scoped_lock that is not holding a lock" );
+    __TBB_ASSERT( !(my_unlock_value&1), "corrupted scoped_lock?" );
+
+    ITT_NOTIFY(sync_releasing, my_mutex);
+    my_mutex->flag = static_cast<unsigned char>(my_unlock_value);
+    my_mutex = NULL;
+}
+
+bool spin_mutex::scoped_lock::internal_try_acquire( spin_mutex& m ) {
+    __TBB_ASSERT( !my_mutex, "already holding a lock on a spin_mutex" );
+    bool result = bool( __TBB_TryLockByte(m.flag) );
+    if( result ) {
+        my_unlock_value = 0;
+        my_mutex = &m;
+        ITT_NOTIFY(sync_acquired, &m);
+    }
+    return result;
+}
+
+} // namespace tbb
diff --git a/src/tbb/spin_rw_mutex.cpp b/src/tbb/spin_rw_mutex.cpp
new file mode 100644
index 0000000..aa7def3
--- /dev/null
+++ b/src/tbb/spin_rw_mutex.cpp
@@ -0,0 +1,164 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/spin_rw_mutex.h"
+#include "tbb/tbb_machine.h"
+#include "tbb_misc.h"
+#include "itt_notify.h"
+
+namespace tbb {
+
+using namespace internal;
+
+static inline bool CAS(volatile uintptr &addr, uintptr newv, uintptr oldv) {
+    return __TBB_CompareAndSwapW((volatile void *)&addr, (intptr)newv, (intptr)oldv) == (intptr)oldv;
+}
+
+//! Signal that write lock is released
+void spin_rw_mutex::internal_itt_releasing(spin_rw_mutex *mutex) {
+    ITT_NOTIFY(sync_releasing, mutex);
+}
+
+bool spin_rw_mutex::internal_acquire_writer(spin_rw_mutex *mutex)
+{
+    ITT_NOTIFY(sync_prepare, mutex);
+    ExponentialBackoff backoff;
+    while(true) {
+        state_t s = mutex->state;
+        if( !(s & BUSY) ) { // no readers, no writers
+            if( CAS(mutex->state, WRITER, s) )
+                break; // successfully stored writer flag
+            backoff.reset(); // we could be very close to complete op.
+        } else if( !(s & WRITER_PENDING) ) { // no pending writers
+            __TBB_AtomicOR(&mutex->state, WRITER_PENDING);
+        }
+        backoff.pause();
+    }
+    ITT_NOTIFY(sync_acquired, mutex);
+    __TBB_ASSERT( (mutex->state & BUSY)==WRITER, "invalid state of a write lock" );
+    return false;
+}
+
+//! Signal that write lock is released
+void spin_rw_mutex::internal_release_writer(spin_rw_mutex *mutex) {
+    __TBB_ASSERT( (mutex->state & BUSY)==WRITER, "invalid state of a write lock" );
+    ITT_NOTIFY(sync_releasing, mutex);
+    mutex->state = 0; 
+}
+
+//! Acquire lock on given mutex.
+void spin_rw_mutex::internal_acquire_reader(spin_rw_mutex *mutex) {
+    ITT_NOTIFY(sync_prepare, mutex);
+    ExponentialBackoff backoff;
+    while(true) {
+        state_t s = mutex->state;
+        if( !(s & (WRITER|WRITER_PENDING)) ) { // no writer or write requests
+            if( CAS(mutex->state, s+ONE_READER, s) )
+                break; // successfully stored increased number of readers
+            backoff.reset(); // we could be very close to complete op.
+        }
+        backoff.pause();
+    }
+    ITT_NOTIFY(sync_acquired, mutex);
+    __TBB_ASSERT( mutex->state & READERS, "invalid state of a read lock: no readers" );
+    __TBB_ASSERT( !(mutex->state & WRITER), "invalid state of a read lock: active writer" );
+}
+
+//! Upgrade reader to become a writer.
+/** Returns true if the upgrade happened without re-acquiring the lock and false if opposite */
+bool spin_rw_mutex::internal_upgrade(spin_rw_mutex *mutex) {
+    state_t s = mutex->state;
+    __TBB_ASSERT( s & READERS, "invalid state before upgrade: no readers " );
+    __TBB_ASSERT( !(s & WRITER), "invalid state before upgrade: active writer " );
+    // check and set writer-pending flag
+    // required conditions: either no pending writers, or we are the only reader
+    // (with multiple readers and pending writer, another upgrade could have been requested)
+    while( (s & READERS)==ONE_READER || !(s & WRITER_PENDING) ) {
+        if( CAS(mutex->state, s | WRITER_PENDING, s) )
+        {
+            ExponentialBackoff backoff;
+            ITT_NOTIFY(sync_prepare, mutex);
+            while( (mutex->state & READERS) != ONE_READER ) // more than 1 reader
+                backoff.pause();
+            // the state should be 0...0110, i.e. 1 reader and waiting writer;
+            // both new readers and writers are blocked
+            __TBB_ASSERT(mutex->state == (ONE_READER | WRITER_PENDING),"invalid state when upgrading to writer");
+            mutex->state = WRITER;
+            ITT_NOTIFY(sync_acquired, mutex);
+            __TBB_ASSERT( (mutex->state & BUSY) == WRITER, "invalid state after upgrade" );
+            return true; // successfully upgraded
+        } else {
+            s = mutex->state; // re-read
+        }
+    }
+    // slow reacquire
+    internal_release_reader(mutex);
+    return internal_acquire_writer(mutex); // always returns false
+}
+
+void spin_rw_mutex::internal_downgrade(spin_rw_mutex *mutex) {
+    __TBB_ASSERT( (mutex->state & BUSY) == WRITER, "invalid state before downgrade" );
+    ITT_NOTIFY(sync_releasing, mutex);
+    mutex->state = ONE_READER;
+    __TBB_ASSERT( mutex->state & READERS, "invalid state after downgrade: no readers" );
+    __TBB_ASSERT( !(mutex->state & WRITER), "invalid state after downgrade: active writer" );
+}
+
+void spin_rw_mutex::internal_release_reader(spin_rw_mutex *mutex)
+{
+    __TBB_ASSERT( mutex->state & READERS, "invalid state of a read lock: no readers" );
+    __TBB_ASSERT( !(mutex->state & WRITER), "invalid state of a read lock: active writer" );
+    ITT_NOTIFY(sync_releasing, mutex); // release reader
+    __TBB_FetchAndAddWrelease((volatile void *)&(mutex->state),-(intptr)ONE_READER);
+}
+
+bool spin_rw_mutex::internal_try_acquire_writer( spin_rw_mutex * mutex )
+{
+// for a writer: only possible to acquire if no active readers or writers
+    state_t s = mutex->state; // on Itanium, this volatile load has acquire semantic
+    if( !(s & BUSY) ) // no readers, no writers; mask is 1..1101
+        if( CAS(mutex->state, WRITER, s) ) {
+            ITT_NOTIFY(sync_acquired, mutex);
+            return true; // successfully stored writer flag
+        }
+    return false;
+}
+
+bool spin_rw_mutex::internal_try_acquire_reader( spin_rw_mutex * mutex )
+{
+// for a reader: acquire if no active or waiting writers
+    state_t s = mutex->state;    // on Itanium, a load of volatile variable has acquire semantic
+    while( !(s & (WRITER|WRITER_PENDING)) ) // no writers
+        if( CAS(mutex->state, s+ONE_READER, s) ) {
+            ITT_NOTIFY(sync_acquired, mutex);
+            return true; // successfully stored increased number of readers
+        }
+    return false;
+}
+
+} // namespace tbb
diff --git a/src/tbb/task.cpp b/src/tbb/task.cpp
new file mode 100644
index 0000000..62e9da6
--- /dev/null
+++ b/src/tbb/task.cpp
@@ -0,0 +1,2028 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+/* This file contains the TBB task scheduler. There are many classes
+   lumped together here because very few are exposed to the outside
+   world, and by putting them in a single translation unit, the
+   compiler's optimizer might be able to do a better job. */
+
+#if USE_PTHREAD
+
+    // Some pthreads documentation says that <pthreads.h> must be first header.
+    #include <pthread.h>
+
+#elif USE_WINTHREAD
+
+    #include <windows.h>
+    #include <process.h>        /* Need _beginthreadex from there */
+    #include <malloc.h>         /* Need _alloca from there */
+    const size_t ThreadStackSize = 1<<20;
+
+#else
+
+    #error Must define USE_PTHREAD or USE_WINTHREAD
+
+#endif
+
+#include <cassert>
+#include <cstddef>
+#include <cstdlib>
+#include <cstring>
+#include <cstdio>
+#include <new>
+#include "tbb/tbb_stddef.h"
+
+
+/* Temporarily change "private" to "public" while including "tbb/task.h"
+   This hack allows us to avoid publishing types Arena and CustomScheduler
+   in the public header files. */
+#define private public
+#include "tbb/task.h"
+#undef private
+
+#include "tbb/task_scheduler_init.h"
+#include "tbb/cache_aligned_allocator.h"
+#include "tbb/tbb_stddef.h"
+#include "tbb/tbb_machine.h"
+#include "tbb_misc.h"
+#include "tbb/mutex.h"
+#include "tbb/atomic.h"
+#include "tbb/gate.h"
+
+#if DO_TBB_TRACE
+#include <cstdio>
+#define TBB_TRACE(x) ((void)std::printf x)
+#else
+#define TBB_TRACE(x) ((void)(0))
+#endif /* DO_TBB_TRACE */
+
+#if TBB_DO_ASSERT
+#define COUNT_TASK_NODES 1
+#endif /* TBB_DO_ASSERT */
+
+/* If nonzero, then gather statistics */
+#ifndef STATISTICS
+#define STATISTICS 0
+#endif /* STATISTICS */
+
+#if STATISTICS
+#define GATHER_STATISTIC(x) (x)
+#else
+#define GATHER_STATISTIC(x) ((void)0)
+#endif /* STATISTICS */
+
+namespace tbb {
+
+using namespace std;
+
+namespace internal {
+
+template<typename SchedulerTraits> class CustomScheduler;
+
+typedef task::depth_type depth_type;
+
+
+//------------------------------------------------------------------------
+// TaskPool
+//------------------------------------------------------------------------
+
+//! Prefix to a TaskPool
+class TaskPoolPrefix {
+    static const unsigned null_arena_index = ~0u;
+
+    unsigned arena_index;
+
+    //! Index of first non-empty element of TaskPool::array
+    depth_type steal_begin;
+
+    friend class GenericScheduler;
+    friend class TaskPool;
+};
+
+//! Pool of tasks, organized as a deque.
+class TaskPool {
+    typedef size_t size_type;
+
+    static const size_type min_array_size = (NFS_MaxLineSize-sizeof(TaskPoolPrefix))/sizeof(task*);
+
+    /** Must be last field, because it is really array of indeterminate length. */
+    task* array[min_array_size];
+
+    //! Get reference to prefix portion
+    TaskPoolPrefix& prefix() const {return ((TaskPoolPrefix*)(void*)this)[-1];}
+
+    //! Return number of bytes required to allocate a pool with given number of array elements.
+    static size_t byte_size( size_type array_size ) {
+        return sizeof(TaskPoolPrefix)+array_size*sizeof(task*);
+    }
+
+    //! Allocate TaskPool object with given number of array elements.
+    static TaskPool* allocate_task_pool( size_type array_size ) {
+        __TBB_ASSERT( array_size>0, NULL );
+        size_t n = byte_size(array_size);
+        unsigned char* storage = (unsigned char*)NFS_Allocate( n, 1, NULL );
+        memset( storage, 0, n );
+        return (TaskPool*)(storage+sizeof(TaskPoolPrefix));
+    }
+
+    //! Deallocate a TaskPool that was allocated by method allocate.
+    void free_task_pool() {
+        __TBB_ASSERT( this, "attempt to free NULL TaskPool" );
+        NFS_Free( &prefix() );
+    }
+
+    friend class GenericScheduler;
+    template<typename SchedulerTraits> friend class internal::CustomScheduler;
+
+#if TBB_DO_ASSERT
+    bool assert_okay() const {
+        __TBB_ASSERT( this!=NULL, NULL );
+        __TBB_ASSERT( prefix().steal_begin>=-4, NULL );
+        return true;
+    }
+#endif /* TBB_DO_ASSERT */
+};
+
+//------------------------------------------------------------------------
+// Arena
+//------------------------------------------------------------------------
+
+class Arena;
+class GenericScheduler;
+
+struct WorkerDescriptor {
+    Arena* arena;
+    //! NULL until worker is published.
+    GenericScheduler* volatile scheduler;
+#if USE_WINTHREAD
+    //! Handle of the owning thread.
+    HANDLE thread_handle;
+#elif USE_PTHREAD
+    //! Handle of the owning thread.
+    pthread_t thread_handle;
+#else
+    unsigned long dummy_handle;
+#endif /* USE_WINTHREAD */
+
+    //! Start worker thread for this descriptor.
+    void start_one_worker_thread();
+};
+
+//! The useful contents of an ArenaPrefix
+class UnpaddedArenaPrefix {
+    friend class GenericScheduler;
+    template<typename SchedulerTraits> friend class internal::CustomScheduler;
+    friend class Arena;
+    friend class tbb::task_scheduler_init;
+
+    //! One more than index of highest arena slot currently in use.
+    atomic<size_t> limit;
+
+    //! Number of masters that own this arena.
+    /** This may be smaller than the number of masters who have entered the arena. */
+    unsigned number_of_masters;
+
+    //! Total number of slots in the arena
+    const unsigned number_of_slots;
+
+    //! One more than number of workers that belong to this arena
+    const unsigned number_of_workers;
+
+    //! Array of workers.
+    WorkerDescriptor* worker_list;
+
+#if COUNT_TASK_NODES
+    //! Net number of nodes that have been allocated from heap.
+    /** Updated each time a scheduler is destroyed. */
+    atomic<intptr> task_node_count;
+#endif /* COUNT_TASK_NODES */
+
+    //! Gate at which worker threads wait until a master spawns a task.
+    Gate gate;
+ 
+protected:
+    UnpaddedArenaPrefix( unsigned number_of_slots_, unsigned number_of_workers_ ) :
+        number_of_masters(1),
+        number_of_slots(number_of_slots_),
+        number_of_workers(number_of_workers_)
+    {
+#if COUNT_TASK_NODES
+        task_node_count = 0;
+#endif /* COUNT_TASK_NODES */
+        limit = number_of_workers;
+    }
+};
+
+//! The prefix to Arena with padding.
+class ArenaPrefix: public UnpaddedArenaPrefix {
+    //! Padding to fill out to multiple of cache line size.
+    char pad[(sizeof(UnpaddedArenaPrefix)/NFS_MaxLineSize+1)*NFS_MaxLineSize-sizeof(UnpaddedArenaPrefix)];
+
+public:
+    ArenaPrefix( unsigned number_of_slots_, unsigned number_of_workers_ ) :
+        UnpaddedArenaPrefix(number_of_slots_,number_of_workers_)
+    {
+    }
+};
+
+struct UnpaddedArenaSlot {
+    //! Holds copy of task_pool->deepest and a lock bit
+    /** Computed as 2*task_pool->deepest+(is_locked).
+        I.e., the low order bit indicates whether the slot is locked. */
+    volatile depth_type steal_end;
+    TaskPool* task_pool;
+    bool owner_waits;
+};
+
+struct ArenaSlot: UnpaddedArenaSlot {
+    char pad[NFS_MaxLineSize-sizeof(UnpaddedArenaSlot)];
+};
+
+class Arena {
+    friend class GenericScheduler;
+    template<typename SchedulerTraits> friend class internal::CustomScheduler;
+    friend class tbb::task_scheduler_init;
+
+    //! Get reference to prefix portion
+    ArenaPrefix& prefix() const {return ((ArenaPrefix*)(void*)this)[-1];}
+
+
+    //! Allocate the arena
+    /** Allocates an instance of Arena and sets TheArena to point to it.
+        Creates the worker threads, but does not wait for them to start. */
+    static Arena* allocate_arena( unsigned number_of_slots, unsigned number_of_workers );
+
+
+    //! Terminate worker threads
+    /** Wait for worker threads to complete. */
+    void terminate_workers();
+
+#if COUNT_TASK_NODES
+    //! Returns the number of task objects "living" in worker threads
+    inline intptr workers_task_node_count();
+#endif
+
+    /** Must be last field */
+    ArenaSlot slot[1];
+};
+
+//------------------------------------------------------------------------
+// Traits classes for scheduler
+//------------------------------------------------------------------------
+
+struct DefaultSchedulerTraits {
+    static const int id = 0;
+    static const bool itt_possible = true;
+    static const bool has_slow_atomic = false;
+};
+
+struct IntelSchedulerTraits {
+    static const int id = 1;
+    static const bool itt_possible = false;
+#if __TBB_x86_32||__TBB_x86_64
+    static const bool has_slow_atomic = true;
+#else
+    static const bool has_slow_atomic = false;
+#endif /* __TBB_x86_32||__TBB_x86_64 */
+};
+
+//------------------------------------------------------------------------
+// Begin shared data layout.
+//
+// The follow global data items are read-only after initialization.
+// The first item is aligned on a 128 byte boundary so that it starts a new cache line.
+//------------------------------------------------------------------------
+
+static internal::Arena *volatile TheArena;
+static mutex TheArenaMutex;
+
+//! T::id for the scheduler traits type T to use for the scheduler
+/** For example, the default value is DefaultSchedulerTraits::id. */
+static int SchedulerTraitsId;
+
+} // namespace internal
+
+} // namespace tbb
+
+#include "itt_notify.h"
+
+namespace tbb {
+namespace internal {
+
+//! Flag that is set to true after one-time initializations are done.
+static volatile bool OneTimeInitializationsDone;
+
+#if USE_WINTHREAD
+static CRITICAL_SECTION OneTimeInitializationCriticalSection;
+//! Index for thread-local storage.
+/** The original version of TBB used __declspec(thread) for thread-local storage.
+    Unfortunately, __declspec(thread) does not work on pre-Vista OSes for DLLs
+    called from plug-ins. */
+static DWORD TLS_Index;
+#else
+static pthread_mutex_t OneTimeInitializationMutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_key_t TLS_Key;
+#endif /* USE_WINTHREAD */
+
+//! Table of primes used by fast random-number generator.
+/** Also serves to keep anything else from being placed in the same
+    cache line as the global data items preceding it. */
+static const unsigned Primes[] = {
+    0x9e3779b1, 0xffe6cc59, 0x2109f6dd, 0x43977ab5,
+    0xba5703f5, 0xb495a877, 0xe1626741, 0x79695e6b,
+    0xbc98c09f, 0xd5bee2b3, 0x287488f9, 0x3af18231,
+    0x9677cd4d, 0xbe3a6929, 0xadc6a877, 0xdcf0674b,
+    0xbe4d6fe9, 0x5f15e201, 0x99afc3fd, 0xf3f16801,
+    0xe222cfff, 0x24ba5fdb, 0x0620452d, 0x79f149e3,
+    0xc8b93f49, 0x972702cd, 0xb07dd827, 0x6c97d5ed,
+    0x085a3d61, 0x46eb5ea7, 0x3d9910ed, 0x2e687b5b,
+    0x29609227, 0x6eb081f1, 0x0954c4e1, 0x9d114db9,
+    0x542acfa9, 0xb3e6bd7b, 0x0742d917, 0xe9f3ffa7,
+    0x54581edb, 0xf2480f45, 0x0bb9288f, 0xef1affc7,
+    0x85fa0ca7, 0x3ccc14db, 0xe6baf34b, 0x343377f7,
+    0x5ca19031, 0xe6d9293b, 0xf0a9f391, 0x5d2e980b,
+    0xfc411073, 0xc3749363, 0xb892d829, 0x3549366b,
+    0x629750ad, 0xb98294e5, 0x892d9483, 0xc235baf3,
+    0x3d2402a3, 0x6bdef3c9, 0xbec333cd, 0x40c9520f
+};
+
+//! Amount of time to pause between steals.
+/** The default values below were found to be best empircally for K-Means
+    on the 32-way Altix and 4-way (*2 for HT) fxqlin04. */
+#if __TBB_ipf
+static long PauseTime = 1500;
+#else 
+static long PauseTime = 80;
+#endif
+
+//------------------------------------------------------------------------
+// End of shared data layout
+//------------------------------------------------------------------------
+
+//------------------------------------------------------------------------
+// One-time Initializations
+//------------------------------------------------------------------------
+
+//! True if running on genuine Intel hardware
+static inline bool IsGenuineIntel() {
+    bool result = true;
+#if defined(__TBB_cpuid)
+    char info[16];
+    char *genuine_string = "GenuntelineI";
+    __TBB_x86_cpuid( reinterpret_cast<int *>(info), 0 );
+    // The multibyte chars below spell "GenuineIntel".
+    //if( info[1]=='uneG' && info[3]=='Ieni' && info[2]=='letn' ) {
+    //    result = true;
+    //}
+    for (int i = 4; i < 16; ++i) {
+        if ( info[i] != genuine_string[i-4] ) {
+            result = false;
+            break;
+        }
+    }
+#elif __TBB_ipf
+    result = true;
+#else
+    result = false;
+#endif
+    return result;
+}
+
+//! Defined in cache_aligned_allocator.cpp
+extern void initialize_cache_aligned_allocator();
+
+//! Perform lazy one-time initializations. */
+void DoOneTimeInitializations() {
+#if USE_PTHREAD
+    int status = 0;
+    pthread_mutex_lock( &OneTimeInitializationMutex );
+#else
+    EnterCriticalSection( &OneTimeInitializationCriticalSection );
+#endif /* USE_PTHREAD */
+    if( !OneTimeInitializationsDone ) {
+        if( GetBoolEnvironmentVariable("TBB_VERSION") )
+            PrintVersion();
+#if USE_PTHREAD
+        // Create key for thread-local storage
+        status = pthread_key_create( &TLS_Key, NULL );
+#endif /* USE_PTHREAD */
+        bool have_itt = false;
+#if DO_ITT_NOTIFY
+        have_itt = InitializeITT();
+#endif /* DO_ITT_NOTIFY */
+        initialize_cache_aligned_allocator();
+        if( !have_itt )
+            SchedulerTraitsId = IntelSchedulerTraits::id;
+        PrintExtraVersionInfo( "SCHEDULER",
+                               SchedulerTraitsId==IntelSchedulerTraits::id ? "Intel" : "default" );
+        OneTimeInitializationsDone = true;
+    }
+#if USE_PTHREAD
+    pthread_mutex_unlock( &OneTimeInitializationMutex );
+    if( status )
+        handle_perror(status,"pthread_key_create");
+#else
+    LeaveCriticalSection( &OneTimeInitializationCriticalSection );
+#endif /* USE_PTHREAD */
+}
+
+#if _WIN32||_WIN64
+extern "C" bool WINAPI DllMain( HANDLE hinstDLL, DWORD reason, LPVOID lpvReserved );
+
+//! Windows "DllMain" that handles startup and shutdown of dynamic library.
+/** Currently, its job is to deal with initializing/deleting
+    OneTimeInitializationCriticalSection and allocating/freeing TLS_Index. */
+bool WINAPI DllMain( HANDLE hinstDLL, DWORD reason, LPVOID lpvReserved ) {
+    switch( reason ) {
+        case DLL_PROCESS_ATTACH:
+            TLS_Index = TlsAlloc();
+            if( TLS_Index==TLS_OUT_OF_INDEXES ) {
+#if TBB_DO_ASSERT
+                // Issue diagnostic here, not failing assertion, because client
+                // might want to test graceful recovery from this problem.
+                fprintf( stderr, "DllMain for TBB: TlsAlloc() returned TLS_OUT_OF_INDEXES\n" );
+#endif /* TBB_DO_ASSERT */
+                return false;
+            }
+            InitializeCriticalSection(&OneTimeInitializationCriticalSection);
+            break;
+        case DLL_PROCESS_DETACH:
+            DeleteCriticalSection(&OneTimeInitializationCriticalSection);
+#if TBB_DO_ASSERT
+            if( TlsGetValue(TLS_Index) ) {
+                fprintf( stderr, "DllMain for TBB: thread quit without destroying its tbb::task_scheduler_init object?" );
+            }
+#endif /* TBB_DO_ASSERT */
+            TlsFree(TLS_Index);
+            TLS_Index = 0;
+            break;
+    }
+    return true;
+}
+#endif /* _WIN32||_WIN64 */
+
+//------------------------------------------------------------------------
+// Routines for thread-specific global data
+//------------------------------------------------------------------------
+
+static inline void SetThreadSpecific( GenericScheduler* s ) {
+#if USE_WINTHREAD
+    TlsSetValue( TLS_Index, s );
+#else
+    pthread_setspecific( TLS_Key, s );
+#endif /* USE_WINTHREAD */
+}
+
+//! Get scheduler belonging to the current thread.
+/** Returns NULL if this is the first time the thread has requested a scheduler.
+    It's the client's responsibility to check for the NULL, because in many
+    contexts, we can proved that it cannot be NULL. */
+static inline GenericScheduler* GetThreadSpecific() {
+    GenericScheduler *result;
+    // The assertion on OneTimeInitializationsDone checks that we can safely
+    // use TLS_Key/TLS_Index; i.e., that TLS_Key/TLS_Index has been initialized.
+    // The assertion message is intended to help end users.  Even though
+    // OneTimeInitializationsDone might be set for other reasons, if it is
+    // *not* set when a thread reaches here, the reason is almost
+    // certainly that the thread failed to create a task_scheduler_init object.
+    __TBB_ASSERT( OneTimeInitializationsDone, "thread did not activate a task_scheduler_init object?" );
+#if USE_WINTHREAD
+    result = (GenericScheduler*)TlsGetValue( TLS_Index );
+#else
+    result = (GenericScheduler*)pthread_getspecific( TLS_Key );
+#endif /* USE_WINTHREAD */
+    return result;
+}
+
+//------------------------------------------------------------------------
+// FastRandom
+//------------------------------------------------------------------------
+
+//! A fast random number generator.
+/** Uses linear congruential method. */
+class FastRandom {
+    unsigned x, a;
+public:
+    //! Get a random number.
+    unsigned short get() {
+        unsigned short r = x>>16;
+        x = x*a+1;
+        return r;
+    }
+    //! Construct a random number generator.
+    FastRandom( unsigned seed ) {
+        x = seed;
+        a = Primes[seed%(sizeof(Primes)/sizeof(Primes[0]))];
+    }
+};
+
+//------------------------------------------------------------------------
+// GenericScheduler
+//------------------------------------------------------------------------
+
+//  A pure virtual destructor should still have a body
+//  so the one for tbb::internal::scheduler::~scheduler() is provided here
+scheduler::~scheduler( ) {}
+
+//! Cilk-style task scheduler.
+/** None of the fields here are every read or written by threads other than
+    the thread that creates the instance.
+
+    Class GenericScheduler is an abstract base class that contains most of the scheduler,
+    except for tweaks specific to processors and tools (e.g. VTune).
+    The derived template class CustomScheduler<SchedulerTraits> fills in the tweaks. */
+class GenericScheduler: public scheduler {
+    typedef task::depth_type depth_type;
+    friend class tbb::task;
+    friend class tbb::task_scheduler_init;
+    friend struct WorkerDescriptor;
+    friend class Arena;
+    friend class allocate_root_proxy;
+    friend class scheduler;
+    template<typename SchedulerTraits> friend class internal::CustomScheduler;
+
+    //! If sizeof(task) is <=quick_task_size, it is handled on a free list instead of malloc'd.
+    static const size_t quick_task_size = 256-sizeof(internal::task_prefix);
+
+    //! Bit masks
+    enum debug_state_t {
+#if TBB_DO_ASSERT
+        ds_debug = 1<<0,
+        ds_ref_count_active = 1<<1
+#else
+        ds_release = 0
+#endif /* TBB_DO_ASSERT */
+    };
+
+    //! Deepest non-empty level.
+    /** Not read by thieves. -1 if array is empty. */
+    depth_type deepest;
+
+    //! The physical number of slots in "array".
+    /** Read by thieves. */
+    TaskPool::size_type array_size;
+
+    //! Dummy slot used when scheduler is not in arena
+    UnpaddedArenaSlot dummy_slot;
+
+    //! Pointer to my slot in the arena
+    mutable UnpaddedArenaSlot* arena_slot;
+
+    //! The arena that I own (if master) or belong to (if worker)
+    Arena* const arena;
+
+    //! Random number generator used for picking a random victim from which to steal.
+    FastRandom random;
+
+    //! Free list of small tasks that can be reused.
+    task* free_list;
+
+    //! Innermost task whose task::execute() is running.
+    task* innermost_running_task;
+
+    //! Fake root task created by slave threads.
+    /** The task is used as the "parent" argument to method wait_for_all. */
+    task* dummy_task;
+
+    //! Reference count for scheduler
+    long ref_count;
+
+#if !IMPROVED_GATING
+    //! Set to non-null temporarily when entering arena
+    /** Always NULL if insert_task is not running. */
+    Gate* open_gate;
+#endif /* IMPROVED_GATING */
+
+
+#if COUNT_TASK_NODES
+    //! Net number of big task objects that have been allocated but not yet freed.
+    intptr task_node_count;
+#endif /* COUNT_TASK_NODES */
+
+#if STATISTICS
+    long execute_count;
+    long steal_count;
+    long current_active;
+    long current_length;
+    //! Number of big tasks that have been malloc'd.
+    /** To find total number of tasks malloc'd, compute (current_big_malloc+small_task_count) */
+    long current_big_malloc;
+#endif /* STATISTICS */
+
+    //! Try to enter the arena
+    /** On return, guaranteess that task pool has been acquired. */
+    void try_enter_arena();
+
+    //! Leave the arena
+    void leave_arena( bool compress );
+
+    void acquire_task_pool() const;
+
+    void release_task_pool() const;
+
+    //! Get task from ready pool.
+    /** Called only by the thread that owns *this.
+        Gets task only if there is one at depth d or deeper in the pool.
+        If successful, unlinks the task and returns a pointer to it.
+        Otherwise returns NULL. */
+    task* get_task( depth_type d );
+
+    //! Steal task from another scheduler's ready pool.
+    task* steal_task( UnpaddedArenaSlot& arena_slot, depth_type d );
+
+    //! Grow "array" to at least "minimum_size" elements.
+    /** Does nothing if array is already that big.
+        Returns &array[minimum_size-1] */
+    void grow( TaskPool::size_type minimum_size );
+
+    //! Call destructor for a task and put it on the free list (or free it if it is big).
+    void destroy_task( task& t ) {
+        TBB_TRACE(("%p.destroy_task(%p)\n",this,&t));
+        __TBB_ASSERT( t.is_owned_by_current_thread(), "task owned by different thread" );
+        t.~task();
+        free_task<no_hint>( t );
+    }
+    static GenericScheduler* create_master( Arena* a );
+
+    /** The workers are started up as a binary tree, where each vertex in the tree
+        starts any children it has.  The tree is implicitly arranged in TheWorkerList
+        like a binary heap. */
+    static GenericScheduler* create_worker( WorkerDescriptor& w );
+
+    //! Top-level routine for worker threads
+    /** Argument arg is a WorkerDescriptor*, cast to a (void*). */
+#if USE_WINTHREAD
+    static unsigned WINAPI worker_routine( void* arg );
+#else
+    static void* worker_routine( void* arg );
+#endif /* USE_WINTHREAD */
+
+    //! Called by slave threads to free memory and wait for other threads.
+    static void cleanup_worker_thread( void* arg );
+
+protected:
+    GenericScheduler( Arena* arena );
+
+#if TBB_DO_ASSERT || TEST_ASSEMBLY_ROUTINES
+    //! Check that internal data structures are in consistent state.
+    /** Raises __TBB_ASSERT failure if inconsistency is found. */
+    bool assert_okay() const;
+#endif /* TBB_DO_ASSERT || TEST_ASSEMBLY_ROUTINES */
+
+public:
+    /*override*/ void spawn( task& first, task*& next );
+
+    /*override*/ void spawn_root_and_wait( task& first, task*& next );
+
+    static GenericScheduler* allocate_scheduler( Arena* arena );
+
+    //! Destroy and deallocate scheduler that was created with method allocate.
+    void free_scheduler();
+
+    //! Allocate task object, either from the heap or a free list.
+    /** Returns uninitialized task object with initialized prefix. */
+    task& allocate_task( size_t number_of_bytes, depth_type depth, task* parent );
+
+    //! Optimization hint to free_task that enables it omit unnecessary tests and code.
+    enum hint {
+        //! No hint 
+        no_hint=0,
+        //! Task is known to have been allocated by this scheduler
+        is_local=1,
+        //! Task is known to be a small task.
+        /** Task should be returned to the free list of *some* scheduler, possibly not this scheduler. */
+        is_small=2,
+        //! Bitwise-OR of is_local and is_small.  
+        /** Task should be returned to free list of this scheduler. */
+        is_small_local=3
+    };
+
+    //! Put task on free list.
+    /** Does not call destructor. */
+    template<hint h>
+    void free_task( task& t );
+
+
+    void deallocate_task( task& t ) {
+        task_prefix& p = t.prefix();
+#if TBB_DO_ASSERT
+        p.state = 0xFF;
+        poison_pointer(p.next);
+#endif /* TBB_DO_ASSERT */
+        NFS_Free(&p);
+#if COUNT_TASK_NODES
+        task_node_count -= 1;
+#endif /* COUNT_TASK_NODES */
+    }
+
+    //! True if running on a worker thread, false otherwise.
+    inline bool is_worker() {
+        return (dummy_slot.task_pool->prefix().arena_index < arena->prefix().number_of_workers);
+    }
+
+#if IMPROVED_GATING
+    //! No tasks to steal since last snapshot was taken
+    static const Gate::state_t SNAPSHOT_EMPTY = 0;
+
+    //! At least one task has been offered for stealing since the last snapshot started
+    static const Gate::state_t SNAPSHOT_FULL = -1;
+
+    //! Gate is permanently open
+    static const Gate::state_t SNAPSHOT_PERMANENTLY_OPEN = -2;
+
+    //! If necessary, inform gate that task was added to pool recently.
+    void mark_pool_full();
+
+    //! Wait while pool is empty
+    void wait_while_pool_is_empty();
+#endif /* IMPROVED_GATING */
+                 
+#if TEST_ASSEMBLY_ROUTINES
+    /** Defined in test_assembly.cpp */
+    void test_assembly_routines();
+#endif /* TEST_ASSEMBLY_ROUTINES */
+
+#if COUNT_TASK_NODES
+    intptr get_task_node_count( bool count_arena_workers = false ) {
+        return task_node_count + (count_arena_workers? arena->workers_task_node_count(): 0);
+    }
+#endif
+
+    //! Special value used to mark return_list as not taking any more entries.
+    static task* plugged_return_list() {return (task*)(intptr)(-1);}
+
+    //! Number of small tasks that have been allocated by this scheduler. 
+    intptr small_task_count;
+
+    //! List of small tasks that have been returned to this scheduler by other schedulers.
+    // FIXME - see if puting return_list on separate cache line improves performance, 
+    // e.g. on a prefix of the scheduler
+    task* volatile return_list;    
+
+    //! Free a small task t that that was allocated by a different scheduler 
+    void free_nonlocal_small_task( task& t ); 
+};
+
+inline task& GenericScheduler::allocate_task( size_t number_of_bytes, depth_type depth, task* parent ) {
+    GATHER_STATISTIC(current_active+=1);
+    task* t = free_list;
+    if( number_of_bytes<=quick_task_size ) {
+        if( t ) {
+            GATHER_STATISTIC(current_length-=1);
+            __TBB_ASSERT( t->state()==task::freed, "free list of tasks is corrupted" );
+            free_list = t->prefix().next;
+        } else if( return_list ) {
+            t = (task*)__TBB_FetchAndStoreW( &return_list, 0 );
+            __TBB_ASSERT( t, "another thread emptied the return_list" );
+            __TBB_ASSERT( t->prefix().origin==this, "task returned to wrong return_list" );
+            free_list = t->prefix().next;
+        } else {
+            t = &((task_prefix*)NFS_Allocate( sizeof(task_prefix)+quick_task_size, 1, NULL ))->task();
+#if COUNT_TASK_NODES
+            ++task_node_count;
+#endif /* COUNT_TASK_NODES */
+            t->prefix().origin = this;
+            ++small_task_count;
+        }
+    } else {
+        GATHER_STATISTIC(current_big_malloc+=1);
+        t = &((task_prefix*)NFS_Allocate( sizeof(task_prefix)+number_of_bytes, 1, NULL ))->task();
+#if COUNT_TASK_NODES
+        ++task_node_count;
+#endif /* COUNT_TASK_NODES */
+        t->prefix().origin = NULL;
+    }
+    task_prefix& p = t->prefix();
+    p.owner = this;
+    p.ref_count = 0;
+    p.depth = int(depth);
+    p.parent = parent;
+#if TBB_DO_ASSERT
+    p.debug_state = GenericScheduler::ds_debug;
+#else
+    // Clear reserved0 so that if client compiles their code with TBB_DO_ASSERT set,
+    // the assertions in task.h that inspect debug_state still work.
+    p.reserved0 = GenericScheduler::ds_release;
+#endif /* TBB_DO_ASSERT */
+    p.state = task::allocated;
+    return *t;
+}
+
+template<GenericScheduler::hint h>
+inline void GenericScheduler::free_task( task& t ) {
+    GATHER_STATISTIC(current_active-=1);
+    task_prefix& p = t.prefix();
+    // Verify that optimization hints are correct.
+    __TBB_ASSERT( h!=is_small_local || p.origin==this, NULL );
+    __TBB_ASSERT( !(h&is_small) || p.origin, NULL );
+#if TBB_DO_ASSERT
+    p.depth = 0xDEADBEEF;
+    p.ref_count = 0xDEADBEEF;
+    poison_pointer(p.owner);
+#endif /* TBB_DO_ASSERT */
+    __TBB_ASSERT( 1L<<t.state() & (1L<<task::executing|1L<<task::allocated), NULL );
+    p.state = task::freed;
+    if( h==is_small_local || p.origin==this ) {
+        GATHER_STATISTIC(current_length+=1);
+        p.next = free_list;
+        free_list = &t;
+    } else if( h&is_local || p.origin ) {
+        free_nonlocal_small_task(t);
+    } else {  
+        deallocate_task(t);
+    }
+}
+
+void GenericScheduler::free_nonlocal_small_task( task& t ) {
+    __TBB_ASSERT( t.state()==task::freed, NULL );
+    GenericScheduler& s = *static_cast<GenericScheduler*>(t.prefix().origin);
+    __TBB_ASSERT( &s!=this, NULL );
+    for(;;) {
+        task* old = s.return_list;
+        if( old==plugged_return_list() ) 
+            break;
+        // Atomically insert t at head of s.return_list
+        t.prefix().next = old; 
+        if( __TBB_CompareAndSwapW( &s.return_list, (intptr)&t, (intptr)old )==(intptr)old ) 
+            return;
+    }
+    deallocate_task(t);
+    if( __TBB_FetchAndDecrementWrelease( &s.small_task_count )==1 ) {
+        // We freed the last task allocated by scheduler s, so it's our responsibility
+        // to free the scheduler.
+        NFS_Free( &s );
+    }
+}
+
+#if IMPROVED_GATING
+inline void GenericScheduler::mark_pool_full() {
+     // Double-check idiom
+     Gate::state_t snapshot = arena->prefix().gate.get_state();
+     if( snapshot!=SNAPSHOT_FULL && snapshot!=SNAPSHOT_PERMANENTLY_OPEN ) 
+         arena->prefix().gate.try_update( SNAPSHOT_FULL, SNAPSHOT_PERMANENTLY_OPEN, true );
+}
+
+void GenericScheduler::wait_while_pool_is_empty() {
+    for(;;) {
+        Gate::state_t snapshot = arena->prefix().gate.get_state();
+        switch( snapshot ) {
+            case SNAPSHOT_EMPTY:
+                arena->prefix().gate.wait();
+                return;
+            case SNAPSHOT_FULL: {
+                // Use unique id for "busy" in order to avoid ABA problems.
+                const Gate::state_t busy = Gate::state_t(this);
+                // Request permission to take snapshot
+                arena->prefix().gate.try_update( busy, SNAPSHOT_FULL );
+                if( arena->prefix().gate.get_state()==busy ) {
+                    // Got permission.  Take the snapshot.
+                    size_t n = arena->prefix().limit;
+                    size_t k; 
+                    for( k=0; k<n; ++k ) 
+                        if( arena->slot[k].steal_end>=0 ) 
+                            break;
+                    // Test and test-and-set.
+                    if( arena->prefix().gate.get_state()==busy ) {
+                        if( k>=n ) {
+                            arena->prefix().gate.try_update( SNAPSHOT_EMPTY, busy );
+                            continue;
+                        } else {
+                            arena->prefix().gate.try_update( SNAPSHOT_FULL, busy );
+                        }
+                    }
+                    return;
+                }
+                break;
+            }
+            default:
+                // Another thread is taking a snapshot or gate is permanently open.
+                return;
+        }
+    }
+}
+#endif /* IMPROVED_GATING */
+
+//------------------------------------------------------------------------
+// CustomScheduler
+//------------------------------------------------------------------------
+
+//! A scheduler with a customized evaluation loop.
+/** The customization can use SchedulerTraits to make decisions without needing a run-time check. */
+template<typename SchedulerTraits>
+class CustomScheduler: private GenericScheduler {
+    //! Scheduler loop that dispatches tasks.
+    /** If child is non-NULL, it is dispatched first.
+        Then, until "parent" has a reference count of 1, other task are dispatched or stolen. */
+    /*override*/void wait_for_all( task& parent, task* child );
+
+    typedef CustomScheduler<SchedulerTraits> scheduler_type;
+
+    //! Construct a CustomScheduler
+    CustomScheduler( Arena* arena ) : GenericScheduler(arena) {}
+
+public:
+    static GenericScheduler* allocate_scheduler( Arena* arena ) {
+        __TBB_ASSERT( arena, "missing arena" );
+        scheduler_type* s = (scheduler_type*)NFS_Allocate(sizeof(scheduler_type),1,NULL);
+        new( s ) scheduler_type(  arena );
+        __TBB_ASSERT( s->dummy_slot.task_pool->assert_okay(), NULL );
+        return s;
+    }
+};
+
+
+//------------------------------------------------------------------------
+// AssertOkay
+//------------------------------------------------------------------------
+#if TBB_DO_ASSERT
+/** Logically, this method should be a member of class task.
+    But we do not want to publish it, so it is here instead. */
+static bool AssertOkay( const task& task ) {
+    __TBB_ASSERT( &task!=NULL, NULL );
+    __TBB_ASSERT((uintptr)&task % internal::NFS_GetLineSize() == sizeof(task_prefix), "misaligned task" );
+    __TBB_ASSERT( (unsigned)task.state()<=(unsigned)task::recycle, "corrupt task (invalid state)" );
+    __TBB_ASSERT( task.prefix().depth<1L<<30, "corrupt task (absurd depth)" );
+    return true;
+}
+#endif /* TBB_DO_ASSERT */
+
+//------------------------------------------------------------------------
+// Methods of Arena
+//------------------------------------------------------------------------
+Arena* Arena::allocate_arena( unsigned number_of_slots, unsigned number_of_workers ) {
+    __TBB_ASSERT( sizeof(ArenaPrefix) % NFS_GetLineSize()==0, "ArenaPrefix not multiple of cache line size" );
+    size_t n = sizeof(ArenaPrefix) + number_of_slots*sizeof(ArenaSlot);
+
+    unsigned char* storage = (unsigned char*)NFS_Allocate( n, 1, NULL );
+    memset( storage, 0, n );
+    Arena* a = (Arena*)(storage+sizeof(ArenaPrefix));
+    __TBB_ASSERT( sizeof(a->slot[0]) % NFS_GetLineSize()==0, "Arena::slot size not multiple of cache line size" );
+    __TBB_ASSERT( (uintptr)a % NFS_GetLineSize()==0, NULL );
+    new( &a->prefix() ) ArenaPrefix( number_of_slots, number_of_workers );
+
+    // Allocate the worker_list
+    WorkerDescriptor * w = new WorkerDescriptor[number_of_workers];
+    memset( w, 0, sizeof(WorkerDescriptor)*(number_of_workers));
+    a->prefix().worker_list = w;
+
+
+    size_t k;
+    // Mark each worker slot as locked and unused
+    for( k=0; k<number_of_workers; ++k ) {
+        a->slot[k].steal_end = -3;
+        w[k].arena = a;
+    }
+    // Mark rest of slots as unused
+    for( ; k<number_of_slots; ++k )
+        a->slot[k].steal_end = -4;
+
+    // Publish the Arena
+    __TBB_ASSERT( !TheArena, NULL );
+    TheArena = a;
+
+    // Attach threads to workers
+    if( number_of_workers>0 ) {
+        a->prefix().worker_list[0].start_one_worker_thread();
+    }
+    return a;
+}
+
+void Arena::terminate_workers() {
+    int n = prefix().number_of_workers;
+    __TBB_ASSERT( n>=0, "negative number of workers; casting error?" );
+#if IMPROVED_GATING
+    prefix().gate.try_update( GenericScheduler::SNAPSHOT_PERMANENTLY_OPEN, GenericScheduler::SNAPSHOT_PERMANENTLY_OPEN, true );
+#else
+    prefix().gate.open();
+#endif /* IMPROVED_GATING */
+    for( int i=n; --i>=0; ) {
+        WorkerDescriptor& w = prefix().worker_list[i];
+        // The following while wait_for_all protects against situation where worker has not started yet.
+        // It would be more elegant to do this with condition variables, but the situation
+        // is probably rare enough in practice that it might not be worth the added complexity
+        // of condition variables.
+        ITT_NOTIFY(sync_prepare, &w.scheduler);
+        SpinwaitWhileEq( w.scheduler, (scheduler*)NULL );
+        ITT_NOTIFY(sync_acquired, &w.scheduler);
+        task* t = w.scheduler->dummy_task;
+        ITT_NOTIFY(sync_releasing, &t->prefix().ref_count);
+        t->prefix().ref_count = 1;
+    }
+    // Wait for all workers to quit
+    for( int i=n; --i>=0; ) {
+        WorkerDescriptor& w = prefix().worker_list[i];
+#if USE_WINTHREAD
+        DWORD status = WaitForSingleObject( w.thread_handle, INFINITE );
+        if( status==WAIT_FAILED ) {
+            fprintf(stderr,"Arena::terminate_workers: WaitForSingleObject failed\n");
+            exit(1);
+        }
+        CloseHandle( w.thread_handle );
+        w.thread_handle = (HANDLE)0;
+#else
+        int status = pthread_join( w.thread_handle, NULL );
+        if( status )
+            handle_perror(status,"pthread_join");
+#endif /* USE_WINTHREAD */
+    }
+    // All workers have quit
+#if !IMPROVED_GATING
+    prefix().gate.close();
+#endif /* !IMPROVED_GATING */
+    delete[] prefix().worker_list;
+    prefix().worker_list = NULL;
+#if COUNT_TASK_NODES && !TEST_ASSEMBLY_ROUTINES
+    if( prefix().task_node_count ) {
+        fprintf(stderr,"warning: leaked %ld task objects\n", long(prefix().task_node_count));
+    }
+#endif /* COUNT_TASK_NODES && !TEST_ASSEMBLY_ROUTINES */
+    __TBB_ASSERT( this, "attempt to free NULL Arena" );
+    prefix().~ArenaPrefix();
+    NFS_Free( &prefix() );
+}
+
+#if COUNT_TASK_NODES
+intptr Arena::workers_task_node_count() {
+    intptr result = 0;
+    for( unsigned i=0; i<prefix().number_of_workers; ++i ) {
+        GenericScheduler* s = prefix().worker_list[i].scheduler;
+        if( s )
+            result += s->task_node_count;
+    }
+    return result;
+}
+#endif
+
+//------------------------------------------------------------------------
+// Methods of GenericScheduler
+//------------------------------------------------------------------------
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning(disable:4355)
+#endif
+GenericScheduler::GenericScheduler( Arena* arena_ ) :
+#if STATISTICS
+    current_active(0),
+    current_length(0),
+    current_big_malloc(0),
+    steal_count(0),
+    execute_count(0),
+#endif /* STATISTICS */
+    deepest(-1),
+    array_size(0),
+    arena_slot(&dummy_slot),
+    arena(arena_),
+    random( unsigned(this-(GenericScheduler*)NULL) ),
+    free_list(NULL),
+    innermost_running_task(NULL),
+    dummy_task(NULL),
+    ref_count(1)
+#if !IMPROVED_GATING
+   ,open_gate(NULL)
+#endif /* !IMPROVE_GATING */
+#if TBB_DO_ASSERT
+   ,task_node_count(0)
+#endif /* TBB_DO_ASSERT */
+   ,small_task_count(1)   // Extra 1 is a guard reference
+   ,return_list(NULL)
+{
+    TaskPool* t = TaskPool::allocate_task_pool(TaskPool::min_array_size);
+    dummy_slot.task_pool = t;
+    t->prefix().steal_begin = depth_type(array_size);
+    t->prefix().arena_index = TaskPoolPrefix::null_arena_index;
+    dummy_slot.steal_end = -2;
+    dummy_slot.owner_waits = false;
+    array_size = TaskPool::min_array_size;
+    dummy_task = &allocate_task( sizeof(task), -1, NULL );
+    dummy_task->prefix().ref_count = 2;
+    __TBB_ASSERT( assert_okay(), "contructor error" );
+    // Register scheduler in thread local storage
+    SetThreadSpecific(this);
+}
+
+#if TBB_DO_ASSERT||TEST_ASSEMBLY_ROUTINES
+bool GenericScheduler::assert_okay() const {
+    __TBB_ASSERT( array_size>=TaskPool::min_array_size, NULL );
+#if TBB_DO_ASSERT>=2||TEST_ASSEMBLY_ROUTINES
+    acquire_task_pool();
+    TaskPool* tp = dummy_slot.task_pool;
+    __TBB_ASSERT( tp, NULL );
+    for( depth_type k=0; k<depth_type(array_size); ++k ) {
+        for( task* t = tp->array[k]; t; t=t->prefix().next ) {
+            __TBB_ASSERT( deepest>=k, "deepest not set properly" );
+            __TBB_ASSERT( t->prefix().depth==k, NULL );
+            __TBB_ASSERT( t->prefix().owner==this, NULL );
+        }
+    }
+    release_task_pool();
+#endif /* TBB_DO_ASSERT>=2||TEST_ASSEMBLY_ROUTINES */
+    return true;
+}
+#endif /* TBB_DO_ASSERT||TEST_ASSEMBLY_ROUTINES */
+
+void GenericScheduler::grow( TaskPool::size_type minimum_size ) {
+    TBB_TRACE(("%p.grow(minimum_size=%lx)\n", this, minimum_size ));
+    __TBB_ASSERT( assert_okay(), NULL );
+
+    // Might need to resize the underlying array.
+    // Get a fresh zeroed array before acquiring the old array.
+    TaskPool::size_type b_size = 2*minimum_size;
+    __TBB_ASSERT( b_size>=TaskPool::min_array_size, NULL );
+    TaskPool* new_pool = TaskPool::allocate_task_pool( b_size );
+    __TBB_ASSERT( assert_okay(), NULL );
+    acquire_task_pool();
+    TaskPool* old_pool = dummy_slot.task_pool;
+    memcpy( &new_pool->prefix(), &old_pool->prefix(), TaskPool::byte_size(array_size) );
+    arena_slot->task_pool = dummy_slot.task_pool = new_pool;
+    array_size = b_size;
+    release_task_pool();
+    old_pool->free_task_pool();
+    __TBB_ASSERT( assert_okay(), NULL );
+}
+
+GenericScheduler* GenericScheduler::allocate_scheduler( Arena* arena ) {
+    switch( SchedulerTraitsId ) {
+        /* DefaultSchedulerTraits::id is listed explicitly as a case so that the host compiler
+           will issue an error message if it is the same as another id in the list. */
+        default:
+        case DefaultSchedulerTraits::id:
+            return CustomScheduler<DefaultSchedulerTraits>::allocate_scheduler(arena);
+        case IntelSchedulerTraits::id:
+            return CustomScheduler<IntelSchedulerTraits>::allocate_scheduler(arena);
+    }
+}
+
+void GenericScheduler::free_scheduler() {
+    if( arena_slot!=&dummy_slot ) {
+        leave_arena(/*compress=*/false);
+    }
+    free_task<is_small_local>( *dummy_task );
+
+    // k accounts for a guard reference and each task that we deallocate.
+    intptr k = 1;
+    for(;;) {
+        while( task* t = free_list ) {
+            free_list = t->prefix().next;
+            deallocate_task(*t);
+            ++k;
+        }
+        if( return_list==plugged_return_list() ) 
+            break;
+        free_list = (task*)__TBB_FetchAndStoreW( &return_list, (intptr)plugged_return_list() );
+    }
+
+#if COUNT_TASK_NODES
+    arena->prefix().task_node_count += task_node_count;
+#endif /* COUNT_TASK_NODES */
+    dummy_slot.task_pool->free_task_pool();
+    dummy_slot.task_pool = NULL;
+    SetThreadSpecific( NULL );
+    // Update small_task_count last.  Doing so sooner might cause another thread to free *this.
+    __TBB_ASSERT( small_task_count>=k, "small_task_count corrupted" );
+    if( __TBB_FetchAndAddW( &small_task_count, -k )==k ) 
+        NFS_Free( this );
+}
+
+inline void GenericScheduler::acquire_task_pool() const {
+    __TBB_ASSERT( arena_slot, "arena_slot not set" );
+    __TBB_ASSERT( deepest>=-1, NULL );
+    __TBB_ASSERT( arena_slot->owner_waits==false, "slot ownership corrupt?" );
+    ExponentialBackoff backoff;
+    bool sync_prepare_done = false;
+    for(;;) {
+#if TEST_ASSEMBLY_ROUTINES
+        __TBB_ASSERT( (arena_slot->steal_end&1)==0, "already acquired" );
+#endif /* TEST_ASSEMBLY_ROUTINES */
+        __TBB_ASSERT( arena_slot==&dummy_slot || arena_slot==&arena->slot[dummy_slot.task_pool->prefix().arena_index], "slot ownership corrupt?" );
+        __TBB_ASSERT( arena_slot->task_pool==dummy_slot.task_pool, "slot ownership corrupt?" );
+        depth_type steal_end = arena_slot->steal_end;
+        if( steal_end==2*deepest && (steal_end=__TBB_CompareAndSwapW( (volatile void *)&(arena_slot->steal_end), 2*deepest+1, 2*deepest ))==2*deepest ) {
+            // We acquired our own slot
+            ITT_NOTIFY(sync_acquired, arena_slot);
+            arena_slot->owner_waits = false;
+            break;
+        } else {
+            __TBB_ASSERT( steal_end&1, "steal_end and/or deepest corrupt?" );
+            // Someone else acquired a lock, so pause and do exponential backoff.
+            if( !sync_prepare_done ) {
+                // Start waiting
+                ITT_NOTIFY(sync_prepare, arena_slot);
+                sync_prepare_done = true;
+            } else {
+                // after 2nd attempt, still can't acquire own pool;
+                // need notify others that the owner is waiting
+                arena_slot->owner_waits = true;
+            }
+            backoff.pause();
+#if TEST_ASSEMBLY_ROUTINES
+            __TBB_ASSERT( arena_slot->task_pool==dummy_slot.task_pool, NULL );
+#endif /* TEST_ASSEMBLY_ROUTINES */
+        }
+    }
+    __TBB_ASSERT( arena_slot->steal_end>>1 <= depth_type(array_size), NULL );
+    __TBB_ASSERT( dummy_slot.task_pool->prefix().steal_begin<=depth_type(array_size), NULL );
+    __TBB_ASSERT( deepest<=depth_type(array_size), NULL );
+}
+
+inline void GenericScheduler::release_task_pool() const {
+    __TBB_ASSERT( arena_slot->steal_end>>1 <= depth_type(array_size), NULL );
+    __TBB_ASSERT( dummy_slot.task_pool->prefix().steal_begin<=depth_type(array_size), NULL );
+    __TBB_ASSERT( deepest<=depth_type(array_size), NULL );
+    ITT_NOTIFY(sync_releasing, arena_slot);
+    arena_slot->steal_end = 2*deepest;
+}
+
+/** Conceptually, this method should be a member of class scheduler.
+    But doing so would force us to publish class scheduler in the headers. */
+void GenericScheduler::spawn( task& first, task*& next ) {
+    __TBB_ASSERT( assert_okay(), NULL );
+    TBB_TRACE(("%p.internal_spawn enter\n", this ));
+    for( task* t = &first; ;  t = t->prefix().next ) 
+    {
+        __TBB_ASSERT( t->state()==task::allocated, "attempt to spawn task that is not in 'allocated' state" );
+        __TBB_ASSERT( t->prefix().depth==first.prefix().depth, "tasks must have same depth" );
+        t->prefix().owner = this;
+        t->prefix().state = task::ready;
+#if TBB_DO_ASSERT
+        if( task* parent = t->parent() ) {
+            internal::reference_count ref_count = parent->prefix().ref_count;
+            __TBB_ASSERT( ref_count>=0, "attempt to spawn task whose parent has a ref_count<0" );
+            __TBB_ASSERT( ref_count!=0, "attempt to spawn task whose parent has a ref_count==0 (forgot to set_ref_count?)" );
+            parent->prefix().debug_state |= ds_ref_count_active;
+        }
+#endif /* TBB_DO_ASSERT */
+        if( &t->prefix().next==&next )
+            break;
+    }
+    depth_type d = first.prefix().depth;
+#if !IMPROVED_GATING
+    __TBB_ASSERT( !open_gate, NULL );
+#endif /* !IMPROVED_GATING */
+    __TBB_ASSERT(depth_type(array_size)>0, "casting overflow?");
+    if( d>=depth_type(array_size) ) {
+        grow( d+1 );
+    }
+    __TBB_ASSERT( assert_okay(), NULL );
+    if( arena_slot==&dummy_slot ) {
+        try_enter_arena();
+        __TBB_ASSERT( arena_slot->steal_end&1, NULL );
+    } else {
+        acquire_task_pool();
+    }
+    TaskPool* tp = dummy_slot.task_pool;
+
+    next = tp->array[d];
+    tp->array[d] = &first;
+
+    if( d>deepest )
+        deepest = d;
+    if( d<tp->prefix().steal_begin )
+        tp->prefix().steal_begin = d;
+
+    release_task_pool();
+#if IMPROVED_GATING
+    mark_pool_full();
+#else
+    if( open_gate ) {
+        open_gate->open();
+        open_gate = NULL;
+    }
+#endif /* IMPROVED_GATING */
+    __TBB_ASSERT( assert_okay(), NULL );
+
+    TBB_TRACE(("%p.internal_spawn exit\n", this ));
+}
+
+void GenericScheduler::spawn_root_and_wait( task& first, task*& next ) {
+    __TBB_ASSERT( &first, NULL );
+    empty_task& dummy = *new(&allocate_task( sizeof(empty_task), first.prefix().depth-1, NULL )) empty_task;
+    internal::reference_count n = 0;
+    for( task* t=&first; ; t=t->prefix().next ) {
+        ++n;
+        __TBB_ASSERT( t->is_owned_by_current_thread(), "root task not owned by current thread" );
+        __TBB_ASSERT( !t->prefix().parent, "not a root task, or already running" );
+        t->prefix().parent = &dummy;
+        if( &t->prefix().next==&next ) break;
+    }
+    dummy.prefix().ref_count = n+1;
+    if( n>1 )
+        spawn( *first.prefix().next, next );
+    TBB_TRACE(("spawn_root_and_wait((task_list*)%p): calling %p.loop\n",&first,this));
+    wait_for_all( dummy, &first );
+    // empty_task has trivial destructor, so call free_task directly instead of going through destroy_task.
+    free_task<is_small_local>( dummy );
+    TBB_TRACE(("spawn_root_and_wait((task_list*)%p): return\n",&first));
+}
+
+
+inline task* GenericScheduler::get_task( depth_type d ) {
+    task* result = NULL;
+    if( deepest>=d ) {
+        acquire_task_pool();
+        task** a = dummy_slot.task_pool->array;
+        depth_type i = deepest;
+        do {
+            if( (result = a[i]) ) {
+                if( !(a[i] = result->prefix().next) )
+                    --i;
+                break;
+            }
+        } while( --i>=d );
+        deepest = i;
+        release_task_pool();
+    }
+    return result;
+}
+
+task* GenericScheduler::steal_task( UnpaddedArenaSlot& arena_slot, depth_type d ) {
+    task* result = NULL;
+    ExponentialBackoff backoff;
+    bool sync_prepare_done = false;
+    depth_type steal_end = arena_slot.steal_end;
+    for(;;) {
+        if( steal_end>>1<d ) {
+            // Nothing of interest to steal
+            if( sync_prepare_done )
+                ITT_NOTIFY(sync_cancel, &arena_slot);
+            goto done;
+        }
+        if( steal_end&1 ) {
+            // Someone else has lock on it.
+            if( arena_slot.owner_waits ) {
+                // The pool owner is waiting for it, so need to abandon locking attempts
+                if( sync_prepare_done )
+                    ITT_NOTIFY(sync_cancel, &arena_slot);
+                goto done;
+            }
+            if( !sync_prepare_done ) {
+                ITT_NOTIFY(sync_prepare, &arena_slot);
+                sync_prepare_done = true;
+            }
+            // While waiting, do exponential backoff
+            backoff.pause();
+            steal_end = arena_slot.steal_end;
+        } else {
+            depth_type tmp = steal_end;
+            steal_end = __TBB_CompareAndSwapW( (volatile void *)&(arena_slot.steal_end), steal_end+1, steal_end );
+            if( tmp==steal_end ) {
+                ITT_NOTIFY(sync_acquired, &arena_slot);
+                break;
+            }
+        }
+    }
+{
+    TaskPool* tp = arena_slot.task_pool;
+    depth_type i = tp->prefix().steal_begin;
+    if( i<d )
+        i = d;
+    for(; i<=steal_end>>1; ++i ) {
+        if( (result = tp->array[i]) ) {
+            // Unlike get_task, we do not adjust i if the next pointer is NULL.
+            // The reason is that it is a waste of time, because steal_task
+            // is relatively infrequent compared to insert_task, and the
+            // latter updates steal_begin too.
+            tp->array[i] = result->prefix().next;
+            break;
+        }
+    }
+    if( tp->prefix().steal_begin>=d )
+        tp->prefix().steal_begin = i;
+    // Release the task pool
+    ITT_NOTIFY(sync_releasing, &arena_slot);
+    arena_slot.steal_end = steal_end;
+}
+done:
+    return result;
+}
+
+template<typename SchedulerTraits>
+void CustomScheduler<SchedulerTraits>::wait_for_all( task& parent, task* child ) {
+    TBB_TRACE(("%p.wait_for_all(parent=%p,child=%p) enter\n", this, &parent, child));
+#if TBB_DO_ASSERT
+    __TBB_ASSERT( assert_okay(), NULL );
+    if( child ) {
+        __TBB_ASSERT( child->prefix().owner==this, NULL );
+        __TBB_ASSERT( parent.ref_count()>=2, "ref_count must be at least 2" );
+    } else {
+        __TBB_ASSERT( parent.ref_count()>=1, "ref_count must be at least 1" );
+    }
+    __TBB_ASSERT( assert_okay(), NULL );
+#endif /* TBB_DO_ASSERT */
+    task* t = child;
+    depth_type d;
+    if( innermost_running_task==dummy_task ) {
+        // We are in the innermost task dispatch loop of a master thread.
+        __TBB_ASSERT( !is_worker(), NULL );
+        // Forcefully make this loop operating on zero depth.
+        d = 0;
+    } else {
+        d = parent.prefix().depth+1;
+    }
+    task* old_innermost_running_task = innermost_running_task;
+    // Outer loop steals tasks when necesssary.
+    for(;;) {
+        // Middle loop evaluates tasks that are pulled off "array".
+        do {
+            // Inner loop evaluates tasks that are handed directly to us by other tasks.
+            while(t) {
+                task_prefix& pref = t->prefix();
+                __TBB_ASSERT( pref.owner==this, NULL );
+                __TBB_ASSERT( pref.depth>=d, NULL );
+                __TBB_ASSERT( 1L<<t->state() & (1L<<task::allocated|1L<<task::ready|1L<<task::reexecute), NULL );
+                pref.state = task::executing;
+                innermost_running_task = t;
+                __TBB_ASSERT(assert_okay(),NULL);
+                TBB_TRACE(("%p.wait_for_all: %p.execute\n",this,t));
+                GATHER_STATISTIC( ++execute_count );
+                task* t_next = t->execute();
+                if( t_next ) {
+                    __TBB_ASSERT( t_next->state()==task::allocated,
+                                "if task::execute() returns task, it must be marked as allocated" );
+                    // The store here has a subtle secondary effect - it fetches *t_next into cache.
+                    t_next->prefix().owner = this;
+                }
+                __TBB_ASSERT(assert_okay(),NULL);
+                switch( task::state_type(t->prefix().state) ) {
+                    case task::executing:
+                        // this block was copied below to case task::recycle
+                        // when making changes, check it too
+                        if( task* s = t->parent() ) {
+                            if( SchedulerTraits::itt_possible )
+                                ITT_NOTIFY(sync_releasing, &s->prefix().ref_count);
+                            if( SchedulerTraits::has_slow_atomic && s->prefix().ref_count==1 ? (s->prefix().ref_count=0, true) : __TBB_FetchAndDecrementWrelease((volatile void *)&(s->prefix().ref_count))==1 ) {
+                                if( SchedulerTraits::itt_possible )
+                                    ITT_NOTIFY(sync_acquired, &s->prefix().ref_count);
+#if TBB_DO_ASSERT
+                                s->prefix().debug_state &= ~ds_ref_count_active;
+#endif /* TBB_DO_ASSERT */
+                                s->prefix().owner = this;
+                                depth_type s_depth = s->prefix().depth;
+                                if( !t_next && s_depth>=deepest && s_depth>=d ) {
+                                    // Eliminate spawn/get_task pair.
+                                    // The elimination is valid because the spawn would set deepest==s_depth,
+                                    // and the subsequent call to get_task(d) would grab task s and
+                                    // restore deepest to its former value.
+                                    t_next = s;
+                                } else {
+                                    CustomScheduler<SchedulerTraits>::spawn(*s, s->prefix().next );
+                                    __TBB_ASSERT(assert_okay(),NULL);
+                                }
+                            }
+                        }
+                        destroy_task( *t );
+                        break;
+
+                    case task::recycle: { // state set by recycle_as_safe_continuation()
+                        t->prefix().state = task::allocated;
+                        // for safe continuation, need atomically decrement ref_count;
+                        // the block was copied from above case task::executing, and changed.
+                        task*& s = t;     // s is an alias to t, in order to make less changes
+                        if( SchedulerTraits::itt_possible )
+                            ITT_NOTIFY(sync_releasing, &s->prefix().ref_count);
+                        if( SchedulerTraits::has_slow_atomic && s->prefix().ref_count==1 ? (s->prefix().ref_count=0, true) : __TBB_FetchAndDecrementWrelease((volatile void *)&(s->prefix().ref_count))==1 ) {
+                            if( SchedulerTraits::itt_possible )
+                                ITT_NOTIFY(sync_acquired, &s->prefix().ref_count);
+#if TBB_DO_ASSERT
+                            s->prefix().debug_state &= ~ds_ref_count_active;
+                            __TBB_ASSERT( s->prefix().owner==this, "ownership corrupt?" );
+                            __TBB_ASSERT( s->prefix().depth>=d, NULL );
+#endif /* TBB_DO_ASSERT */
+                            if( !t_next ) {
+                                t_next = s;
+                            } else {
+                                CustomScheduler<SchedulerTraits>::spawn(*s, s->prefix().next );
+                                __TBB_ASSERT(assert_okay(),NULL);
+                            }
+                        }
+                        } break;
+
+                    case task::reexecute: // set by recycle_to_reexecute()
+                        __TBB_ASSERT( t_next, "reexecution requires that method 'execute' return a task" );
+                        TBB_TRACE(("%p.wait_for_all: put task %p back into array",this,t));
+                        t->prefix().state = task::allocated;
+                        CustomScheduler<SchedulerTraits>::spawn( *t, t->prefix().next );
+                        __TBB_ASSERT(assert_okay(),NULL);
+                        break;
+#if TBB_DO_ASSERT
+                    case task::allocated:
+                        break;
+                    case task::ready:
+                        __TBB_ASSERT( false, "task is in READY state upon return from method execute()" );
+                        break;
+                    default:
+                        __TBB_ASSERT( false, "illegal state" );
+#else
+                    default: // just to shut up some compilation warnings
+                        break;
+#endif /* TBB_DO_ASSERT */
+                }
+                __TBB_ASSERT( !t_next||t_next->prefix().depth>=d, NULL );
+                t = t_next;
+            }
+            __TBB_ASSERT(assert_okay(),NULL);
+
+
+            t = get_task( d );
+#if TBB_DO_ASSERT
+            __TBB_ASSERT(assert_okay(),NULL);
+            if(t) {
+                AssertOkay(*t);
+                __TBB_ASSERT( t->prefix().owner==this, "thread got task that it does not own" );
+            }
+#endif /* TBB_DO_ASSERT */
+        } while( t );
+        __TBB_ASSERT( arena->prefix().number_of_workers>0||parent.prefix().ref_count==1,
+                    "deadlock detected" );
+        // The state "failure_count==-1" is used only when itt_possible is true,
+        // and denotes that a sync_prepare has not yet been issued.
+        for( int failure_count = -static_cast<int>(SchedulerTraits::itt_possible);; ++failure_count) {
+            if( parent.prefix().ref_count==1 ) {
+                if( SchedulerTraits::itt_possible ) {
+                    if( failure_count!=-1 ) {
+                        ITT_NOTIFY(sync_prepare, &parent.prefix().ref_count);
+                        // Notify Intel(R) Thread Profiler that thread has stopped spinning.
+                        ITT_NOTIFY(sync_acquired, this);
+                    }
+                    ITT_NOTIFY(sync_acquired, &parent.prefix().ref_count);
+                }
+                goto done;
+            }
+            // Try to steal a task from a random victim.
+            size_t n = arena->prefix().limit;
+            if( n>1 ) {
+                size_t k = random.get() % (n-1);
+                ArenaSlot* victim = &arena->slot[k];
+                if( victim>=arena_slot )
+                    ++victim;               // Adjusts random distribution to exclude self
+                t = steal_task( *victim, d );
+                if( t ) {
+                    __TBB_ASSERT( t->prefix().depth>=d, NULL );
+                    if( SchedulerTraits::itt_possible ) {
+                        if( failure_count!=-1 ) {
+                            ITT_NOTIFY(sync_prepare, victim);
+                            // Notify Intel(R) Thread Profiler that thread has stopped spinning.
+                            ITT_NOTIFY(sync_acquired, this);
+                            ITT_NOTIFY(sync_acquired, victim);
+                        }
+                    }
+                    __TBB_ASSERT(t,NULL);
+                    break;
+                }
+            }
+            if( SchedulerTraits::itt_possible && failure_count==-1 ) {
+                // The first attempt to steal work failed, so notify Intel(R) Thread Profiler that
+                // the thread has started spinning.  Ideally, we would do this notification
+                // *before* the first failed attempt to steal, but at that point we do not
+                // know that the steal will fail.
+                ITT_NOTIFY(sync_prepare, this);
+                failure_count = 0;
+            }
+            // Pause, even if we are going to yield, because the yield might return immediately.
+            __TBB_Pause(PauseTime);
+            int yield_threshold = int(n);
+            if( failure_count>=yield_threshold ) {
+                if( failure_count>=2*yield_threshold ) {
+                    __TBB_Yield();
+#if IMPROVED_GATING
+                    // Note: if d!=0 or !is_worker(), it is not safe to wait for a non-empty pool,
+                    // because of the polling of parent.prefix().ref_count.
+                    if( d==0 && is_worker() ) 
+                        wait_while_pool_is_empty();
+#else
+                    arena->prefix().gate.wait();
+#endif /* IMPROVED_GATING */
+                    failure_count = 0;
+                } else if( failure_count==yield_threshold ) {
+                    // We have paused n times since last yield.
+                    // Odds are that there is no other work to do.
+                    __TBB_Yield();
+                }
+            }
+        }
+        __TBB_ASSERT(t,NULL);
+        GATHER_STATISTIC( ++steal_count );
+        t->prefix().owner = this;
+    }
+done:
+    parent.prefix().ref_count = 0;
+#if TBB_DO_ASSERT
+    parent.prefix().debug_state &= ~ds_ref_count_active;
+#endif /* TBB_DO_ASSERT */
+    innermost_running_task = old_innermost_running_task;
+    if( deepest<0 && innermost_running_task==dummy_task && arena_slot!=&dummy_slot ) {
+        leave_arena(/*compress=*/true);
+    }
+    __TBB_ASSERT( assert_okay(), NULL );
+    TBB_TRACE(("%p.wait_for_all(parent=%p): return\n",this,&parent));
+}
+
+void GenericScheduler::try_enter_arena() {
+    __TBB_ASSERT( arena, NULL );
+    __TBB_ASSERT( arena_slot, "arena_slot not set" );
+    __TBB_ASSERT( arena_slot==&dummy_slot, "already in arena?" );
+    unsigned n = arena->prefix().number_of_slots;
+    unsigned j = unsigned(arena->prefix().limit);
+    for( unsigned k=j; k<n; ++k ) {
+        if( arena->slot[k].steal_end==-4 && __TBB_CompareAndSwapW( (volatile void *)&(arena->slot[k].steal_end), -4|1, -4 )==-4 ) {
+            __TBB_ASSERT( arena->slot[k].steal_end==-3, "slot not really acquired?" );
+            ITT_NOTIFY(sync_acquired,&arena->slot[k]);
+            dummy_slot.task_pool->prefix().arena_index = k;
+            arena->slot[k].task_pool = dummy_slot.task_pool;
+            arena->slot[k].owner_waits = false;
+            arena_slot = &arena->slot[k];
+#if !IMPROVED_GATING
+            open_gate = &arena->prefix().gate;
+#endif /* !IMPROVED_GATING */
+            // Successfully claimed a spot in the arena.  Update arena->prefix().limit.
+            do {
+                j = unsigned(arena->prefix().limit.compare_and_swap( k+1, j ));
+            } while( j<=k );
+            break;
+        }
+    }
+    arena_slot->steal_end = 2*deepest+1;
+}
+
+void GenericScheduler::leave_arena( bool compress ) {
+    __TBB_ASSERT( arena_slot!=&dummy_slot, "not in arena" );
+    // Remove myself from the arena.
+    acquire_task_pool();
+#if TBB_DO_ASSERT
+    for( depth_type i=0; i<deepest; ++i )
+        __TBB_ASSERT( !dummy_slot.task_pool->array[i], "leaving arena, but have tasks to do" );
+#endif /* TBB_DO_ASSERT */
+    size_t k = dummy_slot.task_pool->prefix().arena_index;
+    __TBB_ASSERT( &arena->slot[k]==arena_slot, NULL );
+    arena_slot->task_pool = NULL;
+    dummy_slot.task_pool->prefix().arena_index = TaskPoolPrefix::null_arena_index;
+    arena_slot = &dummy_slot;
+    arena_slot->owner_waits  = false;
+    size_t n = arena->prefix().number_of_workers;
+#if !IMPROVED_GATING
+    if( k>=n )
+        arena->prefix().gate.close();
+#endif /* !IMPROVED_GATING */
+    __TBB_ASSERT( !compress || k>=n, "must be master to compress" );
+    size_t new_limit = arena->prefix().limit;
+    if( compress && new_limit==k+1 ) {
+        // Garbage collect some slots
+        for(;;) {
+            new_limit = arena->prefix().limit.compare_and_swap( k, k+1 );
+            ITT_NOTIFY(sync_releasing, &arena->slot[k]);
+            arena->slot[k].steal_end = -4;
+            if( new_limit!=k+1 ) break;
+            if( --k<n ) break;
+            if( arena->slot[k].steal_end==-4 && __TBB_CompareAndSwapW( (volatile void *)&(arena->slot[k].steal_end), -4|1, -4 )==-4 ) {
+                ITT_NOTIFY(sync_acquired,&arena->slot[k]);
+            } else {
+                break;
+            }
+        }
+    } else {
+        ITT_NOTIFY(sync_releasing, &arena->slot[k]);
+        arena->slot[k].steal_end = -4;
+    }
+}
+
+GenericScheduler* GenericScheduler::create_worker( WorkerDescriptor& w ) {
+    __TBB_ASSERT( !w.scheduler, NULL );
+    unsigned n = w.arena->prefix().number_of_workers;
+    WorkerDescriptor* worker_list = w.arena->prefix().worker_list;
+    __TBB_ASSERT( &w >= worker_list, NULL );
+    unsigned i = unsigned(&w - worker_list);
+    __TBB_ASSERT( i<n, NULL );
+
+    // Start my children
+    if( 2*i+1<n ) {
+        // Have a left child, so start it.
+        worker_list[2*i+1].start_one_worker_thread();
+        if( 2*i+2<n ) {
+            // Have a right child, so start it.
+            worker_list[2*i+2].start_one_worker_thread();
+        }
+    }
+
+    // Put myself into the arena
+    GenericScheduler* s = GenericScheduler::allocate_scheduler(w.arena);
+    ArenaSlot& slot = w.arena->slot[i];
+    __TBB_ASSERT( slot.steal_end==-3, "slot not allocated as locked worker?" );
+    s->arena_slot = &slot;
+    TaskPool* t = s->dummy_slot.task_pool;
+    t->prefix().arena_index = i;
+    ITT_NOTIFY(sync_releasing, &slot);
+    slot.task_pool = t;
+    slot.steal_end = -2;
+    slot.owner_waits = false;
+
+    // Publish worker
+    ITT_NOTIFY(sync_releasing, &w.scheduler);
+    w.scheduler = s;
+    return s;
+}
+
+GenericScheduler* GenericScheduler::create_master( Arena* arena ) {
+    GenericScheduler* s = GenericScheduler::allocate_scheduler( arena );
+    task& t = *s->dummy_task;
+    s->innermost_running_task = &t;
+    t.prefix().ref_count = 1;
+    __TBB_ASSERT( &task::self()==&t, NULL );
+    return s;
+}
+
+#if USE_WINTHREAD
+unsigned WINAPI GenericScheduler::worker_routine( void* arg )
+#else
+void* GenericScheduler::worker_routine( void* arg )
+#endif /* USE_WINTHREAD */
+{
+    GenericScheduler& scheduler = *create_worker(*(WorkerDescriptor*)arg);
+
+    ITT_NAME_SET(thr_name_set, "TBB Worker Thread", 17);
+
+#if (_WIN32||_WIN64)&&!__TBB_ipf
+    // Deal with 64K aliasing.  The formula for "offset" is a Fibonacci hash function,
+    // which has the desirable feature of spreading out the offsets fairly evenly
+    // without knowing the total number of offsets, and furthermore unlikely to
+    // accidentally cancel out other 64K aliasing schemes that Microsoft might implement later.
+    // See Knuth Vol 3. "Theorem S" for details on Fibonacci hashing.
+    size_t offset = (scheduler.dummy_slot.task_pool->prefix().arena_index+1) * 40503U % (1U<<16);
+    void* volatile sink_for_alloca = _alloca(offset);
+#else
+    // Linux thread allocators avoid 64K aliasing.
+#endif /* _WIN32||_WIN64 */
+
+#if USE_PTHREAD
+    pthread_cleanup_push( cleanup_worker_thread, &scheduler );
+#endif /* USE_PTHREAD */
+
+#if USE_WINTHREAD
+    __try {
+#endif /* USE_WINTHREAD */
+
+    scheduler.wait_for_all(*scheduler.dummy_task,NULL);
+
+#if USE_WINTHREAD
+    } __finally {
+        cleanup_worker_thread(&scheduler);
+    }
+    return 0;
+#elif USE_PTHREAD
+    pthread_cleanup_pop( true );
+    return NULL;
+#else
+    #error Must define USE_PTHREAD or USE_WINTHREAD
+#endif /* USE_PTHREAD */
+}
+
+void GenericScheduler::cleanup_worker_thread( void* arg ) {
+    TBB_TRACE(("%p.cleanup_worker_thread enter\n",arg));
+    GenericScheduler& s = *(GenericScheduler*)arg;
+    __TBB_ASSERT( s.dummy_slot.task_pool, "cleaning up worker with missing TaskPool" );
+    //Arena* a = s.arena;
+    __TBB_ASSERT( s.arena_slot!=&s.dummy_slot, "worker not in arena?" );
+    s.free_scheduler();
+}
+
+//------------------------------------------------------------------------
+// WorkerDescsriptor
+//------------------------------------------------------------------------
+void WorkerDescriptor::start_one_worker_thread() {
+#if USE_WINTHREAD
+    unsigned thread_id;
+    // The return type of _beginthreadex is "uintptr_t" on new MS compilers,
+    // and 'unsigned long' on old MS compilers.  Our uintptr works for both.
+    uintptr status = _beginthreadex( NULL, ThreadStackSize, GenericScheduler::worker_routine, this, 0, &thread_id );
+    if( status==0 )
+        handle_perror(errno,"__beginthreadex");
+    else
+        thread_handle = (HANDLE)status;
+#else
+    // This if is due to an Intel Compiler Bug, tracker # C70996
+    // This #if should be removed as soon as the bug is fixed
+#if __APPLE__ && __TBB_x86_64
+    static void *(*r)(void*) = GenericScheduler::worker_routine;
+    int status = pthread_create( &thread_handle, NULL, r, this );
+#else
+    int status = pthread_create( &thread_handle, NULL, GenericScheduler::worker_routine, this );
+#endif
+    if( status )
+        handle_perror(status,"pthread_create");
+#endif /* USE_WINTHREAD */
+}
+
+//------------------------------------------------------------------------
+// Methods of allocate_root_proxy
+//------------------------------------------------------------------------
+task& allocate_root_proxy::allocate( size_t size ) {
+    internal::GenericScheduler* v = GetThreadSpecific();
+    __TBB_ASSERT( v, "thread did not activate a task_scheduler_init object?" );
+    return v->allocate_task( size, v->innermost_running_task->prefix().depth+1, NULL );
+}
+
+void allocate_root_proxy::free( task& task ) {
+    internal::GenericScheduler* v = GetThreadSpecific();
+    __TBB_ASSERT( v, "thread does not have initialized task_scheduler_init object?" );
+    v->free_task<GenericScheduler::is_local>( task );
+}
+
+//------------------------------------------------------------------------
+// Methods of allocate_continuation_proxy
+//------------------------------------------------------------------------
+task& allocate_continuation_proxy::allocate( size_t size ) const {
+    task& t = *((task*)this);
+    __TBB_ASSERT( AssertOkay(t), NULL );
+    GenericScheduler* v = static_cast<GenericScheduler*>(t.prefix().owner);
+    __TBB_ASSERT( GetThreadSpecific()==v, "thread does not own this" );
+    task* parent = t.parent();
+    t.prefix().parent = NULL;
+    return v->allocate_task( size, t.prefix().depth, parent );
+}
+
+void allocate_continuation_proxy::free( task& mytask ) const {
+    task& t = *((task*)this);
+    // Restore the parent as it was before the corresponding allocate was called.
+    t.prefix().parent = mytask.parent();
+    static_cast<GenericScheduler*>(t.prefix().owner)->free_task<GenericScheduler::is_local>(mytask);
+}
+
+//------------------------------------------------------------------------
+// Methods of allocate_child_proxy
+//------------------------------------------------------------------------
+task& allocate_child_proxy::allocate( size_t size ) const {
+    task& t = *((task*)this);
+    __TBB_ASSERT( AssertOkay(t), NULL );
+    GenericScheduler* v = static_cast<GenericScheduler*>(t.prefix().owner);
+    __TBB_ASSERT( GetThreadSpecific()==v, "thread does not own parent" );
+    return v->allocate_task( size, t.prefix().depth+1, &t );
+}
+
+void allocate_child_proxy::free( task& mytask ) const {
+    task& t = *((task*)this);
+    GenericScheduler* v = static_cast<GenericScheduler*>(t.prefix().owner);
+    v->free_task<GenericScheduler::is_local>(mytask);
+}
+
+//------------------------------------------------------------------------
+// Methods of allocate_additional_child_of_proxy
+//------------------------------------------------------------------------
+task& allocate_additional_child_of_proxy::allocate( size_t size ) const {
+    __TBB_ASSERT( AssertOkay(self), NULL );
+    __TBB_FetchAndIncrementWacquire( (volatile void *)&(parent.prefix().ref_count) );
+    GenericScheduler* v = static_cast<GenericScheduler*>(self.prefix().owner);
+    return v->allocate_task( size, parent.prefix().depth+1, &parent );
+}
+
+void allocate_additional_child_of_proxy::free( task& task ) const {
+    // Undo the increment.  We do not check the result of the fetch-and-decrement.
+    // We could consider be spawning the task if the fetch-and-decrement returns 1.
+    // But we do not know that was the programmer's intention.
+    // Furthermore, if it was the programmer's intention, the program has a fundamental
+    // race condition (that we warn about in Reference manual), because the
+    // reference count might have become zero before the corresponding call to
+    // allocate_additional_child_of_proxy::allocate.
+    __TBB_FetchAndDecrementWrelease( (volatile void *)&(parent.prefix().ref_count) );
+    GenericScheduler* v = static_cast<GenericScheduler*>(self.prefix().owner);
+
+    v->free_task<GenericScheduler::is_local>(task);
+}
+
+} // namespace internal
+
+using namespace tbb;
+using namespace tbb::internal;
+
+//------------------------------------------------------------------------
+// task
+//------------------------------------------------------------------------
+
+void task::internal_set_ref_count( int count ) {
+    __TBB_ASSERT( count>0, "count must be positive" );
+    __TBB_ASSERT( !(prefix().debug_state&GenericScheduler::ds_ref_count_active), "ref_count race detected" );
+    ITT_NOTIFY(sync_releasing, &prefix().ref_count);
+    prefix().ref_count = count;
+}
+
+task& task::self() {
+    GenericScheduler* v = GetThreadSpecific();
+    __TBB_ASSERT( v->assert_okay(), NULL );
+    return *v->innermost_running_task;
+}
+
+bool task::is_owned_by_current_thread() const {
+    return GetThreadSpecific()==prefix().owner;
+}
+
+void task::destroy( task& victim ) {
+    __TBB_ASSERT( victim.prefix().ref_count==0, "victim must have reference count of zero" );
+    __TBB_ASSERT( victim.state()==task::allocated, "illegal state for victim task" );
+    if( task* parent = victim.parent() ) {
+        __TBB_ASSERT( parent->state()==task::allocated, "attempt to destroy child of running or corrupted parent?" );
+        ITT_NOTIFY(sync_releasing, &parent->prefix().ref_count);
+        __TBB_FetchAndDecrementWrelease((volatile void *)&(parent->prefix().ref_count));
+        ITT_NOTIFY(sync_acquired, &parent->prefix().ref_count);
+    }
+    internal::GenericScheduler* v = static_cast<internal::GenericScheduler*>(prefix().owner);
+    // Victim is allowed to be owned by another thread.
+    victim.prefix().owner = v;
+    v->destroy_task(victim);
+}
+
+void task::spawn_and_wait_for_all( task_list& list ) {
+    __TBB_ASSERT( is_owned_by_current_thread(), "'this' not owned by current thread" );
+    task* t = list.first;
+    if( t ) {
+        if( &t->prefix().next!=list.next_ptr )
+            prefix().owner->spawn( *t->prefix().next, *list.next_ptr );
+        list.clear();
+    }
+    prefix().owner->wait_for_all( *this, t );
+}
+
+//------------------------------------------------------------------------
+// task_scheduler_init
+//------------------------------------------------------------------------
+void task_scheduler_init::initialize( int number_of_threads ) {
+    if( number_of_threads!=deferred ) {
+        __TBB_ASSERT( !my_scheduler, "task_scheduler_init already initialized" );
+        __TBB_ASSERT( number_of_threads==-1 || number_of_threads>=1,
+                    "number_of_threads for task_scheduler_init must be -1 or positive" );
+        // Double-check
+        if( !OneTimeInitializationsDone ) {
+            DoOneTimeInitializations();
+        }
+        GenericScheduler* s = GetThreadSpecific();
+        if( s ) {
+            s->ref_count += 1;
+        } else {
+            Arena* a;
+            {
+                mutex::scoped_lock lock( TheArenaMutex );
+                a = TheArena;
+                if( a ) {
+                    a->prefix().number_of_masters += 1;
+                } else {
+                    if( number_of_threads==-1 )
+                        number_of_threads = DetectNumberOfWorkers();
+                    // Put cold path in separate routine.
+                    a = Arena::allocate_arena( 2*number_of_threads, number_of_threads-1 );
+                    __TBB_ASSERT( a->prefix().number_of_masters==1, NULL );
+                    __TBB_ASSERT( TheArena==a, NULL );
+                }
+            }
+            s = GenericScheduler::create_master( a );
+        }
+        my_scheduler = s;
+    }
+}
+
+void task_scheduler_init::terminate() {
+    GenericScheduler* s = static_cast<GenericScheduler*>(my_scheduler);
+    my_scheduler = NULL;
+    __TBB_ASSERT( s, "task_scheduler_init::terminate without corresponding task_scheduler_init::initialize()");
+    if( !--(s->ref_count) ) {
+        __TBB_ASSERT( s->dummy_slot.task_pool, "cleaning up master with missing TaskPool" );
+        s->free_scheduler();
+        Arena* a;
+        {
+            mutex::scoped_lock lock( TheArenaMutex );
+            a = TheArena;
+            __TBB_ASSERT( a, "TheArena is missing" );
+            if( --(a->prefix().number_of_masters) ) {
+                a = NULL;
+            } else {
+                TheArena = NULL;
+            }
+        }
+        if( a ) {
+            a->terminate_workers();
+        }
+    }
+}
+
+
+
+} // namespace tbb
diff --git a/src/tbb/tbb_misc.cpp b/src/tbb/tbb_misc.cpp
new file mode 100644
index 0000000..a4a73f2
--- /dev/null
+++ b/src/tbb/tbb_misc.cpp
@@ -0,0 +1,169 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Source file for miscellanous entities that are infrequently referenced by 
+// an executing program.
+
+#include "tbb/tbb_stddef.h"
+#include "tbb_misc.h"
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#if defined(__EXCEPTIONS) || defined(_CPPUNWIND)
+#include <stdexcept>
+#endif
+#if _WIN32||_WIN64
+#include <crtdbg.h>
+#else
+#include <dlfcn.h>
+#endif 
+
+#include "tbb/tbb_machine.h"
+
+static tbb::assertion_handler_type assertion_handler;
+
+namespace tbb {
+
+assertion_handler_type set_assertion_handler( assertion_handler_type new_handler ) {
+    assertion_handler_type old_handler = assertion_handler;
+    assertion_handler = new_handler;
+    return old_handler;
+}
+    
+void assertion_failure( const char * filename, int line, const char * expression, const char * comment ) {
+    if( assertion_handler_type a = assertion_handler ) {
+        (*a)(filename,line,expression,comment);
+    } else {
+        static bool already_failed;
+        if( !already_failed ) {
+            already_failed = true;
+            fprintf( stderr, "Assertion %s failed on line %d of file %s\n",
+                     expression, line, filename );
+            if( comment )
+                fprintf( stderr, "Detailed description: %s\n", comment );
+#if (_WIN32||_WIN64) && defined(_DEBUG)
+            if(1 == _CrtDbgReport(_CRT_ASSERT, filename, line, "tbb_debug.dll", "%s\r\n%s", expression, comment?comment:""))
+                    _CrtDbgBreak();
+#else
+            abort();
+#endif
+        }
+    }
+}
+
+namespace internal {
+
+size_t get_initial_auto_partitioner_divisor() {
+  const size_t X_FACTOR = 4;
+  return X_FACTOR * DetectNumberOfWorkers();
+}
+
+#if defined(__EXCEPTIONS) || defined(_CPPUNWIND)
+// The above preprocessor symbols are defined by compilers when exception handling is enabled.
+// However, in some cases it could be disabled for this file.
+
+void handle_perror( int error_code, const char* what ) {
+    char buf[128];
+    sprintf(buf,"%s: ",what);
+    char* end = strchr(buf,0);
+    size_t n = buf+sizeof(buf)-end;
+    strncpy( end, strerror( error_code ), n );
+    // Ensure that buffer ends in terminator.
+    buf[sizeof(buf)-1] = 0; 
+    throw std::runtime_error(buf);
+}
+#endif //__EXCEPTIONS || _CPPUNWIND
+
+bool GetBoolEnvironmentVariable( const char * name ) {
+    if( const char* s = getenv(name) )
+        return strcmp(s,"0") != 0;
+    return false;
+}
+
+bool FillDynamicLinks( const char* library, const DynamicLinkDescriptor list[], size_t n ) {
+    const size_t max_n = 5;
+    __TBB_ASSERT( 0<n && n<=max_n, NULL );
+#if _WIN32||_WIN64
+    HMODULE module = LoadLibrary( library );
+#else
+    void* module = dlopen( library, RTLD_LAZY ); 
+#endif /* _WIN32||_WIN64 */
+    size_t count = 0;
+    if( module ) {
+        // The library is there, so get the entry points.
+        PointerToHandler h[max_n];
+        for( size_t k=0; k<n; ++k ) {
+#if _WIN32||_WIN64
+            h[k] = (PointerToHandler) GetProcAddress( module, list[k].name );
+#else
+            h[k] = (PointerToHandler) dlsym( module, list[k].name );
+#endif /* _WIN32||_WIN64 */
+            count += h[k]!=NULL;
+        }
+        // Commit the entry points if they are all present.
+        if( count==n ) {
+            // Cannot use memset here, because the writes must be atomic.
+            for( size_t k=0; k<n; ++k )
+                *list[k].handler = h[k];
+        }
+    }
+    return count==n;
+}
+
+#include "tbb_version.h"
+
+/** The leading "\0" is here so that applying "strings" to the binary delivers a clean result. */
+static const char VersionString[] = "\0" TBB_VERSION_STRINGS;
+
+static bool PrintVersionFlag = false;
+
+void PrintVersion() {
+    PrintVersionFlag = true;
+    fputs(VersionString+1,stderr);
+}
+
+void PrintExtraVersionInfo( const char* category, const char* description ) {
+    if( PrintVersionFlag ) 
+        fprintf(stderr, "%s: %s\t%s\n", "TBB", category, description );
+}
+
+} // namespace internal
+ 
+} // namespace tbb
+
+#if __TBB_ipf
+extern "C" intptr_t __TBB_machine_lockbyte( volatile unsigned char& flag ) {
+    if ( !__TBB_TryLockByte(flag) ) {
+        tbb::internal::AtomicBackoff b;
+        do {
+            b.pause();
+        } while ( !__TBB_TryLockByte(flag) );
+    }
+    return 0;
+}
+#endif
diff --git a/src/tbb/tbb_misc.h b/src/tbb/tbb_misc.h
new file mode 100644
index 0000000..364dbd7
--- /dev/null
+++ b/src/tbb/tbb_misc.h
@@ -0,0 +1,203 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _TBB_tbb_misc_H
+#define _TBB_tbb_misc_H
+
+#include "tbb/tbb_stddef.h"
+#include "tbb/tbb_machine.h"
+
+#if __linux__
+#include <sys/sysinfo.h>
+#elif __APPLE__
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#endif
+
+namespace tbb {
+
+static volatile int number_of_workers = 0;
+
+#if defined(__TBB_DetectNumberOfWorkers)
+static inline int DetectNumberOfWorkers() {
+    return __TBB_DetectNumberOfWorkers(); 
+}
+#else
+#if _WIN32||_WIN64
+
+static inline int DetectNumberOfWorkers() {
+    if (!number_of_workers) {
+        SYSTEM_INFO si;
+        GetSystemInfo(&si);
+        number_of_workers = static_cast<int>(si.dwNumberOfProcessors);
+    }
+    return number_of_workers; 
+}
+
+#elif __linux__ 
+
+static inline int DetectNumberOfWorkers( void ) {
+    if (!number_of_workers) {
+        number_of_workers = get_nprocs();
+    }
+    return number_of_workers; 
+}
+
+#elif __APPLE__
+
+static inline int DetectNumberOfWorkers( void ) {
+    if (!number_of_workers) {
+        int name[2] = {CTL_HW, HW_AVAILCPU};
+        int ncpu;
+        size_t size = sizeof(ncpu);
+        sysctl( name, 2, &ncpu, &size, NULL, 0 );
+        number_of_workers = ncpu;
+    }
+    return number_of_workers; 
+}
+
+#else
+
+#error Unknown OS
+
+#endif /* os kind */
+
+#endif
+
+namespace internal {
+
+// assertion_failure is declared in tbb/tbb_stddef.h because it user code
+// needs to see its declaration.
+
+//! Throw std::runtime_error of form "(what): (strerror of error_code)"
+/* The "what" should be fairly short, not more than about 64 characters.
+   Because we control all the call sites to handle_perror, it is pointless
+   to bullet-proof it for very long strings.
+
+   Design note: ADR put this routine off to the side in tbb_misc.cpp instead of
+   Task.cpp because the throw generates a pathetic lot of code, and ADR wanted
+   this large chunk of code to be placed on a cold page. */
+void handle_perror( int error_code, const char* what );
+
+//! True if environment variable with given name is set and not 0; otherwise false.
+bool GetBoolEnvironmentVariable( const char * name );
+
+//! Print TBB version information on stderr
+void PrintVersion();
+
+//! Print extra TBB version information on stderr
+void PrintExtraVersionInfo( const char* category, const char* description );
+
+//! Type definition for a pointer to a void somefunc(void)
+typedef void (*PointerToHandler)();
+
+//! The macro casts "address of a pointer to a function" to PointerToHandler*.
+/** Need it because (PointerToHandler*)&ptr_to_func causes warnings from g++ 4.1 */
+#define ADDRESS_OF_HANDLER(x) (PointerToHandler*)(void*)(x)
+
+//! Association between a handler name and location of pointer to it.
+struct DynamicLinkDescriptor {
+    //! Name of the handler
+    const char* name;
+    //! Pointer to the handler
+    PointerToHandler* handler;
+};
+
+//! Fill in dynamically linked handlers.
+/** n is the length of array list[], must not exceed 4, which is all we currently need. 
+    If the library and all of the handlers are found, then all corresponding handler pointers are set.
+    Otherwise all corresponding handler pointers are untouched. */
+bool FillDynamicLinks( const char* libraryname, const DynamicLinkDescriptor list[], size_t n );
+
+//! Template functions to temporary add volatile attribute to a variable.
+/** Allow to perform operations with volatile semantics on non-volatile variables
+    which is useful to improve performance on IPF where Intel compiler
+    translates volatile reads to "load with acquire semantics" (ld*.acq)
+    and volatile writes to "store with release semantics" (st*.rel). */
+template<typename T>
+static inline T volatile& volatile_cast(T& location) {
+    return const_cast<T volatile&>(location);
+}
+
+template<typename T>
+static inline T const volatile& volatile_cast(T const& location) {
+    return const_cast<T const volatile&>(location);
+}
+
+//! Class that implements exponential backoff.
+/** See implementation of SpinwaitWhileEq for an example. */
+class ExponentialBackoff {
+    //! Time delay, in units of "pause" instructions. 
+    /** Should be equal to approximately the number of "pause" instructions
+        that take the same time as an context switch. */
+    static const int LOOPS_BEFORE_YIELD = 0x10;
+    int count;
+public:
+    ExponentialBackoff() : count(1) {}
+
+    //! Pause for a while.
+    void pause() {
+        if( count<=LOOPS_BEFORE_YIELD ) {
+            __TBB_Pause(count);
+            // Pause twice as long the next time.
+            count*=2;
+        } else {
+            // Pause is so long that we might as well yield CPU to scheduler.
+            __TBB_Yield();
+        }
+    }
+    void reset() {
+        count = 1;
+    }
+};
+
+//! Spin WHILE the value of the variable is equal to a given value
+/** T and U should be comparable types. */
+template<typename T, typename U>
+static inline void SpinwaitWhileEq( const volatile T& location, U value ) {
+    ExponentialBackoff backoff;
+    while( location==value ) {
+        backoff.pause();
+    }
+}
+
+//! Spin UNTIL the value of the variable is equal to a given value
+/** T and U should be comparable types. */
+template<typename T, typename U>
+static inline void SpinwaitUntilEq( const volatile T& location, const U value ) {
+    ExponentialBackoff backoff;
+    while( location!=value ) {
+        backoff.pause();
+    }
+}
+
+} // namespace internal
+
+} // namespace tbb
+
+#endif /* _TBB_tbb_misc_H */
diff --git a/src/tbb/tbb_resource.rc b/src/tbb/tbb_resource.rc
new file mode 100644
index 0000000..386b0a1
--- /dev/null
+++ b/src/tbb/tbb_resource.rc
@@ -0,0 +1,119 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Microsoft Visual C++ generated resource script.
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_NEXT_RESOURCE_VALUE        102
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1001
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <winresrc.h>
+#define ENDL "\r\n"
+#include "tbb_version.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+//#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION TBB_VERNUMBERS
+ PRODUCTVERSION TBB_VERNUMBERS
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "000004b0"
+        BEGIN
+            VALUE "CompanyName", "Intel Corporation\0"
+            VALUE "FileDescription", "Threading Building Blocks library\0"
+            VALUE "FileVersion", TBB_VERSION "\0"
+//what is it?            VALUE "InternalName", "tbb\0"
+            VALUE "LegalCopyright", "Copyright (C) 2006\0"
+            VALUE "LegalTrademarks", "\0"
+#ifndef TBB_DO_ASSERT
+            VALUE "OriginalFilename", "tbb.dll\0"
+#else
+            VALUE "OriginalFilename", "tbb_debug.dll\0"
+#endif
+            VALUE "ProductName", "Threading Building Blocks\0"
+            VALUE "ProductVersion", TBB_VERSION "\0"
+            VALUE "Comments", TBB_VERSION_STRINGS "\0"
+            VALUE "PrivateBuild", "\0"
+            VALUE "SpecialBuild", "\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0, 1200
+    END
+END
+
+//#endif    // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/src/tbb/tbb_version.h b/src/tbb/tbb_version.h
new file mode 100644
index 0000000..b1c5a5f
--- /dev/null
+++ b/src/tbb/tbb_version.h
@@ -0,0 +1,98 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Please define version number here:
+#define TBB_VERSION_MAJOR 2
+#define TBB_VERSION_MINOR 0
+
+
+
+
+
+
+
+// And don't touch anything below
+#ifndef ENDL
+#define ENDL "\n"
+#endif
+#include "version_string.tmp"
+
+#ifndef __TBB_VERSION_STRINGS
+#pragma message("Warning: version_string.tmp isn't generated properly by version_info.sh script!")
+// here is an example of macros value:
+#define __TBB_VERSION_STRINGS \
+"TBB: BUILD_HOST\tUnknown\n" \
+"TBB: BUILD_ARCH\tUnknown\n" \
+"TBB: BUILD_OS\t\tUnknown\n" \
+"TBB: BUILD_CL\t\tUnknown\n" \
+"TBB: BUILD_COMPILER\tUnknown\n" \
+"TBB: BUILD_COMMAND\tUnknown\n"
+#endif
+#ifndef __TBB_DATETIME
+#ifdef RC_INVOKED
+#define __TBB_DATETIME "Unknown"
+#else
+#define __TBB_DATETIME __DATE__ __TIME__
+#endif
+#endif
+#define __TBB_STRING_AUX(x) #x
+#define __TBB_STRING(x) __TBB_STRING_AUX(x)
+
+#define __TBB_VERSION_NUMBER "TBB: VERSION\t\t" __TBB_STRING(TBB_VERSION_MAJOR.TBB_VERSION_MINOR) ENDL
+#define __TBB_VERSION_DATETIME "TBB: BUILD_DATE\t\t" __TBB_DATETIME ENDL
+#ifndef TBB_DO_ASSERT
+    #define __TBB_VERSION_DO_ASSERT "TBB: TBB_DO_ASSERT\tundefined" ENDL
+#elif TBB_DO_ASSERT==0
+    #define __TBB_VERSION_DO_ASSERT "TBB: TBB_DO_ASSERT\t0" ENDL
+#elif TBB_DO_ASSERT==1
+    #define __TBB_VERSION_DO_ASSERT "TBB: TBB_DO_ASSERT\t1" ENDL
+#elif TBB_DO_ASSERT==2
+    #define __TBB_VERSION_DO_ASSERT "TBB: TBB_DO_ASSERT\t2" ENDL
+#else
+    #error Unexpected value for TBB_DO_ASSERT
+#endif
+#ifndef DO_ITT_NOTIFY
+    #define __TBB_VERSION_DO_NOTIFY "TBB: DO_ITT_NOTIFY\tundefined" ENDL
+#elif DO_ITT_NOTIFY==1
+    #define __TBB_VERSION_DO_NOTIFY "TBB: DO_ITT_NOTIFY\t1" ENDL
+#elif DO_ITT_NOTIFY==0
+    #define __TBB_VERSION_DO_NOTIFY
+#else
+    #error Unexpected value for DO_ITT_NOTIFY
+#endif
+
+#define TBB_VERSION_STRINGS __TBB_VERSION_NUMBER __TBB_VERSION_DATETIME __TBB_VERSION_STRINGS __TBB_VERSION_DO_ASSERT __TBB_VERSION_DO_NOTIFY
+
+// numbers
+#ifndef __TBB_VERSION_YMD
+#define __TBB_VERSION_YMD 0, 0
+#endif
+
+#define TBB_VERNUMBERS TBB_VERSION_MAJOR, TBB_VERSION_MINOR, __TBB_VERSION_YMD
+
+#define TBB_VERSION __TBB_STRING(TBB_VERNUMBERS)
diff --git a/src/tbbmalloc/Customize.h b/src/tbbmalloc/Customize.h
new file mode 100644
index 0000000..4c8f8ef
--- /dev/null
+++ b/src/tbbmalloc/Customize.h
@@ -0,0 +1,82 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _TBB_malloc_Customize_H_
+#define _TBB_malloc_Customize_H_
+
+/* Thread shutdown notification callback */
+/* redefine the name of the callback to meet TBB requirements
+   for externally visible names of service functions */
+#define mallocThreadShutdownNotification __TBB_mallocThreadShutdownNotification
+#define mallocProcessShutdownNotification __TBB_mallocProcessShutdownNotification
+
+extern "C" void mallocThreadShutdownNotification(void *);
+extern "C" void mallocProcessShutdownNotification(void);
+
+// customizing MALLOC_ASSERT macro
+#include "tbb/tbb_stddef.h"
+#define MALLOC_ASSERT(assertion, message) __TBB_ASSERT(assertion, message)
+
+#include "tbb/tbb_machine.h"
+
+//! Stripped down version of spin_mutex.
+/** Instances of MallocMutex must be declared in memory that is zero-initialized.
+    There are no constructors.  This is a feature that lets it be
+    used in situations where the mutex might be used while file-scope constructors
+    are running.
+
+    There are no methods "acquire" or "release".  The scoped_lock must be used
+    in a strict block-scoped locking pattern.  Omitting these methods permitted
+    further simplication. */
+class MallocMutex {
+    volatile unsigned char value;
+
+    //! Deny assignment
+    void operator=( MallocMutex& MallocMutex );
+public:
+    class scoped_lock {
+        const unsigned char value;
+        MallocMutex& mutex;
+    public:
+        scoped_lock( MallocMutex& m ) : value( __TBB_LockByte(m.value)), mutex(m) {}
+        ~scoped_lock() { mutex.value = value; }
+    };
+    friend class scoped_lock;
+};
+
+inline intptr_t AtomicIncrement( volatile intptr_t& counter ) {
+    return __TBB_FetchAndAddW( &counter, 1 )+1;
+}
+
+inline intptr_t AtomicCompareExchange( volatile intptr_t& location, intptr_t new_value, intptr_t comparand) {
+    return __TBB_CompareAndSwapW( &location, new_value, comparand );
+}
+
+#define USE_DEFAULT_MEMORY_MAPPING 1
+
+#endif /* _TBB_malloc_Customize_H_ */
diff --git a/src/tbbmalloc/LifoQueue.h b/src/tbbmalloc/LifoQueue.h
new file mode 100644
index 0000000..cd92dff
--- /dev/null
+++ b/src/tbbmalloc/LifoQueue.h
@@ -0,0 +1,97 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _itt_common_malloc_LifoQueue_H_
+#define _itt_common_malloc_LifoQueue_H_
+
+#include "TypeDefinitions.h"
+#include <string.h> // for memset()
+
+//! Checking the syncronization method
+/** FINE_GRAIN_LOCKS is the only variant for now; should be defined for LifoQueue */
+#ifndef FINE_GRAIN_LOCKS
+#define FINE_GRAIN_LOCKS
+#endif
+
+namespace ThreadingSubstrate {
+
+namespace Internal {
+
+class LifoQueue {
+public:
+    inline LifoQueue();
+    inline void push(void** ptr);
+    inline void* pop(void);
+
+private:
+    void * top;
+#ifdef FINE_GRAIN_LOCKS
+    MallocMutex lock;
+#endif /* FINE_GRAIN_LOCKS     */
+};
+
+#ifdef FINE_GRAIN_LOCKS
+/* LifoQueue assumes zero initialization so a vector of it can be created
+ * by just allocating some space with no call to constructor.
+ * On Linux, it seems to be necessary to avoid linking with C++ libraries.
+ *
+ * By usage convention there is no race on the initialization. */
+LifoQueue::LifoQueue( ) : top(NULL)
+{
+    // MallocMutex assumes zero initialization
+    memset(&lock, 0, sizeof(MallocMutex));
+}
+
+void LifoQueue::push( void **ptr )
+{   
+    MallocMutex::scoped_lock scoped_cs(lock);
+    *ptr = top;
+    top = ptr;
+}
+
+void * LifoQueue::pop( )
+{   
+    void **result=NULL;
+    {
+        MallocMutex::scoped_lock scoped_cs(lock);
+        if (!top) goto done;
+        result = (void **) top;
+        top = *result;
+    } 
+    *result = NULL;
+done:
+    return result;
+}
+
+#endif /* FINE_GRAIN_LOCKS     */
+
+} // namespace Internal
+} // namespace ThreadingSubstrate
+
+#endif /* _itt_common_malloc_LifoQueue_H_ */
+
diff --git a/src/tbbmalloc/MapMemory.h b/src/tbbmalloc/MapMemory.h
new file mode 100644
index 0000000..967e2d5
--- /dev/null
+++ b/src/tbbmalloc/MapMemory.h
@@ -0,0 +1,82 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _itt_shared_malloc_MapMemory_H
+#define _itt_shared_malloc_MapMemory_H
+
+#if __linux__ || __APPLE__
+#include <sys/mman.h>
+
+void* MapMemory (size_t bytes)
+{
+    void* result = 0;
+#ifndef MAP_ANONYMOUS
+// Mac OS* X defines MAP_ANON, which is deprecated in Linux.
+#define MAP_ANONYMOUS MAP_ANON
+#endif /* MAP_ANONYMOUS */
+    result = mmap(result, bytes, (PROT_READ | PROT_WRITE), MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+    return result==MAP_FAILED? 0: result;
+}
+
+int UnmapMemory(void *area, size_t bytes)
+{
+    return munmap(area, bytes);
+}
+
+#elif _WIN32 || _WIN64
+#include <windows.h>
+
+void* MapMemory (size_t bytes)
+{
+    /* Is VirtualAlloc thread safe? */
+    return VirtualAlloc(NULL, bytes, (MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN), PAGE_READWRITE);
+}
+
+int UnmapMemory(void *area, size_t bytes)
+{
+    BOOL result = VirtualFree(area, 0, MEM_RELEASE);
+    return !result;
+}
+
+#else
+#include <stdlib.h>
+
+void* MapMemory (size_t bytes)
+{
+    return malloc( bytes );
+}
+
+int UnmapMemory(void *area, size_t bytes)
+{
+    free( area );
+    return 0;
+}
+
+#endif /* OS dependent */
+
+#endif /* _itt_shared_malloc_MapMemory_H */
diff --git a/src/tbbmalloc/MemoryAllocator.cpp b/src/tbbmalloc/MemoryAllocator.cpp
new file mode 100644
index 0000000..ef1a9f5
--- /dev/null
+++ b/src/tbbmalloc/MemoryAllocator.cpp
@@ -0,0 +1,1580 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+
+//#define MALLOC_TRACE
+
+#ifdef MALLOC_TRACE
+#define TRACEF printf
+#else
+static inline int TRACEF(char *arg, ...)
+{
+    return 0;
+}
+#endif /* MALLOC_TRACE */
+
+#define ASSERT_TEXT NULL
+
+#include "TypeDefinitions.h"
+
+#if USE_PTHREAD
+    // Some pthreads documentation says that <pthreads.h> must be first header.
+    #include <pthread.h>
+    #define TlsSetValue_func pthread_setspecific
+    #define TlsGetValue_func pthread_getspecific
+    typedef pthread_key_t tls_key_t;
+    #include <sched.h>
+    inline void do_yield() {sched_yield();}
+
+#elif USE_WINTHREAD
+    #include <windows.h>
+    #define TlsSetValue_func TlsSetValue
+    #define TlsGetValue_func TlsGetValue
+    typedef DWORD tls_key_t;
+    inline void do_yield() {Sleep(0);}
+
+#else
+    #error Must define USE_PTHREAD or USE_WINTHREAD
+
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#if __linux__||__APPLE__
+#include <fcntl.h>
+#endif
+
+/**
+*** Define various compile-time options
+**/
+
+//! Define the main syncronization method
+/** It should be specified before including LifoQueue.h */
+#define FINE_GRAIN_LOCKS
+#include "LifoQueue.h"
+
+#define COLLECT_STATISTICS 0
+#include "Statistics.h"
+
+#define FREELIST_NONBLOCKING 1
+
+// If USE_MALLOC_FOR_LARGE_OBJECT is nonzero, then large allocations are done via malloc.
+// Otherwise large allocations are done using the scalable allocator's block allocator.
+// As of 06.Jun.17, using malloc is about 10x faster on Linux.
+#define USE_MALLOC_FOR_LARGE_OBJECT 1
+
+#if USE_MALLOC_FOR_LARGE_OBJECT
+#include <stdlib.h>
+#else
+extern "C" void exit( int ); /* to not include stdlib.h */
+#endif /* USE_MALLOC_FOR_LARGE_OBJECT */
+
+
+namespace ThreadingSubstrate {
+
+namespace Internal {
+
+/*********** Code to provide thread ID and a thread-local void pointer **********/
+
+typedef intptr_t ThreadId;
+
+static volatile ThreadId ThreadIdCount;
+
+static tls_key_t TLS_pointer_key;
+static tls_key_t Tid_key;
+
+static inline ThreadId  getThreadId(void)
+{
+    ThreadId result;
+    result = reinterpret_cast<ThreadId>(TlsGetValue_func(Tid_key));
+    if( !result ) {
+        // Thread-local value is zero -> first call from this thread,
+        // need to initialize with next ID value (IDs start from 1)
+        result = AtomicIncrement(ThreadIdCount); // returned new value!
+        TlsSetValue_func( Tid_key, reinterpret_cast<void*>(result) );
+    }
+    return result;
+}
+
+static inline void* getThreadMallocTLS() {
+    void *result;
+    result = TlsGetValue_func( TLS_pointer_key );
+// The assert below is incorrect: with lazy initialization, it fails on the first call of the function.
+//    MALLOC_ASSERT( result, "Memory allocator not initialized" );
+    return result;
+}
+
+static inline void  setThreadMallocTLS( void * newvalue ) {
+    TlsSetValue_func( TLS_pointer_key, newvalue );
+}
+
+/*********** End code to provide thread ID and a TLS pointer **********/
+
+
+/*********** Code to acquire memory from the OS or other executive ****************/
+
+#if USE_DEFAULT_MEMORY_MAPPING
+#include "MapMemory.h"
+#else
+/* assume MapMemory and UnmapMemory are customized */
+#endif
+
+/*
+ * Get memory in pieces of this size. 0x0100000;is 1 megabyte decimal
+ *
+ */
+
+static size_t mmapRequestSize = 0x0100000;
+
+/*
+ * Objects of this size and larger are considered large objects.
+ */
+static const uint32_t minLargeObjectSize = 8129; // 8128 is the biggest size to be held in a bin
+
+/*
+ * Returns 0 if failure for any reason
+ * otherwise returns a pointer to the newly available memory.
+ */
+static void* getMemory (size_t bytes)
+{
+    void *result = 0;
+    MALLOC_ASSERT( bytes>=minLargeObjectSize, "request too small" );
+    result = MapMemory(bytes);
+#ifdef MALLOC_TRACE
+    if (!result) {
+        TRACEF("ScalableMalloc trace - getMemory unsuccess, can't get %d bytes from OS\n", bytes);
+    } else {
+        TRACEF("ScalableMalloc trace - getMemory success returning %p\n", result);
+    }
+#endif
+    return result;
+}
+
+static void returnMemory(void *area, size_t bytes)
+{
+    int retcode = UnmapMemory(area, bytes);
+#ifdef MALLOC_TRACE
+    if (retcode) {
+        TRACEF("ScalableMalloc trace - returnMemory unsuccess for %p; perhaps it has already been freed or was never allocated.\n", area);
+    }
+#endif
+    return;
+}
+
+/********* End memory acquisition code ********************************/
+
+/********* The data structures                           **************/
+
+typedef struct FreeObjectS *FreeObjectPtr;
+
+typedef struct FreeObjectS {
+    FreeObjectPtr  next;
+} FreeObject;
+
+/*
+ * The intent is to make sure that the size of a Block is the same as a cache line size, this allows us to
+ * get good alignement at the cost of some overhead equal to the amount of padding included in the Block.
+ *
+ */
+
+#define CACHE_LINE_SIZE 64
+
+typedef struct BlockS *BlockPtr;
+
+/* The next field in this structure has to maintain some invariants.
+ *   it needs to be on a 16K boundary and the first field in the block.
+ *   Any value stored there needs to have the lower 14 bits set to 0
+ *   so that various assert work. This means that if you want to smash this memory
+ *   for debugging purposes you will need to obey this invariant.
+ * The total size of this structure needs to be a power of 2 to simplify
+ * the alignement requirements. For now it is a 64 byte structure.
+ * Moreover, changing the size would require to change some bin allocation sizes,
+ * in particular "fitting" sizes (see below).
+ */
+
+typedef struct BlockS {
+    BlockPtr     next;     /* This field needs to be on a 16K boundary and the first field in the block
+                              so non-blocking LifoQueues will work. */
+    BlockPtr     previous; /* Use double linked list to speed up removal */
+    unsigned int objectSize;
+    unsigned int owner;
+    FreeObject  *bumpPtr;         /* bump pointer moves from the end to the beginning of a block */
+    FreeObject  *freeList;
+    FreeObject  *publicFreeList;
+    BlockPtr     nextPrivatizable;
+    unsigned int allocatedCount;  /* Number of objects allocated (obviously by the owning thread) */
+    unsigned int isFull;
+#if !( __ARCH_x86_64 || __ARCH_ipf )
+#define BLOCK_IS_PADDED 1
+    void        *pad1;    /* Pad so bytesForObjects is at 64 bytes to help with alignment */
+    void        *pad2;
+    void        *pad3;
+    void        *pad4;
+    void        *pad5;
+    void        *pad6;
+#endif
+} Block;
+
+//typedef Block SizeBins[]; /* an array of blocks */
+
+typedef struct BinS {
+    BlockPtr  activeBlk;
+    BlockPtr  mailbox;
+    MallocMutex mailLock;
+} Bin;
+
+/********* End of the data structures                    **************/
+
+
+/********* Now some rough utility code to deal with indexing the size bins. **************/
+
+/*
+ * There are bins for all 8 byte aligned objects less than this segregated size; 8 bins in total
+ */
+static const uint32_t maxSmallObjectSize = 64;
+
+/*
+ * There are 4 bins between each couple of powers of 2 [64-128-256-...]
+ * from maxSmallObjectSize till this size; 16 bins in total
+ */
+static const uint32_t maxSegregatedObjectSize = 1024;
+
+/*
+ * And there are 5 bins with the following allocation sizes: 1600, 2688, 4032, 5440, 8128.
+ * They selected to fit 10, 6, 4, 3, and 2 sizes per a block, and also are multiples of 64.
+ * If sizeof(Block) changes from 64, these sizes require close attention!
+ */
+static const uint32_t fittingSize1 = 1600;
+static const uint32_t fittingSize2 = 2688;
+static const uint32_t fittingSize3 = 4032;
+static const uint32_t fittingSize4 = 5440;
+static const uint32_t fittingSize5 = 8128;
+
+/*
+ * This number of bins in the TLS that leads to blocks that we can allocate in.
+ */
+static const uint32_t numBlockBinLimit = 32;
+static const uint32_t numBlockBins = 29;
+
+/*
+ * The size of the TLS should be enough to hold twice as many as numBlockBinLimit pointers
+ * the first sequence of pointers is for lists of blocks to allocate from
+ * the second sequence is for lists of blocks that have non-empty publicFreeList
+ */
+static const uint32_t tlsSize = numBlockBinLimit * sizeof(Bin);
+
+/*
+ * blockSize - the size of a block, it must be larger than maxSegregatedObjectSize.
+ * we may well want to play around with this, a 4K page size is another interesting size.
+ *
+ */
+static const uintptr_t blockSize = 16384;
+
+/*
+ * This is a lifo queue that one can init, push or pop from */
+static LifoQueue freeBlockQueue;
+
+/*
+ * When a block that is not completely free is returned for reuse by other threads
+ * this is where the block goes.
+ *
+ */
+
+static char globalBinSpace[sizeof(LifoQueue)*numBlockBinLimit];
+static LifoQueue* globalSizeBins = (LifoQueue*)globalBinSpace;
+
+/*
+ * Given a number return the highest non-zero bit in it. It is intended to work with 32-bit values only.
+ * Moreover, on IPF, for sake of simplicity and performance, it is narrowed to only serve for 64 to 1023.
+ * This is enough for current algorithm of distribution of sizes among bins.
+ */
+#if _WIN64 && _MSC_VER>=1400 && !__INTEL_COMPILER
+extern "C" unsigned char _BitScanReverse( unsigned long* i, unsigned long w );
+#pragma intrinsic(_BitScanReverse)
+#endif
+static inline unsigned int highestBitPos(unsigned int number)
+{
+    unsigned int pos;
+#if __ARCH_x86_32||__ARCH_x86_64
+
+# if __linux__||__APPLE__
+    __asm__ ("bsr %1,%0" : "=r"(pos) : "r"(number));
+# elif (_WIN32 && (!_WIN64 || __INTEL_COMPILER))
+    __asm
+    {
+        bsr eax, number
+        mov pos, eax
+    }
+# elif _WIN64 && _MSC_VER>=1400
+    _BitScanReverse((unsigned long*)&pos, (unsigned long)number);
+# else
+#   error highestBitPos() not implemented for this platform
+# endif
+
+#elif __ARCH_ipf || __ARCH_unknown
+    static unsigned int bsr[16] = {0,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9};
+    MALLOC_ASSERT( number>=64 && number<1024, ASSERT_TEXT );
+    pos = bsr[ number>>6 ];
+#else
+#   error highestBitPos() not implemented for this platform
+#endif
+    return pos;
+}
+
+/*
+ * Given a size return the index into the bins for object of this size.
+ *
+ */
+static unsigned int getIndex (unsigned int size)
+{
+    // If this fails then getIndex has problems since it doesn't return the correct index all the time.
+    if (size <= maxSmallObjectSize) {
+        return ((size - 1) >> 3); /* Index 0 holds up to 8 bytes, Index 1 16 and so forth */
+    }
+    else if (size <= maxSegregatedObjectSize ) {
+        unsigned order = highestBitPos(size-1);
+        MALLOC_ASSERT( order>=6 && order<=9, ASSERT_TEXT );
+        return ( (size-1)>>(order-2) ) + 4*(order-5);
+    }
+    else {
+        if( size <= fittingSize3 ) {
+            if( size <= fittingSize2 ) {
+                if( size <= fittingSize1 )
+                    return 24;
+                else
+                    return 25;
+            } else
+                return 26;
+        } else {
+            if( size <= fittingSize5 ) {
+                if( size <= fittingSize4 )
+                    return 27;
+                else
+                    return 28;
+            } else {
+                MALLOC_ASSERT( 0,ASSERT_TEXT ); // this should not happen
+                return (unsigned)-1;
+            }
+        }
+    }
+}
+
+/*
+ * Given a size return the size of the object in the block used to
+ * allocate such an object.
+ *
+ */
+static unsigned int getAllocatedSize (unsigned int size)
+{
+    // If this fails then get_index has problems since it doesn't return the correct index all the time.
+    if (size <= maxSmallObjectSize) {
+        return ((size + 7) & ~7); /* Index 0 holds up to 8 bytes, Index 1 16 and so forth */
+    }
+    else if (size <= maxSegregatedObjectSize) {
+        unsigned aligner = 127 >> (9-highestBitPos(size-1));
+        MALLOC_ASSERT( aligner==127 || aligner==63 || aligner==31 || aligner==15, ASSERT_TEXT );
+        return (size+aligner)&~aligner;
+    }
+    else {
+        if( size <= fittingSize3 ) {
+            if( size <= fittingSize2 ) {
+                if( size <= fittingSize1 )
+                    return fittingSize1;
+                else
+                    return fittingSize2;
+            } else
+                return fittingSize3;
+        } else {
+            if( size <= fittingSize5 ) {
+                if( size <= fittingSize4 )
+                    return fittingSize4;
+                else
+                    return fittingSize5;
+            } else {
+                MALLOC_ASSERT( 0,ASSERT_TEXT ); // this should not happen
+                return (unsigned)-1;
+            }
+        }
+    }
+}
+
+/*
+ * Initialization code.
+ *
+ */
+
+/*
+ * Big Blocks are the blocks we get from the OS or some similar place using getMemory above.
+ * They are placed on the freeBlockQueue once they are acquired.
+ */
+
+static inline void *alignBigBlock(void *unalignedBigBlock)
+{
+    void *alignedBigBlock;
+    /* align the entireHeap so all blocks are aligned. */
+    alignedBigBlock = (void *) ( ((uintptr_t)unalignedBigBlock + blockSize - 1) & ~(blockSize - 1) );
+    return alignedBigBlock;
+}
+
+/* Divide the big block into smaller bigBlocks that hold this many blocks.
+ * This is done since we really need a lot of blocks on the freeBlockQueue or there will be
+ * contention problems.
+ */
+static const unsigned int blocksPerBigBlock = 16;
+
+/* Returns 0 if unsuccessful, otherwise 1. */
+static int mallocBigBlock()
+{
+    void *unalignedBigBlock;
+    void *alignedBigBlock;
+    void *bigBlockCeiling;
+    Block *splitBlock;
+    void *splitEdge;
+    size_t bigBlockSplitSize;
+
+    unalignedBigBlock = getMemory(mmapRequestSize);
+
+    if (!unalignedBigBlock) {
+        TRACEF(" in mallocBigBlock, getMemory returns 0\n");
+        /* We can't get any more memory from the OS or executive so return 0 */
+        return 0;
+    }
+
+    alignedBigBlock = alignBigBlock(unalignedBigBlock);
+    bigBlockCeiling = (void*)((uintptr_t)unalignedBigBlock + mmapRequestSize);
+
+    bigBlockSplitSize = blocksPerBigBlock * blockSize;
+
+    splitBlock = (Block*)alignedBigBlock;
+
+    while ( ((uintptr_t)splitBlock + blockSize) <= (uintptr_t)bigBlockCeiling ) {
+        splitEdge = (void*)((uintptr_t)splitBlock + bigBlockSplitSize);
+        if( splitEdge > bigBlockCeiling) {
+            // align down to blockSize
+            splitEdge = (void*)((uintptr_t)bigBlockCeiling & ~(blockSize - 1));
+        }
+        splitBlock->bumpPtr = (FreeObject*)splitEdge;
+        freeBlockQueue.push((void**) splitBlock);
+        splitBlock = (Block*)splitEdge;
+    }
+
+    TRACEF("in mallocBigBlock returning 1\n");
+    return 1;
+}
+
+/**************** Some forward references ******************/
+static void *bootStrapMalloc(size_t size);
+extern "C" void mallocThreadShutdownNotification(void*);
+/**************** End Forward references  ******************/
+
+/*
+ * Obviously this needs to be called before malloc is available.
+ */
+/*  THIS IS DONE ON-DEMAND ON FIRST MALLOC, SO ASSUME MANUAL CALL TO IT IS NOT REQUIRED  */
+static void initMemoryManager()
+{
+    int result;
+    /* Hard code this size to 64 so that we get natural alignement for several useful sizes.. */
+    TRACEF("sizeof(Block) is %d (expected 64); sizeof(uintptr_t) is %d\n", sizeof(Block), sizeof(uintptr_t));
+    MALLOC_ASSERT( CACHE_LINE_SIZE == sizeof(Block), ASSERT_TEXT );
+
+// Create keys for thread-local storage and for thread id
+// TODO: add error handling
+#if USE_WINTHREAD
+    TLS_pointer_key = TlsAlloc();
+    Tid_key = TlsAlloc();
+#else
+    int status = pthread_key_create( &TLS_pointer_key, mallocThreadShutdownNotification );
+    status = pthread_key_create( &Tid_key, NULL );
+//    if( status )
+//        HandlePerror(status,"pthread_key_create");
+#endif /* USE_WINTHREAD */
+    // no more necessary: lifoQueueInit(&freeBlockQueue);
+    TRACEF("Asking for a mallocBigBlock\n");
+    result = mallocBigBlock();
+    if (!result) {
+        printf ("initMemoryManager cannot access sufficient memory to initialize; aborting \n");
+        exit(0);
+    }
+}
+
+
+/*
+ * The malloc routines themselves need to be able to occasionally malloc some space,
+ * in order to set up the structures used by the thread local structures. This
+ * routine preforms that fuctions.
+ */
+
+/*
+ * Forward Refs
+ */
+static void initEmptyBlock(Block *block, size_t size);
+static Block *getEmptyBlock(size_t size);
+
+static MallocMutex bootStrapBlockLock;
+
+static Block *bootStrapBlock = NULL;
+static Block *bootStrapBlockUsed = NULL;
+
+static void *bootStrapMalloc(size_t size)
+{
+    void *result;
+
+    MALLOC_ASSERT( size == tlsSize, ASSERT_TEXT );
+
+    { // Lock with acquire
+        MallocMutex::scoped_lock scoped_cs(bootStrapBlockLock);
+
+        if (!bootStrapBlock) {
+            bootStrapBlock = getEmptyBlock(size);
+        }
+
+        result = bootStrapBlock->bumpPtr;
+        bootStrapBlock->bumpPtr = (FreeObject *)((uintptr_t)bootStrapBlock->bumpPtr - bootStrapBlock->objectSize);
+        if ((uintptr_t)bootStrapBlock->bumpPtr < (uintptr_t)bootStrapBlock+sizeof(Block)) {
+            bootStrapBlock->bumpPtr = NULL;
+            bootStrapBlock->next = bootStrapBlockUsed;
+            bootStrapBlockUsed = bootStrapBlock;
+            bootStrapBlock = NULL;
+        }
+
+    } // Unlock with release
+
+    memset (result, 0, size);
+    return result;
+}
+
+/********* End rough utilitiy code  **************/
+
+/********* Thread and block related code      *************/
+
+#ifdef MALLOC_DEBUG
+/* The debug version verifies the TLSBin as needed */
+static void verifyTLSBin (Bin* bin, size_t size)
+{
+    Block* temp;
+    Bin*   tls;
+    uint32_t index = getIndex(size);
+    uint32_t objSize = getAllocatedSize(size);
+
+    tls = (Bin*)getThreadMallocTLS();
+    MALLOC_ASSERT( bin == tls+index, ASSERT_TEXT );
+
+    if (tls[index] && tls[index].activeBlk) {
+        MALLOC_ASSERT( tls[index].activeBlk->owner == getThreadId(), ASSERT_TEXT );
+        MALLOC_ASSERT( tls[index].activeBlk->objectSize == objSize, ASSERT_TEXT );
+
+        for (temp = tls[index].activeBlk->next; temp; temp=temp->next) {
+            MALLOC_ASSERT( temp!=tls[index].activeBlk, ASSERT_TEXT );
+            MALLOC_ASSERT( temp->owner == getThreadId(), ASSERT_TEXT );
+            MALLOC_ASSERT( temp->objectSize == objSize, ASSERT_TEXT );
+            MALLOC_ASSERT( temp->previous->next == temp, ASSERT_TEXT );
+            if (temp->next) {
+                MALLOC_ASSERT( temp->next->previous == temp, ASSERT_TEXT );
+            }
+        }
+        for (temp = tls[index].activeBlk->previous; temp; temp=temp->previous) {
+            MALLOC_ASSERT( temp!=tls[index], ASSERT_TEXT );
+            MALLOC_ASSERT( temp->owner == getThreadId(), ASSERT_TEXT );
+            MALLOC_ASSERT( temp->objectSize == objSize, ASSERT_TEXT );
+            MALLOC_ASSERT( temp->next->previous == temp, ASSERT_TEXT );
+            if (temp->previous) {
+                MALLOC_ASSERT( temp->previous->next == temp, ASSERT_TEXT );
+            }
+        }
+    }
+}
+#else
+inline static void verifyTLSBin (Bin*, size_t) {}
+#endif
+
+/*
+ * Add a block to the start of this tls bin list.
+ */
+static void pushTLSBin (Bin* bin, Block* block)
+{
+    /* The objectSize should be defined and not a parameter
+       because the function is applied to partially filled blocks as well */
+    unsigned int size = block->objectSize;
+    Block* activeBlk;
+
+    MALLOC_ASSERT( block->owner == getThreadId(), ASSERT_TEXT );
+    MALLOC_ASSERT( block->objectSize != 0, ASSERT_TEXT );
+    MALLOC_ASSERT( block->next == NULL, ASSERT_TEXT );
+    MALLOC_ASSERT( block->previous == NULL, ASSERT_TEXT );
+
+    MALLOC_ASSERT( bin, ASSERT_TEXT );
+    verifyTLSBin(bin, size);
+    activeBlk = bin->activeBlk;
+
+    block->next = activeBlk;
+    if( activeBlk ) {
+        block->previous = activeBlk->previous;
+        activeBlk->previous = block;
+        if( block->previous )
+            block->previous->next = block;
+    } else {
+        bin->activeBlk = block;
+    }
+
+    verifyTLSBin(bin, size);
+}
+
+/*
+ * Take a block out of its tls bin (e.g. before removal).
+ */
+static void outofTLSBin (Bin* bin, Block* block)
+{
+    unsigned int size = block->objectSize;
+
+    MALLOC_ASSERT( block->owner == getThreadId(), ASSERT_TEXT );
+    MALLOC_ASSERT( block->objectSize != 0, ASSERT_TEXT );
+
+    MALLOC_ASSERT( bin, ASSERT_TEXT );
+    verifyTLSBin(bin, size);
+
+    if (block == bin->activeBlk) {
+        bin->activeBlk = block->previous? block->previous : block->next;
+    }
+    /* Delink the block */
+    if (block->previous) {
+        MALLOC_ASSERT( block->previous->next == block, ASSERT_TEXT );
+        block->previous->next = block->next;
+    }
+    if (block->next) {
+        MALLOC_ASSERT( block->next->previous == block, ASSERT_TEXT );
+        block->next->previous = block->previous;
+    }
+    block->next = NULL;
+    block->previous = NULL;
+
+    verifyTLSBin(bin, size);
+}
+
+/*
+ * init the TLS bins and return the bin,
+ * an array of *blocks initialized to NULL.
+ */
+static Bin* initMallocTLS (void)
+{
+    Bin* tls;
+    int i;
+    MALLOC_ASSERT( tlsSize >= sizeof(Bin) * numBlockBins, ASSERT_TEXT );
+    tls = (Bin*) bootStrapMalloc(tlsSize);
+    /* the block contains zeroes after bootStrapMalloc, so bins are initialized */
+#ifdef MALLOC_DEBUG
+    for (i = 0; i < numBlockBinLimit; i++) {
+        MALLOC_ASSERT( tls[i].activeBlk == 0, ASSERT_TEXT );
+        MALLOC_ASSERT( tls[i].mailbox == 0, ASSERT_TEXT );
+    }
+#endif
+    setThreadMallocTLS(tls);
+    return tls;
+}
+
+static Bin* getAllocationBin(size_t size)
+{
+    uint32_t index;
+    Bin*   tls;
+
+    index = getIndex(size);
+    tls = (Bin*)getThreadMallocTLS();
+    if( !tls ) {
+        tls = initMallocTLS();
+    }
+    MALLOC_ASSERT(tls, ASSERT_TEXT);
+    return tls+index;
+}
+
+static const float emptyEnoughRatio = 1.0 / 4.0; /* "Reactivate" a block if this share of its objects is free. */
+
+static unsigned int emptyEnoughToUse (Block *mallocBlock)
+{
+    const float threshold = (blockSize - sizeof(Block)) * (1-emptyEnoughRatio);
+
+    if (mallocBlock->bumpPtr) {
+        /* If we are still using a bump ptr for this block it is empty enough to use. */
+        STAT_increment(mallocBlock->owner, getIndex(mallocBlock->objectSize), examineEmptyEnough);
+        mallocBlock->isFull = 0;
+        return 1;
+    }
+
+    /* allocatedCount shows how many objects in the block are in use; however it still counts
+       blocks freed by other threads; so prior call to privatizePublicFreeList() is recommended */
+    mallocBlock->isFull = (mallocBlock->allocatedCount*mallocBlock->objectSize > threshold)? 1: 0;
+#if COLLECT_STATISTICS
+    if (mallocBlock->isFull)
+        STAT_increment(mallocBlock->owner, getIndex(mallocBlock->objectSize), examineNotEmpty);
+    else
+        STAT_increment(mallocBlock->owner, getIndex(mallocBlock->objectSize), examineEmptyEnough);
+#endif
+    return 1-mallocBlock->isFull;
+}
+
+/* Restore the bump pointer for an empty block that is planned to use */
+static void restoreBumpPtr (Block *block)
+{
+    MALLOC_ASSERT (block->allocatedCount == 0, ASSERT_TEXT);
+    MALLOC_ASSERT (block->publicFreeList == NULL, ASSERT_TEXT);
+    STAT_increment(block->owner, getIndex(block->objectSize), freeRestoreBumpPtr);
+    block->bumpPtr = (FreeObject *)((uintptr_t)block + blockSize - block->objectSize);
+    block->freeList = NULL;
+    block->isFull = 0;
+}
+
+// #ifdef FINE_GRAIN_LOCKS
+
+#if !(FREELIST_NONBLOCKING)
+static MallocMutex publicFreeListLock; // lock for changes of publicFreeList
+#endif
+
+const uintptr_t UNUSABLE = 0x1;
+inline bool isSolidPtr( void* ptr )
+{
+    return (UNUSABLE|(uintptr_t)ptr)!=UNUSABLE;
+}
+inline bool isNotForUse( void* ptr )
+{
+    return (uintptr_t)ptr==UNUSABLE;
+}
+
+static void freePublicObject (Block *block, FreeObject *objectToFree)
+{
+    Bin* theBin;
+    FreeObject *publicFreeList;
+
+#if FREELIST_NONBLOCKING
+    FreeObject *temp;
+    do {
+        publicFreeList = objectToFree->next = const_cast<FreeObject* volatile &>(block->publicFreeList);
+        temp = (FreeObject*)AtomicCompareExchange(
+                                (intptr_t&)block->publicFreeList,
+                                (intptr_t)objectToFree, (intptr_t)publicFreeList );
+        //no backoff necessary because trying to make change, not waiting for a change
+    } while( temp != publicFreeList );
+#else
+    STAT_increment(getThreadId(), ThreadCommonCounters, lockPublicFreeList);
+    {
+        MallocMutex::scoped_lock scoped_cs(publicFreeListLock);
+        publicFreeList = objectToFree->next = block->publicFreeList;
+        block->publicFreeList = objectToFree;
+    }
+#endif
+
+    if( publicFreeList==NULL ) {
+        // if the block is abandoned, its nextPrivatizable pointer should be UNUSABLE
+        // otherwise, it should point to the bin the block belongs to.
+        // reading nextPrivatizable is thread-safe below, because:
+        // 1) the executing thread atomically got publicFreeList==NULL and changed it to non-NULL;
+        // 2) only owning thread can change it back to NULL,
+        // 3) but it can not be done until the block is put to the mailbox
+        // So the executing thread is now the only one that can change nextPrivatizable
+        if( !isNotForUse(block->nextPrivatizable) ) {
+            MALLOC_ASSERT(block->nextPrivatizable!=NULL, ASSERT_TEXT);
+            MALLOC_ASSERT(block->owner!=0, ASSERT_TEXT);
+            theBin = (Bin*) block->nextPrivatizable;
+#ifdef MALLOC_DEBUG
+            { // check that nextPrivatizable points to the bin the block belongs to
+                uint32_t index = getIndex( block->objectSize );
+                Bin* tls = (Bin*)getThreadMallocTLS();
+                MALLOC_ASSERT(theBin==tls+index, ASSERT_TEXT);
+            }
+#endif
+// the counter should be changed            STAT_increment(getThreadId(), ThreadCommonCounters, lockPublicFreeList);
+            MallocMutex::scoped_lock scoped_cs(theBin->mailLock);
+            block->nextPrivatizable = theBin->mailbox;
+            theBin->mailbox = block;
+        } else {
+            MALLOC_ASSERT(block->owner==0, ASSERT_TEXT);
+        }
+    }
+    STAT_increment(getThreadId(), ThreadCommonCounters, freeToOtherThread);
+    STAT_increment(block->owner, getIndex(block->objectSize), freeByOtherThread);
+}
+
+static void privatizePublicFreeList (Block *mallocBlock)
+{
+    FreeObject *temp, *publicFreeList;
+
+    MALLOC_ASSERT( mallocBlock->owner == getThreadId(), ASSERT_TEXT );
+#if FREELIST_NONBLOCKING
+    do {
+        publicFreeList = const_cast<FreeObject* volatile &>(mallocBlock->publicFreeList);
+        temp = (FreeObject*)AtomicCompareExchange(
+                                (intptr_t&)mallocBlock->publicFreeList,
+                                0, (intptr_t)publicFreeList);
+        //no backoff necessary because trying to make change, not waiting for a change
+    } while( temp != publicFreeList );
+#else
+    STAT_increment(mallocBlock->owner, ThreadCommonCounters, lockPublicFreeList);
+    {
+        MallocMutex::scoped_lock scoped_cs(publicFreeListLock);
+        publicFreeList = mallocBlock->publicFreeList;
+        mallocBlock->publicFreeList = NULL;
+    }
+    temp = publicFreeList;
+#endif
+
+    MALLOC_ASSERT(publicFreeList && publicFreeList==temp, ASSERT_TEXT); // there should be something in publicFreeList!
+    if( !isNotForUse(temp) ) { // return/getPartialBlock could set it to UNUSABLE
+        MALLOC_ASSERT(mallocBlock->allocatedCount <= (blockSize-sizeof(Block))/mallocBlock->objectSize, ASSERT_TEXT);
+        /* other threads did not change the counter freeing our blocks */
+        mallocBlock->allocatedCount--;
+        while( isSolidPtr(temp->next) ){ // the list will end with either NULL or UNUSABLE
+            temp = temp->next;
+            mallocBlock->allocatedCount--;
+        }
+        MALLOC_ASSERT(mallocBlock->allocatedCount < (blockSize-sizeof(Block))/mallocBlock->objectSize, ASSERT_TEXT);
+        /* merge with local freeList */
+        temp->next = mallocBlock->freeList;
+        mallocBlock->freeList = publicFreeList;
+        STAT_increment(mallocBlock->owner, getIndex(mallocBlock->objectSize), allocPrivatized);
+    }
+}
+
+static Block* getPublicFreeListBlock (Bin* bin)
+{
+    Block* block;
+    MALLOC_ASSERT( bin, ASSERT_TEXT );
+// the counter should be changed    STAT_increment(getThreadId(), ThreadCommonCounters, lockPublicFreeList);
+    {
+        MallocMutex::scoped_lock scoped_cs(bin->mailLock);
+        block = bin->mailbox;
+        if( block ) {
+            MALLOC_ASSERT( block->owner == getThreadId(), ASSERT_TEXT );
+            MALLOC_ASSERT( !isNotForUse(block->nextPrivatizable), ASSERT_TEXT );
+            bin->mailbox = block->nextPrivatizable;
+            block->nextPrivatizable = (Block*) bin;
+        }
+    }
+    if( block ) {
+        MALLOC_ASSERT( isSolidPtr(block->publicFreeList), ASSERT_TEXT );
+        privatizePublicFreeList(block);
+    }
+    return block;
+}
+
+static Block *getPartialBlock(Bin* bin, unsigned int size)
+{
+    Block *result;
+    MALLOC_ASSERT(bin, ASSERT_TEXT);
+    unsigned int index = getIndex(size);
+    result = (Block *) globalSizeBins[index].pop();
+    if (result) {
+        result->next = NULL;
+        result->previous = NULL;
+        MALLOC_ASSERT( result->publicFreeList!=NULL, ASSERT_TEXT );
+        /* There is not a race here since no other thread owns this block */
+        MALLOC_ASSERT(result->owner == 0, ASSERT_TEXT);
+        result->owner = getThreadId();
+        // It is safe to change nextPrivatizable, as publicFreeList is not null
+        MALLOC_ASSERT(isNotForUse(result->nextPrivatizable), ASSERT_TEXT);
+        result->nextPrivatizable = (Block*)bin;
+        // the next call is required to change publicFreeList to 0
+        privatizePublicFreeList(result);
+        if( result->allocatedCount ) {
+            // check its fullness and set result->isFull
+            emptyEnoughToUse(result);
+        } else {
+            restoreBumpPtr(result);
+        }
+        MALLOC_ASSERT( !isNotForUse(result->publicFreeList), ASSERT_TEXT );
+        STAT_increment(result->owner, index, allocBlockPublic);
+    }
+    return result;
+}
+
+static void returnPartialBlock(Bin* bin, Block *block)
+{
+    unsigned int index = getIndex(block->objectSize);
+    MALLOC_ASSERT(bin, ASSERT_TEXT);
+    MALLOC_ASSERT (block->owner==getThreadId(), ASSERT_TEXT);
+    STAT_increment(block->owner, index, freeBlockPublic);
+    // need to set publicFreeList to non-zero, so other threads
+    // will not change nextPrivatizable and it can be zeroed.
+    if ((intptr_t)block->nextPrivatizable==(intptr_t)bin) {
+        void* oldval;
+#if FREELIST_NONBLOCKING
+        oldval = (void*)AtomicCompareExchange((intptr_t&)block->publicFreeList, (intptr_t)UNUSABLE, 0);
+#else
+        STAT_increment(block->owner, ThreadCommonCounters, lockPublicFreeList);
+        {
+            MallocMutex::scoped_lock scoped_cs(publicFreeListLock);
+            if ( (oldval=block->publicFreeList)==NULL )
+                (uintptr_t&)(block->publicFreeList) = UNUSABLE;
+        }
+#endif
+        if ( oldval!=NULL ) {
+            // another thread freed an object; we need to wait until it finishes.
+            // I believe there is no need for exponential backoff, as the wait here is not for a lock;
+            // but need to yield, so the thread we wait has a chance to run.
+            while( (intptr_t)const_cast<Block* volatile &>(block->nextPrivatizable)==(intptr_t)bin ) {
+                int count = 256;
+                if (--count==0) {
+                    do_yield();
+                    count = 256;
+                }
+            }
+        }
+    } else {
+        MALLOC_ASSERT(isSolidPtr(block->publicFreeList), ASSERT_TEXT);
+    }
+    MALLOC_ASSERT( block->publicFreeList!=NULL, ASSERT_TEXT );
+    // now it is safe to change our data
+    block->previous = NULL;
+    block->owner = 0;
+    /* it is caller responsibility to ensure that the list of blocks
+     * formed by nextPrivatizable pointers is kept consistent if required.
+     * if only called from thread shutdown code, it does not matter */
+    (uintptr_t&)(block->nextPrivatizable) = UNUSABLE;
+    globalSizeBins[index].push((void **)block);
+}
+
+// #endif /* FINE_GRAIN_LOCKS */
+
+static void initEmptyBlock(Block *block, size_t size)
+{
+    unsigned int allocatedSize = getAllocatedSize(size);
+    Bin* tls = (Bin*)getThreadMallocTLS();
+//    unsigned int allocationSpace = blockSize - sizeof(Block);
+//    unsigned int objectsInBlock = allocationSpace / allocatedSize;
+#ifdef MALLOC_DEBUG
+    memset (block, 0x0e5, blockSize);
+#endif
+    block->next = NULL;
+    block->previous = NULL;
+    // bump pointer should be prepared for first allocation - thus mode it down to allocatedSize
+    block->bumpPtr = (FreeObject *)((uintptr_t)block + blockSize - allocatedSize);
+    // each block should have the address where the head of the list of "privatizable" blocks is kept
+    // the only exception is a block for boot strap which is initialized when TLS is yet NULL
+    block->nextPrivatizable = tls? (Block*)(tls + getIndex(size)) : NULL;
+    block->allocatedCount = 0;
+    block->freeList = NULL;
+    block->publicFreeList = NULL;
+    block->isFull = 0;
+    block->objectSize = allocatedSize;
+    block->owner = getThreadId();
+#if BLOCK_IS_PADDED
+    block->pad1 = 0;
+    block->pad2 = 0;
+    block->pad3 = 0;
+    block->pad4 = 0;
+    block->pad5 = 0;
+    block->pad6 = 0;
+#endif /* BLOCK_IS_PADDED */
+/*    printf ("Empty block %p is initialized, owner is %d, objectSize is %d, bumpPtr is %p\n",
+        block, block->owner, block->objectSize, block->bumpPtr);
+ */
+  }
+
+/* Return an empty uninitialized block in a non-blocking fashion. */
+static Block *getEmptyBlock(size_t size)
+{
+    Block *result;
+    Block *bigBlock;
+    int success;
+
+    result = NULL;
+
+    bigBlock = (Block *) freeBlockQueue.pop();
+
+    while (!bigBlock) {
+        /* We are out of blocks so got to the OS and get another one */
+        success = mallocBigBlock();
+        if (!success) {
+            return NULL;
+        }
+        bigBlock = (Block *) freeBlockQueue.pop();
+    }
+
+    // check alignment
+    MALLOC_ASSERT( !( (uintptr_t)bigBlock & (uintptr_t)(blockSize-1) ), ASSERT_TEXT);
+    MALLOC_ASSERT( !( (uintptr_t)bigBlock->bumpPtr & (uintptr_t)(blockSize-1) ), ASSERT_TEXT);
+    // block should be at least as big as blockSize; otherwise the previous block can be damaged.
+    MALLOC_ASSERT( (uintptr_t)bigBlock->bumpPtr >= (uintptr_t)bigBlock + blockSize, ASSERT_TEXT);
+    bigBlock->bumpPtr = (FreeObject *)((uintptr_t)bigBlock->bumpPtr - blockSize);
+    result = (Block *)bigBlock->bumpPtr;
+    if ( result!=bigBlock ) {
+        TRACEF("Pushing partial rest of block back on.\n");
+        freeBlockQueue.push((void **)bigBlock);
+    }
+    initEmptyBlock(result, size);
+    STAT_increment(result->owner, getIndex(result->objectSize), allocBlockNew);
+
+    return result;
+}
+
+/* We have a block give it back to the malloc block manager */
+static void returnEmptyBlock (Block *block, bool keepTheBin = true)
+{
+    // it is caller's responsibility to ensure no data is lost before calling this
+    MALLOC_ASSERT(block->allocatedCount==0, ASSERT_TEXT);
+    MALLOC_ASSERT(block->publicFreeList==NULL, ASSERT_TEXT);
+    if (keepTheBin) {
+        /* We should keep the TLS bin structure */
+        MALLOC_ASSERT( block->next == NULL, ASSERT_TEXT );
+        MALLOC_ASSERT( block->previous == NULL, ASSERT_TEXT );
+    }
+    STAT_increment(block->owner, getIndex(block->objectSize), freeBlockBack);
+
+    block->allocatedCount = 0;
+    // for an empty block, bump pointer should point right after the end of the block
+    block->bumpPtr = (FreeObject *)((uintptr_t)block + blockSize);
+    block->nextPrivatizable = NULL;
+    block->freeList = NULL;
+    block->publicFreeList = NULL;
+    block->next = NULL;
+    block->previous = NULL;
+    block->owner = (unsigned)-1;
+    block->isFull = 0;
+    block->objectSize = 0;
+    freeBlockQueue.push((void **)block);
+}
+
+inline static Block* getActiveBlock( Bin* bin )
+{
+    MALLOC_ASSERT( bin, ASSERT_TEXT );
+    return bin->activeBlk;
+}
+
+inline static void setActiveBlock (Bin* bin, Block *block)
+{
+    MALLOC_ASSERT( bin, ASSERT_TEXT );
+    MALLOC_ASSERT(block->owner == getThreadId(), ASSERT_TEXT);
+    // it is the caller responsibility to keep bin consistence (i.e. ensure this block is in the bin list)
+    bin->activeBlk = block;
+}
+
+inline static Block* setPreviousBlockActive( Bin* bin )
+{
+    MALLOC_ASSERT( bin && bin->activeBlk, ASSERT_TEXT );
+    Block* temp = bin->activeBlk->previous;
+    if( temp ) {
+        MALLOC_ASSERT( temp->isFull == 0, ASSERT_TEXT );
+        bin->activeBlk = temp;
+    }
+    return temp;
+}
+
+/********* End thread related code  *************/
+
+/********* The malloc show          *************/
+
+/*
+ * The program wants a large object that we are not prepared to deal with.
+ * so we pass the problem on to the OS. Large Objects are the only objects in
+ * the system that begin on a 16K byte boundary since the blocks used for smaller
+ * objects have the Block structure at each 16K boundary.
+ *
+ */
+
+static unsigned int isLargeObject(void *object); /* Forward Ref */
+
+typedef struct LargeObjectHeaderS {
+    void        *unalignedResult;   /* The base of the memory returned from getMemory, this is what is used to return this to the OS */
+    size_t       unalignedSize;     /* The size that was requested from getMemory */
+    size_t       objectSize;        /* The size originally requested by a client */
+} LargeObjectHeader;
+
+static inline void *mallocLargeObject (size_t size)
+{
+    void *result;
+    void *alignedArea;
+    void *unalignedArea;
+    LargeObjectHeader *header;
+
+    // TODO: can the requestedSize be optimized somehow?
+    size_t requestedSize = size + sizeof(LargeObjectHeader) + blockSize;
+#if USE_MALLOC_FOR_LARGE_OBJECT
+    unalignedArea = malloc(requestedSize);
+#else
+    unalignedArea = getMemory(requestedSize);
+#endif /* USE_MALLOC_FOR_LARGE_OBJECT */
+    if (!unalignedArea) {
+        /* We can't get any more memory from the OS or executive so return 0 */
+        return 0;
+    }
+    alignedArea = (void *)( ((uintptr_t)unalignedArea + blockSize - 1) & ~(blockSize - 1) );
+    header = (LargeObjectHeader *)alignedArea;
+    header->unalignedResult = unalignedArea;
+    header->unalignedSize = requestedSize;
+    header->objectSize = size;
+    result = (void *)((uintptr_t)alignedArea + sizeof(LargeObjectHeader));
+    MALLOC_ASSERT(isLargeObject(result), ASSERT_TEXT);
+    STAT_increment(getThreadId(), ThreadCommonCounters, allocLargeSize);
+    return result;
+}
+
+static inline void freeLargeObject(void *object)
+{
+    LargeObjectHeader *header;
+    STAT_increment(getThreadId(), ThreadCommonCounters, freeLargeSize);
+    header = (LargeObjectHeader *)((uintptr_t)object - sizeof(LargeObjectHeader));
+#if USE_MALLOC_FOR_LARGE_OBJECT
+    free(header->unalignedResult);
+#else
+    returnMemory(header->unalignedResult, header->unalignedSize);
+#endif /* USE_MALLOC_FOR_LARGE_OBJECT */
+}
+
+/* Does this object start on a 16K boundary + the size of a large object header? */
+static inline unsigned int isLargeObject(void *object)
+{
+    return ((uintptr_t)object & (blockSize - 1)) == sizeof(LargeObjectHeader);
+}
+
+static inline unsigned int getLargeObjectSize(void *object)
+{
+    LargeObjectHeader *header;
+    header = (LargeObjectHeader *)((uintptr_t)object & ~(blockSize - 1));
+    return header->objectSize;
+}
+
+//! Value indicating state of package initialization.
+/* 0 = initialization not started.
+   1 = initialization started but not finished.
+   2 = initialization finished.
+   In theory, we only need values 0 and 2.  But value 1 is nonetheless useful for
+   detecting errors in the double-check pattern. */
+static volatile int mallocInitialized;   // implicitly initialized to 0
+static MallocMutex initAndShutMutex;
+
+//! Ensures that initMemoryManager() is called once and only once.
+/** Does not return until initMemoryManager() has been completed by a thread.
+    There is no need to call this routine if mallocInitialized==2 . */
+static void checkInitialization()
+{
+    MallocMutex::scoped_lock lock( initAndShutMutex );
+    if(mallocInitialized!=2) {
+        MALLOC_ASSERT(mallocInitialized==0, ASSERT_TEXT);
+        mallocInitialized = 1;
+        initMemoryManager();
+        MALLOC_ASSERT(mallocInitialized==1, ASSERT_TEXT);
+        mallocInitialized = 2;
+    }
+    MALLOC_ASSERT(mallocInitialized==2, ASSERT_TEXT); /* It can't be 0 or I would have initialized it */
+}
+
+static FreeObject *allocateFromFreeList(Block *mallocBlock)
+{
+    FreeObject *result;
+
+    if (!mallocBlock->freeList) {
+        return NULL;
+    }
+
+    result = mallocBlock->freeList;
+    MALLOC_ASSERT (result, ASSERT_TEXT);
+
+    mallocBlock->freeList = result->next;
+    MALLOC_ASSERT(mallocBlock->allocatedCount < (blockSize-sizeof(Block))/mallocBlock->objectSize, ASSERT_TEXT);
+    mallocBlock->allocatedCount++;
+    STAT_increment(mallocBlock->owner, getIndex(mallocBlock->objectSize), allocFreeListUsed);
+
+    return result;
+}
+
+static FreeObject *allocateFromBumpPtr(Block *mallocBlock)
+{
+    FreeObject *result = mallocBlock->bumpPtr;
+    if (result) {
+        mallocBlock->bumpPtr =
+            (FreeObject *) ((uintptr_t) mallocBlock->bumpPtr - mallocBlock->objectSize);
+        if ( (uintptr_t)mallocBlock->bumpPtr < (uintptr_t)mallocBlock+sizeof(Block) ) {
+            mallocBlock->bumpPtr = NULL;
+        }
+        MALLOC_ASSERT(mallocBlock->allocatedCount < (blockSize-sizeof(Block))/mallocBlock->objectSize, ASSERT_TEXT);
+        mallocBlock->allocatedCount++;
+        STAT_increment(mallocBlock->owner, getIndex(mallocBlock->objectSize), allocBumpPtrUsed);
+    }
+    return result;
+}
+
+inline static FreeObject* allocateFromBlock( Block *mallocBlock )
+{
+    FreeObject *result;
+
+    MALLOC_ASSERT( mallocBlock->owner == getThreadId(), ASSERT_TEXT );
+    /*
+     * use thread local bump pointer allocation.
+     */
+    if ( (result = allocateFromBumpPtr(mallocBlock)) ) { /* avoid initing free list */
+        return result;
+    }
+    MALLOC_ASSERT( !mallocBlock->bumpPtr, ASSERT_TEXT );
+    /*
+     * else use allocation from free lists
+     */
+    if ( (result = allocateFromFreeList(mallocBlock)) ) {
+        return result;
+    }
+    MALLOC_ASSERT( !mallocBlock->freeList, ASSERT_TEXT );
+    /*
+     * else the block is considered full
+     */
+    mallocBlock->isFull = 1;
+    return NULL;
+}
+
+inline void* set_errno_if_NULL(void* arg)
+{
+   if ( arg==NULL )
+       errno = ENOMEM;
+   return arg;
+}
+
+} // namespace Internal
+} // namespace ThreadingSubstrate
+
+using namespace ThreadingSubstrate;
+using namespace ThreadingSubstrate::Internal;
+
+/*
+ * When a thread is shuting down this routine should be called to remove all the thread ids
+ * from the malloc blocks and replace them with a NULL thread id.
+ *
+ */
+static unsigned int threadGoingDownCount = 0;
+/*
+ * for pthreads, the function is set as a callback in pthread_key_create for TLS bin.
+ * it will be automatically called at thread exit with the key value as the argument.
+ *
+ * for Windows, it should be called directly e.g. from DllMain; the argument can be NULL
+ * one should include "TypeDefinitions.h" for the declaration of this function.
+*/
+extern "C" void mallocThreadShutdownNotification(void* arg)
+{
+    Bin   *tls;
+    Block *threadBlock;
+    Block *threadlessBlock;
+    unsigned int index;
+
+    {
+        MallocMutex::scoped_lock lock( ThreadingSubstrate::Internal::initAndShutMutex );
+        if ( ThreadingSubstrate::Internal::mallocInitialized == 0 ) return;
+    }
+
+    TRACEF("Thread id %d blocks return start %d\n", getThreadId(),  threadGoingDownCount++);
+#ifdef USE_WINTHREAD
+    tls = (Bin*)getThreadMallocTLS();
+#else
+    tls = (Bin*)arg;
+#endif
+    if (tls) {
+        for (index = 0; index < numBlockBins; index++) {
+            if (tls[index].activeBlk==NULL)
+                continue;
+            threadlessBlock = tls[index].activeBlk->previous;
+            while (threadlessBlock) {
+                threadBlock = threadlessBlock->previous;
+                if (threadlessBlock->allocatedCount==0 && threadlessBlock->publicFreeList==NULL) {
+                    /* we destroy the thread, no need to keep its TLS bin -> the second param is false */
+                    returnEmptyBlock(threadlessBlock, false);
+                } else {
+                    returnPartialBlock(tls+index, threadlessBlock);
+                }
+                threadlessBlock = threadBlock;
+            }
+            threadlessBlock = tls[index].activeBlk;
+            while (threadlessBlock) {
+                threadBlock = threadlessBlock->next;
+                if (threadlessBlock->allocatedCount==0 && threadlessBlock->publicFreeList==NULL) {
+                    /* we destroy the thread, no need to keep its TLS bin -> the second param is false */
+                    returnEmptyBlock(threadlessBlock, false);
+                } else {
+                    returnPartialBlock(tls+index, threadlessBlock);
+                }
+                threadlessBlock = threadBlock;
+            }
+            tls[index].activeBlk = 0;
+        }
+        // TODO - Free up this tls stuff.....         somehow free the tls structure... then call setThreadMallocTLS(0);
+    }
+
+#ifndef USE_WINTHREAD
+// on Windows,  all statistics will be flushed in mallocProcessShutdownNotification
+#if COLLECT_STATISTICS
+    STAT_print(getThreadId());
+#endif
+#endif
+
+    TRACEF("Thread id %d blocks return end\n", getThreadId());
+}
+
+extern "C" void mallocProcessShutdownNotification(void)
+{
+    // for now, this function is only necessary for dumping statistics
+    // and it should only be called on Windows via DLL_PROCESS_DETACH
+#if COLLECT_STATISTICS
+    ThreadId nThreads = ThreadIdCount;
+    for( int i=1; i<=nThreads && i<MAX_THREADS; ++i )
+        STAT_print(i);
+#endif
+}
+
+/********* The malloc code          *************/
+
+extern "C" void * scalable_malloc(size_t size)
+{
+    Bin* bin;
+    Block * mallocBlock;
+    FreeObject *result;
+
+    if( !size ) size = sizeof(size_t);
+
+    if (mallocInitialized!=2) {
+        /* This returns only after malloc is initialized */
+        checkInitialization();
+    }
+    /*
+     * Use Large Object Allocation
+     */
+    if (size >= minLargeObjectSize) {
+        return set_errno_if_NULL( mallocLargeObject(size) );
+    }
+
+    /*
+     * Get an element in thread-local array corresponding to the given size;
+     * It keeps ptr to the active block for allocations of this size
+     */
+    bin = getAllocationBin(size);
+
+    /* Get the block of you want to try to allocate in. */
+    mallocBlock = getActiveBlock(bin);
+
+    if (mallocBlock) {
+        do {
+            if( (result = allocateFromBlock(mallocBlock)) ) {
+                return result;
+            }
+            // the previous block, if any, should be empty enough
+        } while( (mallocBlock = setPreviousBlockActive(bin)) );
+    }
+    MALLOC_ASSERT( !(bin->activeBlk) || bin->activeBlk->isFull==1, ASSERT_TEXT );
+
+    /*
+     * else privatize publicly freed objects in some block and allocate from it
+     */
+    mallocBlock = getPublicFreeListBlock( bin );
+    if( mallocBlock ) {
+        if( emptyEnoughToUse(mallocBlock) ) {
+            /* move the block to the front of the bin */
+            outofTLSBin(bin, mallocBlock);
+            pushTLSBin(bin, mallocBlock);
+        }
+        MALLOC_ASSERT( mallocBlock->freeList, ASSERT_TEXT );
+        if ( (result = allocateFromFreeList(mallocBlock)) ) {
+            return result;
+        }
+        /* Else something strange happened, need to retry from the beginning; */
+        TRACEF("This isn't correct reasonable local block disappears --- ScalableMalloc\n");
+        return scalable_malloc(size);
+    }
+
+    /*
+     * no suitable own blocks, try to get a partial block that some other thread has discarded.
+     */
+    mallocBlock = getPartialBlock(bin, size);
+    while (mallocBlock) {
+        pushTLSBin(bin, mallocBlock);
+// guaranteed by pushTLSBin: MALLOC_ASSERT( *bin==mallocBlock || (*bin)->previous==mallocBlock, ASSERT_TEXT );
+        setActiveBlock(bin, mallocBlock);
+        if( (result = allocateFromBlock(mallocBlock)) ) {
+            return result;
+        }
+        mallocBlock = getPartialBlock(bin, size);
+    }
+
+    /*
+     * else try to get a new empty block
+     */
+    mallocBlock = getEmptyBlock(size);
+    if (mallocBlock) {
+        pushTLSBin(bin, mallocBlock);
+// guaranteed by pushTLSBin: MALLOC_ASSERT( *bin==mallocBlock || (*bin)->previous==mallocBlock, ASSERT_TEXT );
+        setActiveBlock(bin, mallocBlock);
+        if( (result = allocateFromBlock(mallocBlock)) ) {
+            return result;
+        }
+        /* Else something strange happened, need to retry from the beginning; */
+        TRACEF("This isn't correct reasonable local block disappears --- ScalableMalloc\n");
+        return scalable_malloc(size);
+    }
+    /*
+     * else nothing works so return NULL
+     */
+    TRACEF("NULL Back; \n");
+    errno = ENOMEM;
+    return NULL;
+}
+
+/********* End the malloc code      *************/
+
+/********* The free code            *************/
+
+extern "C" void scalable_free (void *object) {
+    Block *block;
+    ThreadId myTid;
+    FreeObject *objectToFree;
+
+    if (!object) {
+        return;
+    }
+
+    if (isLargeObject(object)) {
+        freeLargeObject(object);
+        return;
+    }
+
+    objectToFree = (FreeObject *)object;
+
+    myTid = getThreadId();
+
+    block = (Block *) ((uintptr_t)object & ~(blockSize - 1));/* mask low bits to get the block */
+    MALLOC_ASSERT (block->allocatedCount, ASSERT_TEXT);
+
+    if (myTid == block->owner) {
+        ((FreeObject *)object)->next = block->freeList;
+        block->freeList = (FreeObject *) object;
+        block->allocatedCount--;
+        MALLOC_ASSERT(block->allocatedCount < (blockSize-sizeof(Block))/block->objectSize, ASSERT_TEXT);
+        Bin* bin = getAllocationBin(block->objectSize);
+#if COLLECT_STATISTICS
+        if (getActiveBlock(bin) != block)
+            STAT_increment(myTid, getIndex(block->objectSize), freeToInactiveBlock);
+        else
+            STAT_increment(myTid, getIndex(block->objectSize), freeToActiveBlock);
+#endif
+        if (block->isFull && emptyEnoughToUse(block)) {
+            /* move the block to the front of the bin */
+            outofTLSBin(bin, block);
+            pushTLSBin(bin, block);
+        } else {
+            if (block->allocatedCount==0 && block->publicFreeList==NULL) {
+                if (block != getActiveBlock(bin) && block != getActiveBlock(bin)->previous ) {
+                    /* We are not actively using this block; return it to the general block pool */
+                    outofTLSBin(bin, block);
+                    returnEmptyBlock(block);
+                } else {
+                    /* all objects are free - let's restore the bump pointer */
+                    restoreBumpPtr(block);
+                }
+            }
+        }
+    } else { /* Slower path to add to multi writer queue, the allocatedCount is updated by the owner thread in malloc. */
+        freePublicObject (block, objectToFree);
+    }
+}
+
+/********* End the free code        *************/
+
+/********* Code for scalable_realloc       ***********/
+
+/*
+ * From K&R
+ * "realloc changes the size of the object pointer to by p to size. The contents will
+ * be unchanged up to the minimum of the old and the new sizes. If the new size is larger,
+ * the new space is uninitialized. realloc returns a pointer to the new space, or
+ * NULL if the request cannot be satisfied, in which case *p is unchanged."
+ *
+ */
+extern "C" void* scalable_realloc(void* ptr, size_t sz)
+{
+    void *result;
+    Block* block;
+    size_t copySize;
+
+    if (ptr==NULL) {
+        return scalable_malloc(sz);
+    }
+
+    if (sz == 0) {
+        scalable_free(ptr);
+        return NULL;
+    }
+    block = (Block *) ((uintptr_t)ptr & ~(blockSize - 1)); /* mask low bits to get the block */
+    if (isLargeObject(ptr)) {
+        LargeObjectHeader* loh = (LargeObjectHeader*)block;
+        copySize = loh->unalignedSize-((uintptr_t)ptr-(uintptr_t)loh->unalignedResult);
+        if (sz < copySize) {
+            loh->objectSize = sz;
+            return ptr;
+        }
+        else {
+           copySize = loh->objectSize;
+           result = scalable_malloc(sz);
+        }
+    } else {
+        copySize = block->objectSize;
+        if (sz < copySize) {
+            return ptr;
+        } else {
+            result = scalable_malloc(sz);
+        }
+    }
+    if (copySize > sz) {
+        copySize = sz;
+    }
+
+    if (result) {
+        memcpy(result, ptr, copySize);
+        scalable_free(ptr);
+    } else {
+        errno = ENOMEM;
+    }
+    return result;
+}
+
+
+/********* End code for scalable_realloc   ***********/
+
+/********* Code for scalable_calloc   ***********/
+
+/*
+ * From K&R
+ * calloc returns a pointer to space for an array of nobj objects, each of size size,
+ * or NULL if the request cannot be satisfied. The sapce is initialized to zero bytes.
+ *
+ */
+
+extern "C" void * scalable_calloc(size_t nobj, size_t size)
+{
+    void *result;
+    size_t arraySize;
+    arraySize = nobj * size;
+    result = scalable_malloc(arraySize);
+    if (result) {
+        memset(result, 0, arraySize);
+    }
+    return result;
+}
+
+/********* End code for scalable_calloc   ***********/
+
diff --git a/src/tbbmalloc/Statistics.h b/src/tbbmalloc/Statistics.h
new file mode 100644
index 0000000..3b29b89
--- /dev/null
+++ b/src/tbbmalloc/Statistics.h
@@ -0,0 +1,113 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#define MAX_THREADS 1024
+#define NUM_OF_BINS 30
+#define ThreadCommonCounters NUM_OF_BINS
+
+enum counter_type {
+    allocBlockNew = 0,
+    allocBlockPublic,
+    allocBumpPtrUsed,
+    allocFreeListUsed,
+    allocPrivatized,
+    examineEmptyEnough,
+    examineNotEmpty,
+    freeRestoreBumpPtr,
+    freeByOtherThread,
+    freeToActiveBlock,
+    freeToInactiveBlock,
+    freeBlockPublic,
+    freeBlockBack,
+    MaxCounters
+};
+enum common_counter_type {
+    allocLargeSize = 0,
+    freeLargeSize,
+    lockPublicFreeList,
+    freeToOtherThread
+};
+
+#if COLLECT_STATISTICS
+
+struct bin_counters {
+    int counter[MaxCounters];
+};
+
+static bin_counters statistic[MAX_THREADS][NUM_OF_BINS+1]; //zero-initialized;
+
+static inline int STAT_increment(int thread, int bin, int ctr)
+{
+    return ++(statistic[thread][bin].counter[ctr]);
+}
+#else
+#define STAT_increment(a,b,c) ((int)0)
+#endif
+
+static inline void STAT_print(int thread)
+{
+#if COLLECT_STATISTICS
+    char filename[100];
+    sprintf(filename, "stat_ScalableMalloc_thr%04d.log", thread);
+    FILE* outfile = fopen(filename, "w");
+    for(int i=0; i<NUM_OF_BINS; ++i)
+    {
+        bin_counters& ctrs = statistic[thread][i];
+        fprintf(outfile, "Thr%04d Bin%02d", thread, i);
+        fprintf(outfile, ": allocNewBlocks %5d", ctrs.counter[allocBlockNew]);
+        fprintf(outfile, ", allocPublicBlocks %5d", ctrs.counter[allocBlockPublic]);
+        fprintf(outfile, ", restoreBumpPtr %5d", ctrs.counter[freeRestoreBumpPtr]);
+        fprintf(outfile, ", privatizeCalled %10d", ctrs.counter[allocPrivatized]);
+        fprintf(outfile, ", emptyEnough %10d", ctrs.counter[examineEmptyEnough]);
+        fprintf(outfile, ", notEmptyEnough %10d", ctrs.counter[examineNotEmpty]);
+        fprintf(outfile, ", freeBlocksPublic %5d", ctrs.counter[freeBlockPublic]);
+        fprintf(outfile, ", freeBlocksBack %5d", ctrs.counter[freeBlockBack]);
+        fprintf(outfile, "\n");
+    }
+    for(int i=0; i<NUM_OF_BINS; ++i)
+    {
+        bin_counters& ctrs = statistic[thread][i];
+        fprintf(outfile, "Thr%04d Bin%02d", thread, i);
+        fprintf(outfile, ": allocBumpPtr %10d", ctrs.counter[allocBumpPtrUsed]);
+        fprintf(outfile, ", allocFreeList %10d", ctrs.counter[allocFreeListUsed]);
+        fprintf(outfile, ", freeToActiveBlk %10d", ctrs.counter[freeToActiveBlock]);
+        fprintf(outfile, ", freeToInactive  %10d", ctrs.counter[freeToInactiveBlock]);
+        fprintf(outfile, ", freedByOther %10d", ctrs.counter[freeByOtherThread]);
+        fprintf(outfile, "\n");
+    }
+    bin_counters& ctrs = statistic[thread][ThreadCommonCounters];
+    fprintf(outfile, "Thr%04d common counters", thread);
+    fprintf(outfile, ": allocLargeObjects %5d", ctrs.counter[allocLargeSize]);
+    fprintf(outfile, ", freeLargeObjects %5d", ctrs.counter[freeLargeSize]);
+    fprintf(outfile, ", lockPublicFreeList %5d", ctrs.counter[lockPublicFreeList]);
+    fprintf(outfile, ", freeToOtherThread %10d", ctrs.counter[freeToOtherThread]);
+    fprintf(outfile, "\n");
+    
+    fclose(outfile);
+#endif
+}
diff --git a/src/tbbmalloc/TypeDefinitions.h b/src/tbbmalloc/TypeDefinitions.h
new file mode 100644
index 0000000..9ac3d8d
--- /dev/null
+++ b/src/tbbmalloc/TypeDefinitions.h
@@ -0,0 +1,68 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifndef _itt_shared_malloc_TypeDefinitions_H_
+#define _itt_shared_malloc_TypeDefinitions_H_
+
+// Define preprocessor symbols used to determine architecture
+#if _WIN32||_WIN64
+#   if defined(_M_AMD64)
+#       define __ARCH_x86_64 1
+#   elif defined(_M_IA64)
+#       define __ARCH_ipf 1
+#   elif defined(_M_IX86)
+#       define __ARCH_x86_32 1
+#   else
+#       error Unknown processor architecture for Windows
+#   endif
+#   define USE_WINTHREAD 1
+#else /* Assume generic Unix */
+#   if __x86_64__
+#       define __ARCH_x86_64 1
+#   elif __ia64__
+#       define __ARCH_ipf 1
+#   elif __i386__
+#       define __ARCH_x86_32 1
+#   else
+#       define __ARCH_unknown 1
+#   endif
+#   define USE_PTHREAD 1
+#endif
+
+// Include files containing declarations of intptr_t and uintptr_t
+#if _WIN32
+#include <stddef.h>
+typedef unsigned __int32 uint32_t;
+#else
+#include <stdint.h>
+#endif
+
+//! PROVIDE YOUR OWN Customize.h IF YOU FEEL NECESSARY
+#include "Customize.h"
+
+#endif /* _itt_shared_malloc_TypeDefinitions_H_ */
diff --git a/src/tbbmalloc/em64t-malloc-mac-export.txt b/src/tbbmalloc/em64t-malloc-mac-export.txt
new file mode 100644
index 0000000..a223b10
--- /dev/null
+++ b/src/tbbmalloc/em64t-malloc-mac-export.txt
@@ -0,0 +1,31 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# MemoryAllocator.cpp
+_scalable_calloc
+_scalable_free
+_scalable_malloc
+_scalable_realloc
diff --git a/src/tbbmalloc/em64t-malloc.def b/src/tbbmalloc/em64t-malloc.def
new file mode 100644
index 0000000..1a42990
--- /dev/null
+++ b/src/tbbmalloc/em64t-malloc.def
@@ -0,0 +1,33 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+EXPORTS
+
+; MemoryAllocator.cpp
+scalable_calloc
+scalable_free
+scalable_malloc
+scalable_realloc
diff --git a/src/tbbmalloc/ia32-malloc-mac-export.txt b/src/tbbmalloc/ia32-malloc-mac-export.txt
new file mode 100644
index 0000000..a223b10
--- /dev/null
+++ b/src/tbbmalloc/ia32-malloc-mac-export.txt
@@ -0,0 +1,31 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# MemoryAllocator.cpp
+_scalable_calloc
+_scalable_free
+_scalable_malloc
+_scalable_realloc
diff --git a/src/tbbmalloc/ia32-malloc.def b/src/tbbmalloc/ia32-malloc.def
new file mode 100644
index 0000000..1a42990
--- /dev/null
+++ b/src/tbbmalloc/ia32-malloc.def
@@ -0,0 +1,33 @@
+; Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+;
+; This file is part of Threading Building Blocks.
+;
+; Threading Building Blocks is free software; you can redistribute it
+; and/or modify it under the terms of the GNU General Public License
+; version 2 as published by the Free Software Foundation.
+;
+; Threading Building Blocks 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.
+;
+; You should have received a copy of the GNU General Public License
+; along with Threading Building Blocks; if not, write to the Free Software
+; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;
+; As a special exception, you may use this file as part of a free software
+; library without restriction.  Specifically, if other files instantiate
+; templates or use macros or inline functions from this file, or you compile
+; this file and link it with other files to produce an executable, this
+; file does not by itself cause the resulting executable to be covered by
+; the GNU General Public License.  This exception does not however
+; invalidate any other reasons why the executable file might be covered by
+; the GNU General Public License.
+
+EXPORTS
+
+; MemoryAllocator.cpp
+scalable_calloc
+scalable_free
+scalable_malloc
+scalable_realloc
diff --git a/src/tbbmalloc/tbbmalloc.cpp b/src/tbbmalloc/tbbmalloc.cpp
new file mode 100644
index 0000000..5287e9d
--- /dev/null
+++ b/src/tbbmalloc/tbbmalloc.cpp
@@ -0,0 +1,48 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+//#define INSTANTIATE_ITT_NOTIFY 1
+//#include "tbb/itt_notify.h"
+#include "Customize.h"
+
+#ifdef _WIN32
+#include <windows.h>
+
+BOOL WINAPI DllMain( HINSTANCE hInst, DWORD callReason, LPVOID )
+{
+    if (callReason==DLL_THREAD_DETACH)
+    {
+        mallocThreadShutdownNotification(NULL);
+    }
+    else if (callReason==DLL_PROCESS_DETACH)
+    {
+        mallocProcessShutdownNotification();
+    }
+    return TRUE;
+}
+#endif //_WIN32
diff --git a/src/tbbmalloc/tbbmalloc.rc b/src/tbbmalloc/tbbmalloc.rc
new file mode 100644
index 0000000..eb4f832
--- /dev/null
+++ b/src/tbbmalloc/tbbmalloc.rc
@@ -0,0 +1,122 @@
+// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Microsoft Visual C++ generated resource script.
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_NEXT_RESOURCE_VALUE        102
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1001
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <winresrc.h>
+#define ENDL "\r\n"
+#include "tbb/tbb_version.h"
+
+#define TBBMALLOC_VERNUMBERS 1, 0, __TBB_VERSION_YMD
+#define TBBMALLOC_VERSION __TBB_STRING(TBBMALLOC_VERNUMBERS)
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION TBBMALLOC_VERNUMBERS
+ PRODUCTVERSION TBB_VERNUMBERS
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "000004b0"
+        BEGIN
+            VALUE "CompanyName", "Intel Corporation\0"
+            VALUE "FileDescription", "Scalable Allocator library\0"
+            VALUE "FileVersion", TBBMALLOC_VERSION "\0"
+//what is it?            VALUE "InternalName", "tbbmalloc\0"
+            VALUE "LegalCopyright", "Copyright (C) 2006\0"
+            VALUE "LegalTrademarks", "\0"
+#ifndef TBB_DO_ASSERT
+            VALUE "OriginalFilename", "tbbmalloc.dll\0"
+#else
+            VALUE "OriginalFilename", "tbbmalloc_debug.dll\0"
+#endif
+            VALUE "ProductName", "Threading Building Blocks\0"
+            VALUE "ProductVersion", TBB_VERSION "\0"
+            VALUE "Comments", TBB_VERSION_STRINGS "\0"
+            VALUE "PrivateBuild", "\0"
+            VALUE "SpecialBuild", "\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0, 1200
+    END
+END
+
+#endif    // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/src/test/Makefile b/src/test/Makefile
new file mode 100644
index 0000000..6d67392
--- /dev/null
+++ b/src/test/Makefile
@@ -0,0 +1,44 @@
+# Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+tbb_root?=../..
+include $(tbb_root)/build/common.inc
+
+all: release debug
+
+release debug: 
+	@-$(MD) "$(work_dir)_$@"
+	$(MAKE) -C "$(work_dir)_$@" -r -f $(tbb_root)/build/Makefile.test cfg=$@
+
+clean: clean_release clean_debug
+
+clean_release:
+	@-$(RM) $(work_dir)_release$(SLASH)*.*
+	@-rmdir "$(work_dir)_release"
+
+clean_debug:
+	@-$(RM) $(work_dir)_debug$(SLASH)*.*
+	@-rmdir "$(work_dir)_debug"
diff --git a/src/test/harness.h b/src/test/harness.h
new file mode 100644
index 0000000..5a89942
--- /dev/null
+++ b/src/test/harness.h
@@ -0,0 +1,226 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Declarations for rock-bottom simple test harness.
+// Just include this file to use it.
+// Every test is presumed to have a command line of the form "foo [-v] [nthread]"
+// The default for nthread is 2.
+
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <new>
+#include "tbb/tbb_stddef.h"
+#include "harness_assert.h"
+
+#if __linux__||__APPLE__
+    #include <pthread.h>
+#elif _WIN32||WIN64
+    #include <windows.h>
+    #include <process.h>
+#else
+    #error unknown OS
+#endif
+
+static void ReportError( int line, const char* expression, const char * message ) {
+    fprintf(stderr,"Line %d, assertion %s: %s\n", line, expression, message ? message : "failed" );
+    abort();
+}
+
+#if !HARNESS_NO_PARSE_COMMAND_LINE
+//! Controls level of commentary.
+/** If true, makes the test print commentary.  If false, test should print "done" and nothing more. */
+static bool Verbose;
+
+//! Minimum number of threads
+/** The default is 0, which is typically interpreted by tests as "run without TBB". */
+static int MinThread = 0;
+
+//! Maximum number of threads
+static int MaxThread = 2;
+
+//! NThread exists for backwards compatibility.  Eventually it will be removed.
+#define NThread (MaxThread==MinThread?MaxThread : (ReportError(__LINE__,"NThread","thread range not supported"),-1))
+
+//! Parse command line of the form "name [-v] [nthread]"
+/** Sets Verbose, MinThread, and MaxThread accordingly.
+    The nthread argument can be a single number or a range of the form m:n.
+    A single number m is interpreted as if written m:m. 
+    The numbers must be non-negative.  
+    Clients often treat the value 0 as "run sequentially." */
+static void ParseCommandLine( int argc, char* argv[] ) {
+    int i = 1;  
+    if( i<argc ) {
+        if( strcmp( argv[i], "-v" )==0 ) {
+            Verbose = true;
+            ++i;
+        }
+    }
+    if( i<argc ) {
+        char* endptr;
+        MinThread = strtol( argv[i], &endptr, 0 );
+        if( *endptr==':' )
+            MaxThread = strtol( endptr+1, &endptr, 0 );
+        else if( *endptr=='\0' ) 
+            MaxThread = MinThread;
+        if( *endptr!='\0' ) {
+            fprintf(stderr,"garbled nthread range\n");
+            exit(1);
+        }    
+        if( MinThread<0 ) {
+            fprintf(stderr,"nthread must be nonnegative\n");
+            exit(1);
+        }
+        if( MaxThread<MinThread ) {
+            fprintf(stderr,"nthread range is backwards\n");
+            exit(1);
+        }
+        ++i;
+    }
+    if( i!=argc ) {
+        fprintf(stderr,"Usage: %s [-v] [nthread|minthread:maxthread]\n", argv[0] );
+        exit(1);
+    }
+}
+#endif /* HARNESS_NO_PARSE_COMMAND_LINE */\
+
+//! For internal use by template function NativeParallelFor
+template<typename Range, typename Body>
+class NativeParalleForTask {
+public:
+    NativeParalleForTask( const Range& range_, const Body& body_ ) :
+        range(range_),
+        body(body_)
+    {}
+
+    //! Start task
+    void start() {
+#if __linux__||__APPLE__
+        int status = pthread_create(&thread_id, NULL, thread_function, this);
+        ASSERT(0==status, "NativeParallelFor: pthread_create failed");
+#else
+        unsigned thread_id;
+        thread_handle = (HANDLE)_beginthreadex( NULL, 0, thread_function, this, 0, &thread_id );
+        ASSERT( thread_handle!=0, "NativeParallelFor: _beginthreadex failed" );
+#endif
+    }
+
+    //! Wait for task to finish
+    void wait_to_finish() {
+#if __linux__||__APPLE__
+        int status = pthread_join( thread_id, NULL );
+        ASSERT( !status, "pthread_join failed" );
+#else
+        DWORD status = WaitForSingleObject( thread_handle, INFINITE );
+        ASSERT( status!=WAIT_FAILED, "WaitForSingleObject failed" );
+        CloseHandle( thread_handle );
+#endif 
+    }
+
+    //! Build (or precompute size of) array of tasks.
+    /** Computes number of of tasks required, plus index. 
+        If array!=NULL, also constructs the necessary tasks, starting at array[index].
+        Top-level caller should let index default to 0. */
+    static size_t build_task_array( const Range& range, const Body& body, NativeParalleForTask* array, size_t index ); 
+private:
+#if __linux__||__APPLE__
+    pthread_t thread_id;
+#else
+    HANDLE thread_handle;
+#endif
+
+    //! Range over which task will invoke the body.
+    const Range range;
+
+    //! Body to invoke over the range.
+    const Body body;
+
+#if __linux__||__APPLE__
+    static void* thread_function(void* object)
+#else
+    static unsigned __stdcall thread_function( void* object )
+#endif
+    {
+        NativeParalleForTask& self = *static_cast<NativeParalleForTask*>(object);
+        (self.body)(self.range);
+        return 0;
+    }
+};
+
+template<typename Range,typename Body>
+size_t NativeParalleForTask<Range,Body>::build_task_array( const Range& range, const Body& body, NativeParalleForTask* array, size_t index ) {
+    if( !range.is_divisible() ) { 
+        if( array ) {
+            new( &array[index] ) NativeParalleForTask(range,body);
+        }
+        return index+1;
+    } else { 
+        Range r1 = range;
+        Range r2(r1,tbb::split());
+        return build_task_array( r2, body, array, build_task_array(r1,body,array,index) );
+    }                
+}
+
+//! NativeParallelFor is like a TBB parallel_for.h, but with each invocation of Body in a separate thread.
+/** By using a blocked_range with a grainsize of 1, you can guarantee 
+    that each iteration is performed by a separate thread */
+template <typename Range, typename Body>
+void NativeParallelFor(const Range& range, const Body& body) {
+    typedef NativeParalleForTask<Range,Body> task;
+
+    if( !range.empty() ) {
+        // Compute how many tasks are needed
+        size_t n = task::build_task_array(range,body,NULL,0);
+
+        // Allocate array to hold the tasks
+        task* array = static_cast<task*>(operator new( n*sizeof(task) ));
+
+        // Construct the tasks
+        size_t m = task::build_task_array(range,body,array,0);
+        ASSERT( m==n, "range splitting not deterministic" );
+
+        // Start the tasks
+        for( size_t j=0; j<n; ++j )
+            array[j].start();
+
+        // Wait for the tasks
+        for( size_t j=n; j>0; --j ) {
+            array[j-1].wait_to_finish();
+            array[j-1].~task();
+        }
+
+        // Deallocate the task array
+        operator delete(array);
+    }
+}
+
+//! The function to zero-initialize arrays; useful to avoid warnings
+template <typename T>
+void zero_fill(void* array, size_t N) {
+    memset(array, 0, sizeof(T)*N);
+}
diff --git a/src/test/harness_allocator.h b/src/test/harness_allocator.h
new file mode 100644
index 0000000..4838401
--- /dev/null
+++ b/src/test/harness_allocator.h
@@ -0,0 +1,196 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Declarations for simple estimate of the memory being used by a program.
+// Not yet implemented for Mac.
+// This header is an optional part of the test harness.
+// It assumes that "harness_assert.h" has already been included.
+
+#if __linux__
+#include <unistd.h>
+#elif __APPLE__
+#include <unistd.h>
+#elif _WIN32
+#include <windows.h>
+#endif
+#include <new>
+#include <tbb/atomic.h>
+
+template <typename base_alloc_t, typename count_t = tbb::atomic<size_t> >
+class static_counting_allocator : public base_alloc_t
+{
+public:
+    typedef typename base_alloc_t::pointer pointer;
+    typedef typename base_alloc_t::const_pointer const_pointer;
+    typedef typename base_alloc_t::reference reference;
+    typedef typename base_alloc_t::const_reference const_reference;
+    typedef typename base_alloc_t::value_type value_type;
+    typedef typename base_alloc_t::size_type size_type;
+    typedef typename base_alloc_t::difference_type difference_type;
+#if defined(_WIN64) && !defined(_CPPLIB_VER)
+    template<typename U, typename C = count_t> struct rebind {
+        typedef static_counting_allocator<base_alloc_t,C> other;
+    };
+#else
+    template<typename U, typename C = count_t> struct rebind {
+        typedef static_counting_allocator<typename base_alloc_t::template rebind<U>::other,C> other;
+    };
+#endif
+
+    static count_t items_allocated;
+    static count_t items_freed;
+    static count_t allocations;
+    static count_t frees;
+    static bool verbose;
+
+    static_counting_allocator() throw() { }
+
+    static_counting_allocator(const static_counting_allocator&) throw() { }
+
+    template<typename U, typename C>
+    static_counting_allocator(const static_counting_allocator<U, C>&) throw() { }
+
+    bool operator==(const static_counting_allocator &a) const
+    { return true; }
+
+    pointer allocate(const size_type n)
+    {
+        if(verbose) printf("\t+%d|", int(n));
+        allocations++;
+        items_allocated += n;
+        return base_alloc_t::allocate(n, pointer(0));
+    }
+
+    pointer allocate(const size_type n, const void * const)
+    {   return allocate(n); }
+
+    void deallocate(const pointer ptr, const size_type n)
+    {
+        if(verbose) printf("\t-%d|", int(n));
+        frees++;
+        items_freed += n;
+        base_alloc_t::deallocate(ptr, n);
+    }
+
+    static void init_counters(bool v = false) {
+        verbose = v;
+        if(verbose) printf("\n------------------------------------------- Allocations:\n");
+        items_allocated = 0;
+        items_freed = 0;
+        allocations = 0;
+        frees = 0;
+    }
+};
+
+template <typename base_alloc_t, typename count_t>
+count_t static_counting_allocator<base_alloc_t, count_t>::items_allocated;
+template <typename base_alloc_t, typename count_t>
+count_t static_counting_allocator<base_alloc_t, count_t>::items_freed;
+template <typename base_alloc_t, typename count_t>
+count_t static_counting_allocator<base_alloc_t, count_t>::allocations;
+template <typename base_alloc_t, typename count_t>
+count_t static_counting_allocator<base_alloc_t, count_t>::frees;
+template <typename base_alloc_t, typename count_t>
+bool static_counting_allocator<base_alloc_t, count_t>::verbose;
+
+template <typename base_alloc_t, typename count_t = tbb::atomic<size_t> >
+class local_counting_allocator : public base_alloc_t
+{
+public:
+    typedef typename base_alloc_t::pointer pointer;
+    typedef typename base_alloc_t::const_pointer const_pointer;
+    typedef typename base_alloc_t::reference reference;
+    typedef typename base_alloc_t::const_reference const_reference;
+    typedef typename base_alloc_t::value_type value_type;
+    typedef typename base_alloc_t::size_type size_type;
+    typedef typename base_alloc_t::difference_type difference_type;
+#if defined(_WIN64) && !defined(_CPPLIB_VER)
+    template<typename U, typename C = count_t> struct rebind {
+        typedef local_counting_allocator<base_alloc_t,C> other;
+    };
+#else
+    template<typename U, typename C = count_t> struct rebind {
+        typedef local_counting_allocator<typename base_alloc_t::template rebind<U>::other,C> other;
+    };
+#endif
+
+    count_t items_allocated;
+    count_t items_freed;
+    count_t allocations;
+    count_t frees;
+
+    local_counting_allocator() throw()
+        : items_allocated(0)
+        , items_freed(0)
+        , allocations(0)
+        , frees(0)
+    { }
+
+    local_counting_allocator(const local_counting_allocator &a) throw()
+        : items_allocated(a.items_allocated)
+        , items_freed(a.items_freed)
+        , allocations(a.allocations)
+        , frees(a.frees)
+    { }
+
+    template<typename U, typename C>
+    local_counting_allocator(const static_counting_allocator<U,C> &) throw() {
+        items_allocated = static_counting_allocator<U,C>::items_allocated;
+        items_freed = static_counting_allocator<U,C>::items_freed;
+        allocations = static_counting_allocator<U,C>::allocations;
+        frees = static_counting_allocator<U,C>::frees;
+    }
+
+    template<typename U, typename C>
+    local_counting_allocator(const local_counting_allocator<U,C>&) throw()
+        : items_allocated(0)
+        , items_freed(0)
+        , allocations(0)
+        , frees(0)
+    { }
+
+    bool operator==(const local_counting_allocator &a) const
+    { return &a == this; }
+
+    pointer allocate(const size_type n)
+    {
+        ++allocations;
+        items_allocated += n;
+        return base_alloc_t::allocate(n, pointer(0));
+    }
+
+    pointer allocate(const size_type n, const void * const)
+    { return allocate(n); }
+
+    void deallocate(const pointer ptr, const size_type n)
+    {
+        ++frees;
+        items_freed += n;
+        base_alloc_t::deallocate(ptr, n);
+    }
+};
diff --git a/src/test/harness_assert.h b/src/test/harness_assert.h
new file mode 100644
index 0000000..54e5c33
--- /dev/null
+++ b/src/test/harness_assert.h
@@ -0,0 +1,45 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Just the assertion portion of the harness.
+// This is useful for writing portions of tests that include
+// the minimal number of necessary header files.
+//
+// The full "harness.h" must be included later.
+
+#ifndef harness_assert_H
+#define harness_assert_H
+
+static void ReportError( int line, const char* expression, const char * message ); 
+#define ASSERT(p,message) ((p)?(void)0:ReportError(__LINE__,#p,message))
+
+//! Compile-time error if x and y have different types
+template<typename T>
+void AssertSameType( const T& /*x*/, const T& /*y*/ ) {}
+
+#endif /* harness_assert_H */
diff --git a/src/test/harness_bad_expr.h b/src/test/harness_bad_expr.h
new file mode 100644
index 0000000..c7567d5
--- /dev/null
+++ b/src/test/harness_bad_expr.h
@@ -0,0 +1,79 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Declarations for checking __TBB_ASSERT checks inside TBB.
+// This header is an optional part of the test harness.
+// It assumes that "harness.h" has already been included.
+
+//! Check that expression x raises assertion failure with message containing given substring.
+/** Assumes that tbb::set_assertion_handler( AssertionFailureHandler ) was called earlier. */
+#define TRY_BAD_EXPR(x,substr)          \
+    {                                   \
+        const char* message = NULL;     \
+        bool okay = false;              \
+        try {                           \
+            x;                          \
+        } catch( AssertionFailure a ) { \
+            okay = true;                \
+            message = a.message;        \
+        }                               \
+        CheckAssertionFailure(__LINE__,#x,okay,message,substr); \
+    }
+
+struct AssertionFailure {
+    const char* const message;
+    AssertionFailure( const char* filename, int line, const char* expression, const char* comment );
+};
+
+AssertionFailure::AssertionFailure( const char* filename, int line, const char* expression, const char* comment ) : 
+    message(comment) 
+{
+    ASSERT(filename,"missing filename");
+    ASSERT(0<line,"line number must be positive");
+    // All of our current files have fewer than 3000 lines.
+    ASSERT(line<3000,"dubiously high line number");
+    ASSERT(expression,"missing expression");
+}
+
+void AssertionFailureHandler( const char* filename, int line, const char* expression, const char* comment ) {
+    throw AssertionFailure(filename,line,expression,comment);
+}
+
+void CheckAssertionFailure( int line, const char* expression, bool okay, const char* message, const char* substr ) {
+    if( !okay ) {
+        fprintf(stderr,"Line %d, %s failed to fail\n", line, expression );
+        abort();
+    } else if( !message ) {
+        fprintf(stderr,"Line %d, %s failed without a message\n", line, expression );
+        abort();
+    } else if( strstr(message,substr)==0 ) {                            
+        fprintf(stderr,"Line %d, %s failed with message '%s' missing substring '%s'\n", __LINE__, expression, message, substr );
+        abort();
+    }
+}
+
diff --git a/src/test/harness_cpu.h b/src/test/harness_cpu.h
new file mode 100644
index 0000000..fdb8d03
--- /dev/null
+++ b/src/test/harness_cpu.h
@@ -0,0 +1,86 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Declarations for simple estimate of CPU time being used by a program.
+// This header is an optional part of the test harness.
+// It assumes that "harness_assert.h" has already been included.
+
+#if _WIN32
+#include <windows.h>
+#else
+#include <sys/time.h>
+#include <sys/resource.h>
+#endif
+
+//! Return time (in seconds) spent by the current process in user mode.
+/*  Returns 0 if not implemented on platform. */
+static double GetCPUUserTime() { 
+#if _WIN32
+    FILETIME times[4];
+    bool status = GetProcessTimes(GetCurrentProcess(), times, times+1, times+2, times+3)!=0;
+    ASSERT( status, NULL );
+    LARGE_INTEGER usrtime;
+    usrtime.LowPart = times[3].dwLowDateTime;
+    usrtime.HighPart = times[3].dwHighDateTime;
+    return double(usrtime.QuadPart)*1E-7;
+#else
+    // Generic UNIX, including __linux__ or __APPLE__
+    struct rusage resources;
+    bool status = getrusage(RUSAGE_SELF, &resources)==0;
+    ASSERT( status, NULL );
+    return (double(resources.ru_utime.tv_sec)*1E6 + double(resources.ru_utime.tv_usec))*1E-6;
+#endif
+}
+
+#include "tbb/tick_count.h"
+#include <cstdio>
+
+// The resolution of GetCPUUserTime is 10-15 ms or so; waittime should be a few times bigger.
+const double WAITTIME = 0.1; // in seconds, i.e. 100 ms
+
+static void TestCPUUserTime( int nworkers ) {
+    static double minimal_waittime = WAITTIME;
+    if( !nworkers ) return;
+
+    // Test that all workers sleep when no work
+    // So far this will not detect the issue on systems with only one processing core
+    double waittime;
+    double usrtime = GetCPUUserTime();
+    tbb::tick_count stamp = tbb::tick_count::now();
+    while( (waittime = (tbb::tick_count::now()-stamp).seconds()) < minimal_waittime )
+        ;  // Wait for workers to sleep
+    usrtime = GetCPUUserTime() - usrtime;
+
+    double avg_worker_usrtime = (usrtime-waittime)/nworkers;
+    if( avg_worker_usrtime > waittime/2 )
+        fprintf(stderr, "ERROR: %d worker threads are spinning; waittime: %g; usrtime: %g; avg worker usrtime: %g\n",
+                        nworkers, waittime, usrtime, avg_worker_usrtime);
+    else if( Verbose )
+        printf("%d worker threads; waittime: %g; usrtime: %g; avg worker usrtime: %g\n",
+                        nworkers, waittime, usrtime, avg_worker_usrtime);
+}
diff --git a/src/test/harness_memory.h b/src/test/harness_memory.h
new file mode 100644
index 0000000..b132cc6
--- /dev/null
+++ b/src/test/harness_memory.h
@@ -0,0 +1,86 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Declarations for simple estimate of the memory being used by a program.
+// Not yet implemented for Mac.
+// This header is an optional part of the test harness.
+// It assumes that "harness_assert.h" has already been included.
+
+#if __linux__
+#include <sys/resource.h>
+#include <unistd.h>
+
+#elif __APPLE__
+#include <unistd.h>
+#include <mach/mach.h>
+#include <mach/shared_memory_server.h>
+#if SHARED_TEXT_REGION_SIZE || SHARED_DATA_REGION_SIZE
+const size_t shared_size = SHARED_TEXT_REGION_SIZE+SHARED_DATA_REGION_SIZE;
+#else
+const size_t shared_size = 0;
+#endif
+
+#elif _WIN32
+#include <windows.h>
+#include <psapi.h>
+#pragma comment(lib, "psapi")
+#endif
+
+//! Return estimate of number of bytes of memory that this program is currently using.
+/* Returns 0 if not implemented on platform. */
+static size_t GetMemoryUsage() { 
+#if __linux__
+    FILE* statsfile = fopen("/proc/self/statm","r");
+    size_t pagesize = getpagesize();
+    ASSERT( statsfile, NULL );
+    long total_mem;
+    fscanf(statsfile,"%lu",&total_mem);
+    fclose(statsfile);
+    return total_mem*pagesize;
+#elif __APPLE__
+    task_t cur_task;
+    kern_return_t status;
+    // port kernel current task object to user space
+    status = task_for_pid(current_task(), getpid(), &cur_task);
+    ASSERT( status==KERN_SUCCESS, NULL);
+    // get task info
+    task_basic_info info;
+    mach_msg_type_number_t msg_type = TASK_BASIC_INFO_COUNT;
+    status = task_info(cur_task, TASK_BASIC_INFO, reinterpret_cast<task_info_t>(&info), &msg_type);
+    ASSERT( status==KERN_SUCCESS, NULL);
+    return info.virtual_size - shared_size;
+#elif _WIN32
+    PROCESS_MEMORY_COUNTERS mem;
+    bool status = GetProcessMemoryInfo(GetCurrentProcess(), &mem, sizeof(mem))!=0;
+    ASSERT( status, NULL );
+    return mem.PagefileUsage;
+#else
+    return 0;
+#endif
+}
+
diff --git a/src/test/test_ScalableAllocator.cpp b/src/test/test_ScalableAllocator.cpp
new file mode 100644
index 0000000..1d0e805
--- /dev/null
+++ b/src/test/test_ScalableAllocator.cpp
@@ -0,0 +1,44 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test whether scalable_allocator complies with the requirements in 20.1.5 of ISO C++ Standard (1998).
+
+#include "tbb/scalable_allocator.h"
+
+//namespace TBB = ThreadingBuildingBlocks;
+
+#define HARNESS_NO_PARSE_COMMAND_LINE 1
+// the real body of the test is there:
+#include "test/test_allocator.h"
+
+int main(void)
+{
+    int result = TestMain<tbb::scalable_allocator<void> >();
+    printf("done\n");
+    return result;
+}
diff --git a/src/test/test_ScalableAllocator_STL.cpp b/src/test/test_ScalableAllocator_STL.cpp
new file mode 100644
index 0000000..d213b5c
--- /dev/null
+++ b/src/test/test_ScalableAllocator_STL.cpp
@@ -0,0 +1,52 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test whether scalable_allocator works with some of the host's STL containers.
+
+#define HARNESS_NO_PARSE_COMMAND_LINE 1
+#include "tbb/scalable_allocator.h"
+#include "test/test_allocator.h"
+
+#include <vector>
+#include <list>
+#include <deque>
+
+int main() {
+    TestContainer<std::vector<int,tbb::scalable_allocator<int> > >();
+#if defined(_WIN64) && !defined(_CPPLIB_VER)
+    // Microsoft incorrectly typed the first argument to std::allocator<T>::deallocate
+    // as (void*), and depends upon this error in their early versions of list and deque.
+    printf("Warning: compatibility of NFS_Allocator with list and deque not tested\n"
+           "because they depend on error that Microsoft corrected later.\n");
+#else
+    TestContainer<std::list<int,tbb::scalable_allocator<int> > >();
+    TestContainer<std::deque<int,tbb::scalable_allocator<int> > >();
+#endif
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_aligned_space.cpp b/src/test/test_aligned_space.cpp
new file mode 100644
index 0000000..89177a4
--- /dev/null
+++ b/src/test/test_aligned_space.cpp
@@ -0,0 +1,85 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+//! Wrapper around T where all members are private.
+/** Used to prove that aligned_space<T,N> never calls member of T. */
+template<typename T>
+class Minimal {
+    Minimal();
+    Minimal( Minimal& min );
+    ~Minimal();
+    void operator=( const Minimal& );
+#if __GNUC__
+    /** If compiling with -Werror, GNU C++ issues an error if all constructors of 
+        a class are private.  Therefore, we add a fake friend. */
+    friend class FakeFriend;
+#endif /* __GNUC__ */
+};
+
+#include "tbb/aligned_space.h"
+#include "harness_assert.h"
+
+template<typename U, size_t N>
+void TestAlignedSpaceN() {
+    typedef Minimal<U> T;
+    tbb::aligned_space< T ,N> space;
+    AssertSameType( static_cast< T *>(0), space.begin() );
+    AssertSameType( static_cast< T *>(0), space.end() );
+    ASSERT( reinterpret_cast<void *>(space.begin())==reinterpret_cast< void *>(&space), NULL );
+    ASSERT( space.end()-space.begin()==N, NULL );
+    ASSERT( reinterpret_cast<void *>(space.begin())>=reinterpret_cast< void *>(&space), NULL );
+    ASSERT( space.end()<=reinterpret_cast< T *>(&space+1), NULL );
+}
+
+template<typename T>
+void TestAlignedSpace() {
+    TestAlignedSpaceN<T,1>();
+    TestAlignedSpaceN<T,2>();
+    TestAlignedSpaceN<T,3>();
+    TestAlignedSpaceN<T,4>();
+    TestAlignedSpaceN<T,5>();
+    TestAlignedSpaceN<T,6>();
+    TestAlignedSpaceN<T,7>();
+    TestAlignedSpaceN<T,8>();
+}
+ 
+#include <stdio.h>
+#define HARNESS_NO_PARSE_COMMAND_LINE 1
+#include "harness.h"
+
+int main() {
+    TestAlignedSpace<char>();
+    TestAlignedSpace<short>();
+    TestAlignedSpace<int>();
+    TestAlignedSpace<float>();
+    TestAlignedSpace<double>();
+    TestAlignedSpace<long double>();
+    TestAlignedSpace<size_t>();
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_allocator.h b/src/test/test_allocator.h
new file mode 100644
index 0000000..4b3062c
--- /dev/null
+++ b/src/test/test_allocator.h
@@ -0,0 +1,221 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Basic testing of an allocator
+// Tests against requirements in 20.1.5 of ISO C++ Standard (1998).
+// Does not check for thread safety or false sharing issues.
+//
+// Tests for compatibility with the host's STL are in 
+// test_Allocator_STL.h.  Those tests are in a separate file
+// because they bring in lots of STL headers, and the tests here
+// are supposed to work in the abscense of STL.
+
+#include "harness.h"
+
+int NumberOfFoo;
+
+template<typename T, size_t N>
+struct Foo {
+    T foo_array[N];
+    Foo() {
+        zero_fill<T>(foo_array, N);
+        ++NumberOfFoo;
+    }
+    Foo( const Foo& x ) {
+        *this = x;
+        ++NumberOfFoo;
+    }
+    ~Foo() {
+        --NumberOfFoo;
+    }
+};
+
+inline char PseudoRandomValue( size_t j, size_t k ) {
+    return char(j*3 ^ j>>4 ^ k);
+}
+
+//! T is type and A is allocator for that type 
+template<typename T, typename A>
+void TestBasic( A& a ) {
+    T x;
+    const T cx = T();
+
+    // See Table 32 in ISO ++ Standard
+    typename A::pointer px = &x;
+    typename A::const_pointer pcx = &cx;
+
+    typename A::reference rx = x;
+    ASSERT( &rx==&x, NULL );
+
+    typename A::const_reference rcx = cx;
+    ASSERT( &rcx==&cx, NULL );
+
+    typename A::value_type v = x;
+
+    typename A::size_type size;
+    size = 0;
+    --size;
+    ASSERT( size>0, "not an unsigned integral type?" );
+
+    typename A::difference_type difference;
+    difference = 0;
+    --difference;
+    ASSERT( difference<0, "not an signed integral type?" );
+
+    // "rebind" tested by our caller 
+
+    ASSERT( a.address(rx)==px, NULL );
+
+    ASSERT( a.address(rcx)==pcx, NULL );
+
+    typename A::pointer array[100];
+    size_t sizeof_T = sizeof(T);
+    for( size_t k=0; k<100; ++k ) {
+        array[k] = k&1 ? a.allocate(k,array[0]) : a.allocate(k);
+        char* s = reinterpret_cast<char*>(reinterpret_cast<void*>(array[k]));
+        for( size_t j=0; j<k*sizeof_T; ++j )
+            s[j] = PseudoRandomValue(j,k);
+    }
+
+    // Test "a.deallocate(p,n)
+    for( size_t k=0; k<100; ++k ) {
+        char* s = reinterpret_cast<char*>(reinterpret_cast<void*>(array[k]));
+        for( size_t j=0; j<k*sizeof_T; ++j )
+            ASSERT( s[j] == PseudoRandomValue(j,k), NULL );
+        a.deallocate(array[k],k);
+    }
+
+    // Test "a.max_size()"
+    AssertSameType( a.max_size(), typename A::size_type(0) );
+    // Following assertion catches case where max_size() is so large that computation of 
+    // number of bytes for such an allocation would overflow size_type.
+    ASSERT( a.max_size()*typename A::size_type(sizeof(T))>=a.max_size(), "max_size larger than reasonable" ); 
+
+    // Test "a1==a2"
+    A a1, a2;
+    ASSERT( a1==a2, NULL );
+
+    // Test "a1!=a2"
+    ASSERT( !(a1!=a2), NULL );
+
+    // Test "a.construct(p,t)"
+    int n = NumberOfFoo;
+    typename A::pointer p = a.allocate(1);
+    a.construct( p, cx );
+    ASSERT( NumberOfFoo==n+1, "constructor for Foo not called?" );
+
+    // Test "a.destroy(p)"
+    a.destroy( p );
+    ASSERT( NumberOfFoo==n, "destructor for Foo not called?" );
+    a.deallocate(p,1);
+}
+
+#include "tbb/blocked_range.h"
+
+// A is an allocator for some type
+template<typename A>
+struct Body {
+    static const size_t max_k = 100000;
+    A &a;
+    Body(A &a_) : a(a_) {}
+    void check_allocate( typename A::pointer array[], size_t i, size_t t ) const
+    {
+        ASSERT(array[i] == 0, NULL);
+        size_t size = i * (i&3);
+        array[i] = i&1 ? a.allocate(size, array[i>>3]) : a.allocate(size);
+        char* s = reinterpret_cast<char*>(reinterpret_cast<void*>(array[i]));
+        for( size_t j=0; j<size*sizeof(A); ++j )
+            s[j] = PseudoRandomValue(i, t);
+    }
+
+    void check_deallocate( typename A::pointer array[], size_t i, size_t t ) const
+    {
+        ASSERT(array[i] != 0, NULL);
+        size_t size = i * (i&3);
+        char* s = reinterpret_cast<char*>(reinterpret_cast<void*>(array[i]));
+        for( size_t j=0; j<size*sizeof(A); ++j )
+            ASSERT( s[j] == PseudoRandomValue(i, t), "Thread safety test failed" );
+        a.deallocate(array[i], size);
+        array[i] = 0;
+    }
+
+    void operator()( const tbb::blocked_range<size_t>& r ) const {
+        ASSERT( r.begin()+1==r.end(), NULL );
+
+        typename A::pointer array[256];
+        size_t thread_id = r.begin();
+
+        for( size_t k=0; k<256; ++k )
+            array[k] = 0;
+        for( size_t k=0; k<max_k; ++k ) {
+            size_t i = static_cast<unsigned char>(PseudoRandomValue(k,thread_id));
+            if(!array[i]) check_allocate(array, i, thread_id);
+            else check_deallocate(array, i, thread_id);
+        }
+        for( size_t k=0; k<256; ++k )
+            if(array[k])
+                check_deallocate(array, k, thread_id);
+    }
+};
+
+// A is an allocator for some type, and U is another type
+template<typename A, typename U>
+void Test() {
+    typename A::template rebind<U>::other b;
+    TestBasic<U>(b);
+
+    A a(b);
+    TestBasic<typename A::value_type>(a);
+
+    // thread safety
+    int n = NumberOfFoo;
+    NativeParallelFor( tbb::blocked_range<size_t>(0,4,1), Body<A>(a) );
+    ASSERT( NumberOfFoo==n, "Allocate/deallocate count mismatched" );
+ 
+    ASSERT( a==b, NULL );
+    ASSERT( !(a!=b), NULL );
+}
+
+template<typename Allocator>
+int TestMain() {
+    Test<typename Allocator::template rebind<Foo<char,1> >::other, Foo<int,17> >();
+    Test<typename Allocator::template rebind<Foo<double,1> >::other, Foo<float,23> >();
+    return 0;
+}
+
+template<typename Container>
+void TestContainer() {
+    Container c;
+    for( int i=0; i<1000; ++i )
+        c.push_back(i*i);    
+    typename Container::const_iterator p = c.begin();
+    for( int i=0; i<1000; ++i ) {
+        ASSERT( *p==i*i, NULL );
+        ++p;
+    }
+}
diff --git a/src/test/test_assembly.cpp b/src/test/test_assembly.cpp
new file mode 100644
index 0000000..8863551
--- /dev/null
+++ b/src/test/test_assembly.cpp
@@ -0,0 +1,300 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Program for basic correctness testing of assembly-language routines.
+// This program deliberately #includes ../internal/task.cpp so that
+// it can get intimate access to the scheduler.
+
+#define TEST_ASSEMBLY_ROUTINES 1
+
+#include "../tbb/task.cpp"
+#include <new>
+#include "harness.h"
+
+namespace tbb {
+
+namespace internal {
+
+class TestTask: public task {
+public:
+    /*override*/ task* execute() {
+        return NULL;
+    }
+    const char* name;
+    TestTask( const char* name_ ) : name(name_) {}
+};
+
+void GenericScheduler::test_assembly_routines() {
+    try_enter_arena();
+#if IMPROVED_GATING
+    mark_pool_full();
+#else
+    ASSERT( open_gate==&arena->prefix().gate, NULL );
+    open_gate->open();
+    open_gate = NULL;
+#endif /*IMPROVED_GATING*/
+    release_task_pool();
+    ASSERT( assert_okay(), NULL );
+    long steal_count = 0;
+    long get_count = 0;
+    const depth_type n = 5;
+    const depth_type array_size_proxy = array_size; // using proxy to reduce compilation warnings
+    ASSERT( array_size-array_size_proxy==0, NULL ); // check validity of the replacement
+    ASSERT( array_size_proxy>=n, NULL );
+    // Loop over insertion levels
+    for( depth_type i=0; i<n; ++i ) 
+        // Loop over values for "deepest"
+        for( depth_type d=-1; d<n; ++d )     
+            // Loop over values for "shallowest"
+            for( depth_type s=0; s<n; ++s ) 
+                // Loop over depth limits
+                for( depth_type limit=0; limit<n; ++limit ) 
+                    // Loop over whether to insert or not
+                    for( int insert=0; insert<2; ++insert ) 
+                        // Loop over whether to steal or get
+                        for( int steal=0; steal<2; ++steal ) {
+                            ASSERT( assert_okay(), NULL );
+                            task** array = dummy_slot.task_pool->array;  
+                            for( depth_type k=0; k<array_size_proxy; ++k )
+                                array[k] = NULL;
+                            dummy_slot.task_pool->prefix().steal_begin = s;
+                            ASSERT( assert_okay(), NULL );
+
+                            TestTask& w = *new( task::allocate_root() ) TestTask("w");
+                            ASSERT( assert_okay(), NULL );
+                            if( d>=0 ) {
+                                w.prefix().depth = int(d);
+                                w.prefix().next = NULL;
+                                w.prefix().state = task::ready;
+                                dummy_slot.task_pool->array[d] = &w;
+                            }
+                            deepest = d;
+                            arena_slot->steal_end = 2*d;
+
+                            ASSERT( assert_okay(), NULL );
+                            TestTask& x = *new( task::allocate_root() ) TestTask("x");
+                            TestTask& y = *new( task::allocate_root() ) TestTask("y");
+                            TestTask& z = *new( task::allocate_root() ) TestTask("z");
+                            ASSERT( assert_okay(), NULL );
+                            x.prefix().next = &y;
+                            y.prefix().next = &z;       
+                            z.prefix().next = NULL;
+                            ASSERT( x.prefix().next==&y, NULL );
+                            for( task* p=&x; p; p=p->prefix().next ) 
+                                p->prefix().depth = int(i);
+                            ASSERT( assert_okay(), NULL );
+                            z.prefix().next = (task*)(void*)-1;
+                            if( insert ) {
+                                spawn( x, z.prefix().next );
+                                ASSERT( assert_okay(), NULL );
+                                depth_type expected_deepest = d>=i ? d : i;
+                                ASSERT( deepest==expected_deepest, NULL );
+                                depth_type expected_shallowest = i<=s ? i : s;
+                                ASSERT( dummy_slot.task_pool->prefix().steal_begin==expected_shallowest, NULL );
+                                ASSERT( array[i]==&x, NULL );
+                                ASSERT( x.prefix().next==&y, NULL );
+                            } 
+                            if( steal ) {
+                                task* expected_task = NULL;
+                                depth_type shallowest = dummy_slot.task_pool->prefix().steal_begin;
+                                depth_type expected_shallowest = shallowest;
+                                for( depth_type k=shallowest; k<array_size_proxy; ++k ) {
+                                    if( k>=limit && array[k] ) {
+                                        expected_task = array[k];
+                                        if( shallowest>=limit )
+                                            expected_shallowest = k;
+                                        break;
+                                    }
+                                }
+                                ASSERT( assert_okay(), NULL );
+                                task* t = steal_task( *arena_slot, limit );
+                                ASSERT( (arena_slot->steal_end&1)==0, "forgot to release lock?" );
+                                ASSERT( assert_okay(), NULL );
+                                ASSERT( t==expected_task, NULL );       
+                                shallowest = dummy_slot.task_pool->prefix().steal_begin;
+                                ASSERT( shallowest==expected_shallowest, NULL );        
+                                ++steal_count;
+                            } else {
+                                task* expected_task = NULL;
+                                for( depth_type k=array_size_proxy-1; k>=limit; --k ) {
+                                    if( array[k] ) {
+                                        expected_task = array[k];
+                                        ASSERT( deepest==k, NULL ); 
+                                        break;
+                                    }
+                                }
+                                ASSERT( assert_okay(), NULL );
+                                task* t = get_task( limit );
+                                ASSERT( (arena_slot->steal_end&1)==0, "forgot to release lock?" );
+                                ASSERT( assert_okay(), NULL );
+                                ASSERT( t==expected_task, NULL );       
+                                ++get_count;
+                            }
+                        }
+    ASSERT( array_size-array_size_proxy==0, NULL ); // check for any side effects affecting array_size
+    if( Verbose )
+        printf("%ld successful gets and %ld successful steals\n", get_count, steal_count );
+}
+
+//! Test __TBB_CompareExchange
+static void TestCompareExchange() {
+    ASSERT( intptr(-10)<10, "intptr not a signed integral type?" ); 
+    if( Verbose ) 
+        printf("testing __TBB_CompareExchange\n");
+    for( intptr a=-10; a<10; ++a )
+        for( intptr b=-10; b<10; ++b )
+            for( intptr c=-10; c<10; ++c ) {
+                intptr x = a;
+                intptr y = __TBB_CompareAndSwapW(&x,b,c);
+                ASSERT( y==a, NULL ); 
+                if( a==c ) 
+                    ASSERT( x==b, NULL );
+                else
+                    ASSERT( x==a, NULL );
+            }
+}
+
+//! Test __TBB___TBB_FetchAndIncrement and __TBB___TBB_FetchAndDecrement
+static void TestAtomicCounter() {
+    // "canary" is a value used to detect illegal overwrites.
+    const internal::reference_count canary = ~(internal::uintptr)0/3;
+    if( Verbose ) 
+        printf("testing __TBB_FetchAndIncrement\n");
+    struct {
+        internal::reference_count prefix, i, suffix;
+    } x;
+    x.prefix = canary;
+    x.i = 0;
+    x.suffix = canary;
+    for( int k=0; k<10; ++k ) {
+        internal::reference_count j = __TBB_FetchAndIncrementWacquire((volatile void *)&x.i);
+        ASSERT( x.prefix==canary, NULL );
+        ASSERT( x.suffix==canary, NULL );
+        ASSERT( x.i==k+1, NULL );
+        ASSERT( j==k, NULL );
+    }
+    if( Verbose ) 
+        printf("testing __TBB_FetchAndDecrement\n");
+    x.i = 10;
+    for( int k=10; k>0; --k ) {
+        internal::reference_count j = __TBB_FetchAndDecrementWrelease((volatile void *)&x.i);
+        ASSERT( j==k, NULL );
+        ASSERT( x.i==k-1, NULL );
+        ASSERT( x.prefix==canary, NULL );
+        ASSERT( x.suffix==canary, NULL );
+    }
+}
+
+//! Test __TBB_AtomicOR instruction.
+void TestAtomicOr() {
+    uintptr x[3] = {0,0,0};
+    uintptr y = 0; 
+    uintptr z = 0;
+    for( int i=0; i<20; ++i ) {
+        y |= z;
+        __TBB_AtomicOR( &x[1], z );
+        ASSERT( x[0]==0, "__TBB_AtomicOR corrupted nearby bytes" ); 
+        ASSERT( x[1]==y, "__TBB_AtomicOR did not do OR?" );
+        ASSERT( x[2]==0, "__TBB_AtomicOR corrupted nearby bytes" ); 
+        z = i==0 ? 1 : z*(i+1);
+    }
+}
+
+static void TestTinyLock() {
+    if( Verbose ) 
+        printf("testing __TBB_LockByte\n");
+    unsigned char flags[16];
+    for( int i=0; i<16; ++i )
+        flags[i] = i;
+    flags[8] = 0;
+    __TBB_LockByte(flags[8]);
+    for( int i=0; i<16; ++i )
+        ASSERT( flags[i]==(i==8?1:i), NULL );
+}
+
+static void TestLog2() {
+    if( Verbose ) 
+        printf("testing __TBB_Log2\n");
+    for( uintptr_t i=1; i; i<<=1 ) {
+        for( uintptr_t j=1; j<1<<16; ++j ) {
+            if( uintptr_t k = i*j ) {
+                uintptr_t actual = __TBB_Log2(k);
+                const uintptr_t ONE = 1; // warning suppression again
+                ASSERT( k >= ONE<<actual, NULL );          
+                ASSERT( k>>1 < ONE<<actual, NULL );        
+            }
+        }
+    }
+}
+
+static void TestPause() {
+    if( Verbose ) 
+        printf("testing __TBB_Pause\n");
+    __TBB_Pause(1);
+}
+
+static void TestIsGenuineIntel() {
+    if( !IsGenuineIntel() )
+        printf("Warning: not running on genuine Intel hardware\n");
+}
+
+} // namespace internal 
+} // namespace tbb
+
+using namespace tbb;
+
+int main( int argc, char* argv[] ) {
+#if _WIN32||_WIN64
+    // This initialization is normally done by DllMain in task.cpp,
+    // but because this test directly includes task.cpp,
+    // the initialization must be done explicitly.
+    InitializeCriticalSection(&OneTimeInitializationCriticalSection);
+#endif /* _WIN32||_WIN64 */
+    try {
+        ParseCommandLine( argc, argv );
+        TestIsGenuineIntel();
+        TestLog2();
+        TestTinyLock();
+        TestCompareExchange();
+        TestAtomicCounter();
+        TestAtomicOr();
+        TestPause();
+
+        task_scheduler_init init(1); 
+
+        if( Verbose ) 
+            printf("testing __TBB_(scheduler assists)\n");
+        GenericScheduler* scheduler = GetThreadSpecific();
+        scheduler->test_assembly_routines();
+
+    } catch(...) {
+        ASSERT(0,"unexpected exception");
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_atomic.cpp b/src/test/test_atomic.cpp
new file mode 100644
index 0000000..9c8163e
--- /dev/null
+++ b/src/test/test_atomic.cpp
@@ -0,0 +1,443 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Put tbb/atomic.h first, so if it is missing a prerequisite header, we find out about it.
+// The tests here do *not* test for atomicity, just serial correctness. */
+
+#include "tbb/atomic.h"
+#include "harness_assert.h"
+
+//! Structure that holds an atomic<T> and some guard bytes around it.
+template<typename T>
+struct TestStruct {
+    T prefix;
+    tbb::atomic<T> counter;
+    T suffix;
+    TestStruct( T i ) : prefix(T(0x1234)), suffix(T(0x5678)) {
+        counter = i;
+        ASSERT( sizeof(*this)==3*sizeof(T), NULL );
+    }
+    ~TestStruct() {
+        // Check for writes outside the counter.
+        ASSERT( prefix==T(0x1234), NULL );
+        ASSERT( suffix==T(0x5678), NULL );
+    }
+};
+
+//! Test compare_and_swap template members of class atomic<T> for memory_semantics=M
+template<typename T,tbb::memory_semantics M>
+void TestCompareAndSwapAcquireRelease( T i, T j, T k ) {
+    ASSERT( i!=j && j!=k, "values must be distinct" ); 
+    TestStruct<T> x(i);
+    T old = x.counter.template compare_and_swap<M>( j, k );
+    ASSERT( old==i, NULL );
+    ASSERT( x.counter==i, "old value not retained" );
+    old = x.counter.template compare_and_swap<M>( j, i );
+    ASSERT( old==i, NULL );
+    ASSERT( x.counter==j, "value not updated?" );
+}
+
+//! i, j, k must be different values
+template<typename T>
+void TestCompareAndSwap( T i, T j, T k ) {
+    ASSERT( i!=j && j!=k, "values must be distinct" ); 
+    TestStruct<T> x(i);
+    T old = x.counter.compare_and_swap( j, k );
+    ASSERT( old==i, NULL );
+    ASSERT( x.counter==i, "old value not retained" );
+    old = x.counter.compare_and_swap( j, i );
+    ASSERT( old==i, NULL );
+    if( x.counter==i ) {
+        ASSERT( x.counter==j, "value not updated?" );
+    } else {    
+        ASSERT( x.counter==j, "value trashed" );
+    }
+    TestCompareAndSwapAcquireRelease<T,tbb::acquire>(i,j,k);
+    TestCompareAndSwapAcquireRelease<T,tbb::release>(i,j,k);
+}
+
+//! memory_semantics variation on TestFetchAndStore
+template<typename T, tbb::memory_semantics M>
+void TestFetchAndStoreAcquireRelease( T i, T j ) {
+    ASSERT( i!=j, "values must be distinct" ); 
+    TestStruct<T> x(i);
+    T old = x.counter.template fetch_and_store<M>( j );
+    ASSERT( old==i, NULL );
+    ASSERT( x.counter==j, NULL );
+}
+
+//! i and j must be different values
+template<typename T>
+void TestFetchAndStore( T i, T j ) {
+    ASSERT( i!=j, "values must be distinct" ); 
+    TestStruct<T> x(i);
+    T old = x.counter.fetch_and_store( j );
+    ASSERT( old==i, NULL );
+    ASSERT( x.counter==j, NULL );
+    TestFetchAndStoreAcquireRelease<T,tbb::acquire>(i,j);
+    TestFetchAndStoreAcquireRelease<T,tbb::release>(i,j);
+}
+
+//! Test fetch_and_add members of class atomic<T> for memory_semantics=M
+template<typename T,tbb::memory_semantics M>
+void TestFetchAndAddAcquireRelease( T i ) {
+    TestStruct<T> x(i);
+    T actual;
+    T expected = i;
+
+    // Test fetch_and_add member template
+    for( int j=0; j<10; ++j ) {
+        actual = x.counter.fetch_and_add(j);
+        ASSERT( actual==expected, NULL );
+        expected += j;
+    }
+    for( int j=0; j<10; ++j ) {
+        actual = x.counter.fetch_and_add(-j);
+        ASSERT( actual==expected, NULL );
+        expected -= j;
+    }
+
+    // Test fetch_and_increment member template
+    ASSERT( x.counter==i, NULL );
+    actual = x.counter.template fetch_and_increment<M>();
+    ASSERT( actual==i, NULL );
+    ASSERT( x.counter==T(i+1), NULL );
+
+    // Test fetch_and_decrement member template
+    actual = x.counter.template fetch_and_decrement<M>();
+    ASSERT( actual==T(i+1), NULL );
+    ASSERT( x.counter==i, NULL );
+}
+
+//! Test fetch_and_add and related operators
+template<typename T>
+void TestFetchAndAdd( T i ) {
+    TestStruct<T> x(i);
+    T value;
+    value = ++x.counter;
+    ASSERT( value==T(i+1), NULL );
+    value = x.counter++;
+    ASSERT( value==T(i+1), NULL );
+    value = x.counter--;
+    ASSERT( value==T(i+2), NULL );
+    value = --x.counter;
+    ASSERT( value==i, NULL );
+    T actual;
+    T expected = i;
+    for( int j=-100; j<=100; ++j ) {
+        expected += j;
+        actual = x.counter += j;
+        ASSERT( actual==expected, NULL );
+    }
+    for( int j=-100; j<=100; ++j ) {
+        expected -= j;
+        actual = x.counter -= j;
+        ASSERT( actual==expected, NULL );
+    }
+    // Test fetch_and_increment
+    ASSERT( x.counter==i, NULL );
+    actual = x.counter.fetch_and_increment();
+    ASSERT( actual==i, NULL );
+    ASSERT( x.counter==T(i+1), NULL );
+
+    // Test fetch_and_decrement
+    actual = x.counter.fetch_and_decrement();
+    ASSERT( actual==T(i+1), NULL );
+    ASSERT( x.counter==i, NULL );
+    x.counter = i;
+    ASSERT( x.counter==i, NULL );
+
+    TestFetchAndAddAcquireRelease<T,tbb::acquire>(i);
+    TestFetchAndAddAcquireRelease<T,tbb::release>(i);
+}
+
+void TestFetchAndAdd( void* ) {
+    // There are no fetch-and-add operations on a void*.
+}
+
+template<typename T>
+void TestConst( T i ) { 
+    // Try const 
+    const TestStruct<T> x(i);
+    ASSERT( reinterpret_cast<const T&>(x.counter)==i, "write to atomic<T> broken?" );
+    ASSERT( x.counter==i, "read of atomic<T> broken?" );
+}
+
+template<typename T>
+void TestOperations( T i, T j, T k ) {
+    TestConst(i);
+    TestCompareAndSwap(i,j,k);
+    TestFetchAndStore(i,j);
+    TestFetchAndAdd(i);
+}
+
+template<typename T>
+void TestLoadAndStoreFences( const char* name );
+
+bool MemoryFenceError;
+
+template<typename T>
+struct AlignmentChecker {
+    char c;
+    tbb::atomic<T> i;
+};
+
+#include "harness.h"
+
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning( push )
+// unary minus operator applied to unsigned type, result still unsigned
+#pragma warning( disable: 4146 )
+#endif /* _MSC_VER && !defined(__INTEL_COMPILER) */
+
+/** T is an integral type. */
+template<typename T>
+void TestAtomicInteger( const char* name ) {
+    if( Verbose )
+        printf("testing atomic<%s>\n",name);
+#if __linux__ && __TBB_x86_32 && __GNUC__==3 && __GNUC_MINOR__==3
+    // gcc 3.3 has known problem for 32-bit Linux, so only warn if there is a problem.
+    if( sizeof(T)==8 ) {
+        if( sizeof(AlignmentChecker<T>)!=2*sizeof(tbb::atomic<T>) ) {
+            printf("Warning: alignment for atomic<%s> is wrong (known issue with gcc 3.3 for IA32)\n",name);
+        }
+    } else
+#endif /* __linux__ && __GNUC__ */
+    ASSERT( sizeof(AlignmentChecker<T>)==2*sizeof(tbb::atomic<T>), NULL );
+    TestOperations<T>(0L,T(-T(1)),T(1));
+    for( int k=0; k<int(sizeof(long))*8-1; ++k ) {
+        TestOperations<T>(T(1L<<k),T(~(1L<<k)),T(1-(1L<<k)));
+        TestOperations<T>(T(-1L<<k),T(~(-1L<<k)),T(1-(-1L<<k)));
+    }
+    TestLoadAndStoreFences<T>( name );
+}
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+#pragma warning( pop )
+#endif /* _MSC_VER && !defined(__INTEL_COMPILER) */
+
+
+template<typename T>
+struct Foo {
+    T x, y, z;
+};
+
+
+template<typename T>
+void TestIndirection() {
+    Foo<T> item;
+    tbb::atomic<Foo<T>*> pointer;
+    pointer = &item;
+    for( int k=-10; k<=10; ++k ) {
+        // Test various syntaxes for indirection to fields with non-zero offset.   
+        T value1, value2;
+        for( size_t j=0; j<sizeof(T); ++j ) {
+            *(char*)&value1 = char(k^j);
+            *(char*)&value2 = char(k^j*j);
+        }
+        pointer->y = value1;
+        (*pointer).z = value2;
+        T result1 = (*pointer).y;
+        T result2 = pointer->z;
+        ASSERT( memcmp(&value1,&result1,sizeof(T))==0, NULL );
+        ASSERT( memcmp(&value2,&result2,sizeof(T))==0, NULL );
+    }
+}
+
+template<typename T>
+void TestAtomicPointer() {
+    T array[1000];
+    TestOperations<T*>(&array[500],&array[250],&array[750]);
+    TestOperations<void*>(&array[500],&array[250],&array[750]);
+    TestIndirection<T>();
+    TestLoadAndStoreFences<T*>( "pointer" );
+}
+
+// Specialization for void*
+template<>
+void TestAtomicPointer<void*>() {
+    void* array[1000];
+    TestOperations<void*>(&array[500],&array[250],&array[750]);
+    TestLoadAndStoreFences<void*>( "pointer" );
+}
+
+template<unsigned N>
+class ArrayElement {
+    char item[N];
+};
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine( argc, argv );
+#if defined(__INTEL_COMPILER)||!defined(_MSC_VER)||_MSC_VER>=1400
+    TestAtomicInteger<unsigned long long>("unsigned long long");
+    TestAtomicInteger<long long>("long long");
+#else
+    printf("Warning: atomic<64-bits> not tested because of known problem in Microsoft compiler\n");
+#endif /*defined(__INTEL_COMPILER)||!defined(_MSC_VER)||_MSC_VER>=1400 */
+    TestAtomicInteger<unsigned long>("unsigned long");
+    TestAtomicInteger<long>("long");
+    TestAtomicInteger<unsigned int>("unsigned int");
+    TestAtomicInteger<int>("int");
+    TestAtomicInteger<unsigned short>("unsigned short");
+    TestAtomicInteger<short>("short");
+    TestAtomicInteger<signed char>("signed char");
+    TestAtomicInteger<unsigned char>("unsigned char");
+    TestAtomicInteger<char>("char");
+    TestAtomicInteger<wchar_t>("wchar_t");
+    TestAtomicInteger<size_t>("size_t");
+    TestAtomicInteger<ptrdiff_t>("ptrdiff_t");
+    TestAtomicPointer<ArrayElement<1> >();
+    TestAtomicPointer<ArrayElement<2> >();
+    TestAtomicPointer<ArrayElement<3> >();
+    TestAtomicPointer<ArrayElement<4> >();
+    TestAtomicPointer<ArrayElement<5> >();
+    TestAtomicPointer<ArrayElement<6> >();
+    TestAtomicPointer<ArrayElement<7> >();
+    TestAtomicPointer<ArrayElement<8> >();
+    TestAtomicPointer<void*>();
+    ASSERT( !MemoryFenceError, NULL );
+    printf("done\n");
+    return 0;
+}
+
+// Portions dependent on blocked_range.h are down here, so that preceding tests do not
+// accidentally depend upon it.
+
+#include "tbb/blocked_range.h"
+
+template<typename T>
+struct FlagAndMessage {
+    //! 0 if message not set yet, 1 if message is set.
+    tbb::atomic<T> flag;
+    /** Force flag and message to be on distinct cache lines for machines with cache line size <= 4096 bytes */
+    char pad[4096/sizeof(T)];
+    //! Non-zero if message is ready
+    T message;    
+};
+
+// A special template function used for summation.
+// Actually it is only necessary because of its specialization for void*
+template<typename T>
+T special_sum(intptr_t arg1, intptr_t arg2) {
+    return (T)((T)arg1 + arg2);
+}
+
+// The specialization for void* is required
+// because pointer arithmetic (+) is impossible with void*
+template<>
+void* special_sum<void*>(intptr_t arg1, intptr_t arg2) {
+    return (void*)(arg1 + arg2);
+}
+
+volatile int One = 1;
+ 
+template<typename T>
+class HammerLoadAndStoreFence {
+    FlagAndMessage<T>* fam;
+    const int n;
+    const int p;
+    const int trial;
+    const char* name;
+    mutable T accum;
+public:
+    HammerLoadAndStoreFence( FlagAndMessage<T>* fam_, int n_, int p_, const char* name_, int trial_ ) : fam(fam_), n(n_), p(p_), trial(trial_), name(name_) {}
+    void operator()( const tbb::blocked_range<int>& range ) const {
+        int one = One;
+        int k = range.begin();
+        FlagAndMessage<T>* s = fam+k;
+        FlagAndMessage<T>* s_next = fam + (k+1)%p;
+        for( int i=0; i<n; ++i ) {
+            // The inner for loop is a spin-wait loop, which is normally considered very bad style. 
+            // But we must use it here because we are interested in examining subtle hardware effects.
+            for(unsigned short cnt=1; ; ++cnt) {
+                if( !cnt ) // to help 1-core systems complete the test, yield every 2^16 iterations
+                    __TBB_Yield();
+                // Compilers typically generate non-trivial sequence for division by a constant.
+                // The expression here is dependent on the loop index i, so it cannot be hoisted.
+#define COMPLICATED_ZERO (i*(one-1)/100)
+                // Read flag and then the message
+                T flag, message;
+                if( trial&1 ) { 
+                    // COMPLICATED_ZERO here tempts compiler to hoist load of message above reading of flag.
+                    flag = (s+COMPLICATED_ZERO)->flag;
+                    message = s->message;
+                } else {
+                    flag = s->flag;
+                    message = s->message;
+                }
+                if( flag ) {
+                    if( flag!=(T)-1 ) {
+                        printf("ERROR: flag!=(T)-1 k=%d i=%d trial=%x type=%s (atomicity problem?)\n", k, i, trial, name );
+                        MemoryFenceError = true;
+                    } 
+                    if( message!=(T)-1 ) {
+                        printf("ERROR: message!=(T)-1 k=%d i=%d trial=%x type=%s (memory fence problem?)\n", k, i, trial, name );
+                        MemoryFenceError = true;
+                    }
+                    s->message = 0; 
+                    s->flag = 0;
+                    // Set message and then the flag
+                    if( trial&2 ) {
+                        // COMPLICATED_ZERO here tempts compiler to sink store below setting of flag
+                        s_next->message = special_sum<T>(-1, COMPLICATED_ZERO);
+                        s_next->flag = (T)-1;
+                    } else {
+                        s_next->message = (T)-1;
+                        s_next->flag = (T)-1;
+                    }
+                    break;
+                } else {
+                    // Force compiler to use message anyway, so it cannot sink read of s->message below the if.
+                    accum = message;
+                }
+            }
+        }
+    }
+};
+
+//! Test that atomic<T> has acquire semantics for loads and release semantics for stores.
+/** Test performs round-robin passing of message among p processors, 
+    where p goes from MinThread to MaxThread. */
+template<typename T>
+void TestLoadAndStoreFences( const char* name ) {
+    for( int p=MinThread<2 ? 2 : MinThread; p<=MaxThread; ++p ) {
+        FlagAndMessage<T>* fam = new FlagAndMessage<T>[p];
+        // Each of four trials excercise slightly different expresion pattern within the test.
+        // See occurrences of COMPLICATED_ZERO for details. 
+        for( int trial=0; trial<4; ++trial ) {
+            memset( fam, 0, p*sizeof(FlagAndMessage<T>) );
+            fam->message = (T)-1;
+            fam->flag = (T)-1;
+            NativeParallelFor( tbb::blocked_range<int>(0,p,1), HammerLoadAndStoreFence<T>( fam, 100, p, name, trial ) );
+            for( int k=0; k<p; ++k ) {
+                ASSERT( fam[k].message==(k==0 ? (T)-1 : 0), "incomplete round-robin?" ); 
+                ASSERT( fam[k].flag==(k==0 ? (T)-1 : 0), "incomplete round-robin?" ); 
+            }
+        }
+        delete[] fam;
+    }
+}
diff --git a/src/test/test_blocked_range.cpp b/src/test/test_blocked_range.cpp
new file mode 100644
index 0000000..29b668e
--- /dev/null
+++ b/src/test/test_blocked_range.cpp
@@ -0,0 +1,130 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/blocked_range.h"
+#include "harness_assert.h"
+
+// First test as much as we can without including other headers.
+// Doing so should catch problems arising from failing to include headers.
+
+class AbstractValueType {
+    AbstractValueType() {}
+    int value;
+public: 
+    friend AbstractValueType MakeAbstractValueType( int i );
+    friend int GetValueOf( const AbstractValueType& v ) {return v.value;}
+};
+
+AbstractValueType MakeAbstractValueType( int i ) {
+    AbstractValueType x;
+    x.value = i;
+    return x;
+}
+
+size_t operator-( const AbstractValueType& u, const AbstractValueType& v ) {
+    return GetValueOf(u)-GetValueOf(v);
+}
+
+bool operator<( const AbstractValueType& u, const AbstractValueType& v ) {
+    return GetValueOf(u)<GetValueOf(v);
+}
+
+AbstractValueType operator+( const AbstractValueType& u, size_t offset ) {
+    return MakeAbstractValueType(GetValueOf(u)+int(offset));
+}
+
+static void SerialTest() {
+    for( int x=-10; x<10; ++x )
+        for( int y=-10; y<10; ++y ) {
+            AbstractValueType i = MakeAbstractValueType(x);
+            AbstractValueType j = MakeAbstractValueType(y);
+            for( size_t k=1; k<10; ++k ) {
+                typedef tbb::blocked_range<AbstractValueType> range_type;
+                range_type r( i, j, k );
+                AssertSameType( r.empty(), true );
+                AssertSameType( range_type::size_type(), size_t() );
+                AssertSameType( static_cast<range_type::const_iterator*>(0), static_cast<AbstractValueType*>(0) );
+                AssertSameType( r.begin(), MakeAbstractValueType(0) );
+                AssertSameType( r.end(), MakeAbstractValueType(0) );
+                ASSERT( r.empty()==(y<=x), NULL );
+                ASSERT( r.grainsize()==k, NULL );
+                if( x<=y ) {
+                    AssertSameType( r.is_divisible(), true );
+                    ASSERT( r.is_divisible()==(size_t(y-x)>k), NULL );
+                    ASSERT( r.size()==size_t(y-x), NULL );
+                    if( r.is_divisible() ) {
+                        tbb::blocked_range<AbstractValueType> r2(r,tbb::split());
+                        ASSERT( GetValueOf(r.begin())==x, NULL );
+                        ASSERT( GetValueOf(r.end())==GetValueOf(r2.begin()), NULL );
+                        ASSERT( GetValueOf(r2.end())==y, NULL );
+                        ASSERT( r.grainsize()==k, NULL );
+                        ASSERT( r2.grainsize()==k, NULL );
+                    }
+                }
+            }
+        }
+}
+
+#include "harness.h"
+#include "tbb/parallel_for.h"
+
+const int N = 1<<22;
+
+unsigned char Array[N];
+
+struct Striker {
+    // Note: we use <int> here instead of <long> in order to test for Quad 407676
+    void operator()( const tbb::blocked_range<int>& r ) const {
+        for( tbb::blocked_range<int>::const_iterator i=r.begin(); i!=r.end(); ++i )
+            ++Array[i];
+    }
+};
+
+void ParallelTest() {
+    for( int i=0; i<N; i=i<3 ? i+1 : i*3 ) {
+        const tbb::blocked_range<int> r( 0, i, 10 );
+        tbb::parallel_for( r, Striker() );
+        for( int k=0; k<N; ++k ) {
+            ASSERT( Array[k]==(k<i), NULL );
+            Array[k] = 0;
+        }
+    }
+}
+
+#include "tbb/task_scheduler_init.h"
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine(argc,argv);
+    SerialTest();
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        tbb::task_scheduler_init init(p);
+        ParallelTest();
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_blocked_range2d.cpp b/src/test/test_blocked_range2d.cpp
new file mode 100644
index 0000000..22eca97
--- /dev/null
+++ b/src/test/test_blocked_range2d.cpp
@@ -0,0 +1,154 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/blocked_range2d.h"
+#include "harness_assert.h"
+
+// First test as much as we can without including other headers.
+// Doing so should catch problems arising from failing to include headers.
+
+template<typename Tag>
+class AbstractValueType {
+    AbstractValueType() {}
+    int value;
+public: 
+    template<typename OtherTag>
+    friend AbstractValueType<OtherTag> MakeAbstractValueType( int i );
+
+    friend int GetValueOf( const AbstractValueType& v ) {return v.value;}
+};
+
+template<typename Tag>
+AbstractValueType<Tag> MakeAbstractValueType( int i ) {
+    AbstractValueType<Tag> x;
+    x.value = i;
+    return x;
+}
+
+template<typename Tag>
+bool operator<( const AbstractValueType<Tag>& u, const AbstractValueType<Tag>& v ) {
+    return GetValueOf(u)<GetValueOf(v);
+}
+
+template<typename Tag>
+size_t operator-( const AbstractValueType<Tag>& u, const AbstractValueType<Tag>& v ) {
+    return GetValueOf(u)-GetValueOf(v);
+}
+
+template<typename Tag>
+AbstractValueType<Tag> operator+( const AbstractValueType<Tag>& u, size_t offset ) {
+    return MakeAbstractValueType<Tag>(GetValueOf(u)+int(offset));
+}
+
+struct RowTag {};
+struct ColTag {};
+
+static void SerialTest() {
+    typedef AbstractValueType<RowTag> row_type;
+    typedef AbstractValueType<ColTag> col_type;
+    typedef tbb::blocked_range2d<row_type,col_type> range_type;
+    for( int rowx=-10; rowx<10; ++rowx ) {
+        for( int rowy=rowx; rowy<10; ++rowy ) {
+            row_type rowi = MakeAbstractValueType<RowTag>(rowx);
+            row_type rowj = MakeAbstractValueType<RowTag>(rowy);
+            for( int rowg=1; rowg<10; ++rowg ) {
+                for( int colx=-10; colx<10; ++colx ) {
+                    for( int coly=colx; coly<10; ++coly ) {
+                        col_type coli = MakeAbstractValueType<ColTag>(colx);
+                        col_type colj = MakeAbstractValueType<ColTag>(coly);
+                        for( int colg=1; colg<10; ++colg ) {
+                            range_type r( rowi, rowj, rowg, coli, colj, colg );
+                            AssertSameType( r.is_divisible(), true );
+                            AssertSameType( r.empty(), true );
+                            AssertSameType( static_cast<range_type::row_range_type::const_iterator*>(0), static_cast<row_type*>(0) );
+                            AssertSameType( static_cast<range_type::col_range_type::const_iterator*>(0), static_cast<col_type*>(0) );
+                            AssertSameType( r.rows(), tbb::blocked_range<row_type>( rowi, rowj, 1 ));
+                            AssertSameType( r.cols(), tbb::blocked_range<col_type>( coli, colj, 1 ));
+                            ASSERT( r.empty()==(rowx==rowy||colx==coly), NULL );
+                            ASSERT( r.is_divisible()==(rowy-rowx>rowg||coly-colx>colg), NULL );
+                            if( r.is_divisible() ) {
+                                range_type r2(r,tbb::split());
+                                if( GetValueOf(r2.rows().begin())==GetValueOf(r.rows().begin()) ) {
+                                    ASSERT( GetValueOf(r2.rows().end())==GetValueOf(r.rows().end()), NULL );
+                                    ASSERT( GetValueOf(r2.cols().begin())==GetValueOf(r.cols().end()), NULL );
+                                } else {
+                                    ASSERT( GetValueOf(r2.cols().end())==GetValueOf(r.cols().end()), NULL );
+                                    ASSERT( GetValueOf(r2.rows().begin())==GetValueOf(r.rows().end()), NULL );
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+#include "harness.h"
+#include "tbb/parallel_for.h"
+
+const int N = 1<<10;
+
+unsigned char Array[N][N];
+
+struct Striker {
+   // Note: we use <int> here instead of <long> in order to test for problems similar to Quad 407676
+    void operator()( const tbb::blocked_range2d<int>& r ) const {
+        for( tbb::blocked_range<int>::const_iterator i=r.rows().begin(); i!=r.rows().end(); ++i )
+            for( tbb::blocked_range<int>::const_iterator j=r.cols().begin(); j!=r.cols().end(); ++j )
+                ++Array[i][j];
+    }
+};
+
+void ParallelTest() {
+    for( int i=0; i<N; i=i<3 ? i+1 : i*3 ) {
+        for( int j=0; j<N; j=j<3 ? j+1 : j*3 ) {
+            const tbb::blocked_range2d<int> r( 0, i, 7, 0, j, 5 );
+            tbb::parallel_for( r, Striker() );
+            for( int k=0; k<N; ++k ) {
+                for( int l=0; l<N; ++l ) {
+                    ASSERT( Array[k][l]==(k<i && l<j), NULL );
+                    Array[k][l] = 0;
+                }
+            }   
+        }
+    }
+}
+
+#include "tbb/task_scheduler_init.h"
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine(argc,argv);
+    SerialTest();
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        tbb::task_scheduler_init init(p);
+        ParallelTest();
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_blocked_range3d.cpp b/src/test/test_blocked_range3d.cpp
new file mode 100644
index 0000000..0546993
--- /dev/null
+++ b/src/test/test_blocked_range3d.cpp
@@ -0,0 +1,185 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/blocked_range3d.h"
+#include "harness_assert.h"
+
+// First test as much as we can without including other headers.
+// Doing so should catch problems arising from failing to include headers.
+
+template<typename Tag>
+class AbstractValueType {
+    AbstractValueType() {}
+    int value;
+public: 
+    template<typename OtherTag>
+    friend AbstractValueType<OtherTag> MakeAbstractValueType( int i );
+
+    friend int GetValueOf( const AbstractValueType& v ) {return v.value;}
+};
+
+template<typename Tag>
+AbstractValueType<Tag> MakeAbstractValueType( int i ) {
+    AbstractValueType<Tag> x;
+    x.value = i;
+    return x;
+}
+
+template<typename Tag>
+bool operator<( const AbstractValueType<Tag>& u, const AbstractValueType<Tag>& v ) {
+    return GetValueOf(u)<GetValueOf(v);
+}
+
+template<typename Tag>
+size_t operator-( const AbstractValueType<Tag>& u, const AbstractValueType<Tag>& v ) {
+    return GetValueOf(u)-GetValueOf(v);
+}
+
+template<typename Tag>
+AbstractValueType<Tag> operator+( const AbstractValueType<Tag>& u, size_t offset ) {
+    return MakeAbstractValueType<Tag>(GetValueOf(u)+int(offset));
+}
+
+struct PageTag {};
+struct RowTag {};
+struct ColTag {};
+
+static void SerialTest() {
+    typedef AbstractValueType<PageTag> page_type;
+    typedef AbstractValueType<RowTag> row_type;
+    typedef AbstractValueType<ColTag> col_type;
+    typedef tbb::blocked_range3d<page_type,row_type,col_type> range_type;
+    for( int pagex=-4; pagex<4; ++pagex ) {
+        for( int pagey=pagex; pagey<4; ++pagey ) {
+            page_type pagei = MakeAbstractValueType<PageTag>(pagex);
+            page_type pagej = MakeAbstractValueType<PageTag>(pagey);
+            for( int pageg=1; pageg<4; ++pageg ) {
+                for( int rowx=-4; rowx<4; ++rowx ) {
+                    for( int rowy=rowx; rowy<4; ++rowy ) {
+                        row_type rowi = MakeAbstractValueType<RowTag>(rowx);
+                        row_type rowj = MakeAbstractValueType<RowTag>(rowy);
+                        for( int rowg=1; rowg<4; ++rowg ) {
+                            for( int colx=-4; colx<4; ++colx ) {
+                                for( int coly=colx; coly<4; ++coly ) {
+                                    col_type coli = MakeAbstractValueType<ColTag>(colx);
+                                    col_type colj = MakeAbstractValueType<ColTag>(coly);
+                                    for( int colg=1; colg<4; ++colg ) {
+                                        range_type r( pagei, pagej, pageg, rowi, rowj, rowg, coli, colj, colg );
+                                        AssertSameType( r.is_divisible(), true );
+                                   
+                                        AssertSameType( r.empty(), true );
+                                       
+                                        AssertSameType( static_cast<range_type::page_range_type::const_iterator*>(0), static_cast<page_type*>(0) );
+                                        AssertSameType( static_cast<range_type::row_range_type::const_iterator*>(0), static_cast<row_type*>(0) );
+                                        AssertSameType( static_cast<range_type::col_range_type::const_iterator*>(0), static_cast<col_type*>(0) );
+                            
+                                        AssertSameType( r.pages(), tbb::blocked_range<page_type>( pagei, pagej, 1 ));
+                                        AssertSameType( r.rows(), tbb::blocked_range<row_type>( rowi, rowj, 1 ));
+                                        AssertSameType( r.cols(), tbb::blocked_range<col_type>( coli, colj, 1 ));
+            
+                                        ASSERT( r.empty()==(pagex==pagey||rowx==rowy||colx==coly), NULL );
+                         
+                                        ASSERT( r.is_divisible()==(pagey-pagex>pageg||rowy-rowx>rowg||coly-colx>colg), NULL );
+                            
+                                        if( r.is_divisible() ) {
+                                            range_type r2(r,tbb::split());
+                                            if( (GetValueOf(r2.pages().begin())==GetValueOf(r.pages().begin())) && (GetValueOf(r2.rows().begin())==GetValueOf(r.rows().begin())) ) {
+                                                ASSERT( GetValueOf(r2.pages().end())==GetValueOf(r.pages().end()), NULL );
+                                                ASSERT( GetValueOf(r2.rows().end())==GetValueOf(r.rows().end()), NULL );
+                                                ASSERT( GetValueOf(r2.cols().begin())==GetValueOf(r.cols().end()), NULL );
+                                            } else {
+                                                if ( (GetValueOf(r2.pages().begin())==GetValueOf(r.pages().begin())) && (GetValueOf(r2.cols().begin())==GetValueOf(r.cols().begin())) ) {
+                                                    ASSERT( GetValueOf(r2.pages().end())==GetValueOf(r.pages().end()), NULL );
+                                                    ASSERT( GetValueOf(r2.cols().end())==GetValueOf(r.cols().end()), NULL );
+                                                    ASSERT( GetValueOf(r2.rows().begin())==GetValueOf(r.rows().end()), NULL );
+                                                } else {
+                                                   ASSERT( GetValueOf(r2.rows().end())==GetValueOf(r.rows().end()), NULL );
+                                                   ASSERT( GetValueOf(r2.cols().end())==GetValueOf(r.cols().end()), NULL );
+                                                   ASSERT( GetValueOf(r2.pages().begin())==GetValueOf(r.pages().end()), NULL );
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+#include "harness.h"
+#include "tbb/parallel_for.h"
+
+const int N = 1<<5;
+
+unsigned char Array[N][N][N];
+
+struct Striker {
+   // Note: we use <int> here instead of <long> in order to test for problems similar to Quad 407676
+    void operator()( const tbb::blocked_range3d<int>& r ) const {
+        for( tbb::blocked_range<int>::const_iterator i=r.pages().begin(); i!=r.pages().end(); ++i )
+            for( tbb::blocked_range<int>::const_iterator j=r.rows().begin(); j!=r.rows().end(); ++j )
+                for( tbb::blocked_range<int>::const_iterator k=r.cols().begin(); k!=r.cols().end(); ++k )
+                    ++Array[i][j][k];
+    }
+};
+
+void ParallelTest() {
+	for( int i=0; i<N; i=i<3 ? i+1 : i*3 ) {
+          for( int j=0; j<N; j=j<3 ? j+1 : j*3 ) {
+            for( int k=0; k<N; k=k<3 ? k+1 : k*3 ) {
+                const tbb::blocked_range3d<int> r( 0, i, 5, 0, j, 3, 0, k, 1 );
+                tbb::parallel_for( r, Striker() );
+                for( int l=0; l<N; ++l ) {
+                    for( int m=0; m<N; ++m ) {
+                        for( int n=0; n<N; ++n ) {
+                             ASSERT( Array[l][m][n]==(l<i && m<j && n<k), NULL );
+                             Array[l][m][n] = 0;
+                        }
+                    }
+                }   
+            }
+        }
+    }
+}
+
+#include "tbb/task_scheduler_init.h"
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine(argc,argv);
+    SerialTest(); 
+	    for( int p=MinThread; p<=MaxThread; ++p ) {
+            tbb::task_scheduler_init init(p);
+            ParallelTest();
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_cache_aligned_allocator.cpp b/src/test/test_cache_aligned_allocator.cpp
new file mode 100644
index 0000000..4be9e7c
--- /dev/null
+++ b/src/test/test_cache_aligned_allocator.cpp
@@ -0,0 +1,42 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test whether cache_aligned_allocator works with some of the host's STL containers.
+
+#include "tbb/cache_aligned_allocator.h"
+
+#define HARNESS_NO_PARSE_COMMAND_LINE 1
+// the real body of the test is there:
+#include "test_allocator.h"
+
+int main(void)
+{
+    int result = TestMain<tbb::cache_aligned_allocator<void> >();
+    printf("done\n");
+    return result;
+}
diff --git a/src/test/test_cache_aligned_allocator_STL.cpp b/src/test/test_cache_aligned_allocator_STL.cpp
new file mode 100644
index 0000000..e1915f0
--- /dev/null
+++ b/src/test/test_cache_aligned_allocator_STL.cpp
@@ -0,0 +1,56 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test whether cache_aligned_allocator works with some of the host's STL containers.
+
+#include "tbb/cache_aligned_allocator.h"
+
+#define HARNESS_NO_PARSE_COMMAND_LINE 1
+#include "test_allocator.h"
+
+// Test whether an allocator works with some of the host's STL containers.
+
+#include <vector>
+#include <list>
+#include <deque>
+
+int main() {
+    TestContainer<std::vector<int,tbb::cache_aligned_allocator<int> > >();
+#if defined(_WIN64) && !defined(_CPPLIB_VER)
+    // Microsoft incorrectly typed the first argument to std::allocator<T>::deallocate
+    // as (void*), and depends upon this error in their early versions of list and deque.
+    printf("Warning: compatibility of cache_aligned_allocator with list and deque not tested\n"
+           "because they depend on error that Microsoft corrected later.\n");
+#else
+    TestContainer<std::list<int,tbb::cache_aligned_allocator<int> > >();
+    TestContainer<std::deque<int,tbb::cache_aligned_allocator<int> > >();
+#endif /* _WIN64 */
+    printf("done\n");
+    return 0;
+}
+
diff --git a/src/test/test_concurrent_hash_map.cpp b/src/test/test_concurrent_hash_map.cpp
new file mode 100644
index 0000000..1ad8bc0
--- /dev/null
+++ b/src/test/test_concurrent_hash_map.cpp
@@ -0,0 +1,511 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_hash_map.h"
+#include "tbb/parallel_for.h"
+#include "tbb/blocked_range.h"
+#include "tbb/atomic.h"
+#include "tbb/tick_count.h"
+#include "harness.h"
+
+/** Has tighly controlled interface so that we can verify
+    that concurrent_hash_map uses only the required interface. */
+class MyKey {
+private:
+    void operator=( const MyKey&  );    // Deny access
+    int key;
+    friend class MyHashCompare;
+public:
+    static MyKey make( int i ) {
+        MyKey result;
+        result.key = i;
+        return result;
+    }
+    int value_of() const {return key;}
+};
+
+tbb::atomic<long> MyDataCount;
+
+class MyData {
+private:
+    int data;
+    enum state_t {
+        LIVE=0x1234,
+        DEAD=0x5678
+    } my_state;
+    void operator=( const MyData& );    // Deny acces
+public:
+    MyData() {
+        my_state = LIVE;
+        ++MyDataCount;
+    }
+    MyData( const MyData& other ) {
+        ASSERT( other.my_state==LIVE, NULL );
+        my_state = LIVE;
+        data = other.data;
+        ++MyDataCount;
+    }
+    ~MyData() {
+        --MyDataCount;
+        my_state = DEAD;
+    }
+    static MyData make( int i ) {   
+        MyData result;
+        result.data = i;
+        return result;
+    }
+    int value_of() const {
+        ASSERT( my_state==LIVE, NULL );
+        return data;
+    }
+    void set_value( int i ) {
+        ASSERT( my_state==LIVE, NULL );
+        data = i;
+    }
+};
+
+class MyHashCompare {
+public:
+    bool equal( const MyKey& j, const MyKey& k ) const {
+        return j.key==k.key;
+    }
+    unsigned long hash( const MyKey& k ) const {
+        return k.key;
+    }   
+};
+
+typedef tbb::concurrent_hash_map<MyKey,MyData,MyHashCompare> MyTable;
+
+inline bool UseKey( size_t i ) {
+    return (i&3)!=3;
+}
+
+struct Insert {
+    static void apply( MyTable& table, int i ) {
+        MyTable::accessor a;    
+        if( UseKey(i) ) {
+            table.insert( a, MyKey::make(i) );
+            if( i&1 )
+                (*a).second.set_value( i*i );
+            else
+                a->second.set_value(i*i);
+        }
+    }
+};
+
+struct Find {
+    static void apply( MyTable& table, int i ) {
+        MyTable::accessor a;    
+        const MyTable::accessor& ca = a;
+        bool b = table.find( a, MyKey::make(i) );
+        ASSERT( b==!a.empty(), NULL );
+        if( b ) {
+            if( !UseKey(i) )
+                printf("Line %d: unexpected key %d present\n",__LINE__,i);
+            AssertSameType( &*a, static_cast<MyTable::value_type*>(0) );
+            ASSERT( ca->second.value_of()==i*i, NULL );
+            ASSERT( (*ca).second.value_of()==i*i, NULL );
+            if( i&1 )
+                ca->second.set_value( ~ca->second.value_of() );
+            else
+                (*ca).second.set_value( ~ca->second.value_of() );
+        } else {
+            if( UseKey(i) ) 
+                printf("Line %d: key %d missing\n",__LINE__,i);
+        }
+    }
+};
+
+struct FindConst {
+    static void apply( const MyTable& table, int i ) {
+        MyTable::const_accessor a;      
+        const MyTable::const_accessor& ca = a;
+        bool b = table.find( a, MyKey::make(i) );
+        ASSERT( b==!a.empty(), NULL );
+        ASSERT( b==UseKey(i), NULL );
+        if( b ) {
+            AssertSameType( &*ca, static_cast<const MyTable::value_type*>(0) );
+            ASSERT( ca->second.value_of()==~(i*i), NULL );
+            ASSERT( (*ca).second.value_of()==~(i*i), NULL );
+        }
+    }
+};
+
+tbb::atomic<int> EraseCount;
+
+struct Erase {
+    static void apply( MyTable& table, int i ) {
+        bool b = table.erase( MyKey::make(i) );
+        if( b ) ++EraseCount;
+    }
+};
+
+template<typename Op>
+class TableOperation {
+    MyTable& my_table;
+public:
+    void operator()( const tbb::blocked_range<int>& range ) const {
+        for( int i=range.begin(); i!=range.end(); ++i ) 
+            Op::apply(my_table,i);
+    }
+    TableOperation( MyTable& table ) : my_table(table) {}
+};
+
+template<typename Op>
+void DoConcurrentOperations( MyTable& table, int n, char* what, int nthread ) {
+    if( Verbose ) 
+        printf("testing %s with %d threads\n",what,nthread);
+    tbb::tick_count t0 = tbb::tick_count::now();
+    tbb::parallel_for( tbb::blocked_range<int>(0,n,100), TableOperation<Op>(table) );
+    tbb::tick_count t1 = tbb::tick_count::now();
+    if( Verbose )
+        printf("time for %s = %g with %d threads\n",what,(t1-t0).seconds(),nthread);
+}
+
+//! Test traversing the table with an iterator.
+void TraverseTable( MyTable& table, size_t n, size_t expected_size ) {
+    if( Verbose ) 
+        printf("testing traversal\n");
+    size_t actual_size = table.size();
+    ASSERT( actual_size==expected_size, NULL );
+    size_t count = 0;
+    bool* array = new bool[n];
+    memset( array, 0, n*sizeof(bool) );
+    const MyTable& const_table = table;
+    MyTable::const_iterator ci = const_table.begin();
+    for( MyTable::iterator i = table.begin(); i!=table.end(); ++i ) {
+        // Check iterator
+        int k = i->first.value_of();
+        ASSERT( UseKey(k), NULL );
+        ASSERT( (*i).first.value_of()==k, NULL );
+        ASSERT( 0<=k && size_t(k)<n, "out of bounds key" );
+        ASSERT( !array[k], "duplicate key" );
+        array[k] = true;
+        ++count;
+
+        // Check const_iterator
+        ASSERT( ci->first.value_of()==k, NULL );
+        ASSERT( (*ci).first.value_of()==k, NULL );
+        ++ci;
+    }
+    ASSERT( ci==const_table.end(), NULL );
+    delete[] array;
+    if( count!=expected_size ) {
+        printf("Line %d: count=%ld but should be %ld\n",__LINE__,long(count),long(expected_size));
+    }
+}
+
+typedef tbb::atomic<unsigned char> AtomicByte;
+
+template<typename RangeType>
+struct ParallelTraverseBody {
+    const size_t n;
+    AtomicByte* const array;
+    ParallelTraverseBody( AtomicByte array_[], size_t n_ ) : 
+        n(n_), 
+        array(array_)
+    {}
+    void operator()( const RangeType& range ) const {
+        for( MyTable::iterator i = range.begin(); i!=range.end(); ++i ) {
+            int k = i->first.value_of();
+            ASSERT( 0<=k && size_t(k)<n, NULL ); 
+            ++array[k];
+        }
+    }
+};
+
+void Check( AtomicByte array[], size_t n, size_t expected_size ) {
+    if( expected_size )
+        for( size_t k=0; k<n; ++k ) {
+            if( array[k] != int(UseKey(k)) ) {
+                printf("array[%d]=%d != %d=UseKey(%d)\n",
+                       int(k), int(array[k]), int(UseKey(k)), int(k));
+                ASSERT(false,NULL);
+            }
+        }
+}
+
+//! Test travering the tabel with a parallel range
+void ParallelTraverseTable( MyTable& table, size_t n, size_t expected_size ) {
+    if( Verbose ) 
+        printf("testing parallel traversal\n");
+    ASSERT( table.size()==expected_size, NULL );
+    AtomicByte* array = new AtomicByte[n];
+
+    memset( array, 0, n*sizeof(AtomicByte) );
+    MyTable::range_type r = table.range(10);
+    tbb::parallel_for( r, ParallelTraverseBody<MyTable::range_type>( array, n ));
+    Check( array, n, expected_size );
+
+    const MyTable& const_table = table;
+    memset( array, 0, n*sizeof(AtomicByte) );
+    MyTable::const_range_type cr = const_table.range(10);
+    tbb::parallel_for( cr, ParallelTraverseBody<MyTable::const_range_type>( array, n ));
+    Check( array, n, expected_size );
+
+    delete[] array;
+}
+
+void TestInsertFindErase( int nthread ) {
+    int n=250000; 
+
+    // compute m = number of unique keys
+    int m = 0;       
+    for( int i=0; i<n; ++i )
+        m += UseKey(i);
+ 
+    ASSERT( MyDataCount==0, NULL );
+    MyTable table;
+    TraverseTable(table,n,0);
+    ParallelTraverseTable(table,n,0);
+
+    DoConcurrentOperations<Insert>(table,n,"insert",nthread);
+    ASSERT( MyDataCount==m, NULL );
+    TraverseTable(table,n,m);
+    ParallelTraverseTable(table,n,m);
+
+    DoConcurrentOperations<Find>(table,n,"find",nthread);
+    ASSERT( MyDataCount==m, NULL );
+
+    DoConcurrentOperations<FindConst>(table,n,"find(const)",nthread);
+    ASSERT( MyDataCount==m, NULL );
+
+    EraseCount=0;
+    DoConcurrentOperations<Erase>(table,n,"erase",nthread);
+    ASSERT( EraseCount==m, NULL );
+    ASSERT( MyDataCount==0, NULL );
+    TraverseTable(table,n,0);
+}
+
+volatile int Counter;
+
+class AddToTable {
+    MyTable& my_table;
+    const int my_nthread;
+    const int my_m;
+public:
+    AddToTable( MyTable& table, int nthread, int m ) : my_table(table), my_nthread(nthread), my_m(m) {}
+    void operator()( const  tbb::blocked_range<int>& r ) const {
+        for( int i=0; i<my_m; ++i ) {
+            // Busy wait to synchronize threads
+            int j = 0;
+            while( Counter<i ) {
+                if( ++j==1000000 ) {
+                    // If Counter<i after a million iterations, then we almost surely have
+                    // more logical threads than physical threads, and should yield in 
+                    // order to let suspended logical threads make progress.
+                    j = 0;
+#if __linux__||__APPLE__
+                    sched_yield();
+#else
+                    Sleep(0);
+#endif /* __linux__ */
+                }
+            }
+            // Now all threads attempt to simultaneously insert a key.
+            int k;
+            {
+                MyTable::accessor a, b;
+                MyKey key = MyKey::make(i);
+                if( my_table.insert( a, key ) ) 
+                    a->second.set_value( 1 );
+                else 
+                    a->second.set_value( a->second.value_of()+1 );      
+                k = a->second.value_of();
+            }
+            if( k==my_nthread ) 
+                Counter=i+1;
+        }
+    }
+};
+
+//! Test for memory leak in concurrent_hash_map (TR #153).
+void TestMultipleInsert( int nthread ) {
+    if( Verbose ) 
+        printf("testing multiple insertions of same key with %d threads\n", nthread);
+    {
+        ASSERT( MyDataCount==0, NULL );
+        MyTable table;
+        const int m = 1000;
+        tbb::tick_count t0 = tbb::tick_count::now();
+        tbb::parallel_for( tbb::blocked_range<int>(0,nthread,1), AddToTable(table,nthread,m) );
+        tbb::tick_count t1 = tbb::tick_count::now();
+        if( Verbose )
+            printf("time for multiple insertions = %g with %d threads\n",(t1-t0).seconds(),nthread);
+        ASSERT( MyDataCount==m, "memory leak detected" );
+    }
+    ASSERT( MyDataCount==0, "memory leak detected" );
+}
+
+void TestTypes() {
+    AssertSameType( static_cast<MyTable::key_type*>(0), static_cast<MyKey*>(0) );
+    AssertSameType( static_cast<MyTable::mapped_type*>(0), static_cast<MyData*>(0) );
+    AssertSameType( static_cast<MyTable::value_type*>(0), static_cast<std::pair<const MyKey,MyData>*>(0) );
+    AssertSameType( static_cast<MyTable::accessor::value_type*>(0), static_cast<MyTable::value_type*>(0) );
+    AssertSameType( static_cast<MyTable::const_accessor::value_type*>(0), static_cast<const MyTable::value_type*>(0) );
+    AssertSameType( static_cast<MyTable::size_type*>(0), static_cast<size_t*>(0) );
+    AssertSameType( static_cast<MyTable::difference_type*>(0), static_cast<ptrdiff_t*>(0) );
+}
+
+template<typename Iterator, typename T>
+void TestIteratorTraits() {
+    AssertSameType( static_cast<typename Iterator::difference_type*>(0), static_cast<ptrdiff_t*>(0) );
+    AssertSameType( static_cast<typename Iterator::value_type*>(0), static_cast<T*>(0) );
+    AssertSameType( static_cast<typename Iterator::pointer*>(0), static_cast<T**>(0) );
+    AssertSameType( static_cast<typename Iterator::iterator_category*>(0), static_cast<std::forward_iterator_tag*>(0) );
+    T x;
+    typename Iterator::reference xr = x;
+    typename Iterator::pointer xp = &x;
+    ASSERT( &xr==xp, NULL );
+}
+
+//------------------------------------------------------------------------
+// Test for copy constructor and assignment
+//------------------------------------------------------------------------
+
+void FillTable( MyTable& x, int n ) {
+    for( int i=0; i<n; ++i ) {
+        MyKey key( MyKey::make(i) );
+        MyTable::accessor a;
+        bool b = x.insert(a,key); 
+        ASSERT(b,NULL); 
+        a->second.set_value( i*i );
+    }
+}
+
+void CheckTable( const MyTable& x, int n ) {
+    ASSERT( x.size()==size_t(n), "table is different size than expected" );
+    ASSERT( x.empty()==(n==0), NULL );
+    ASSERT( x.size()<=x.max_size(), NULL );
+    for( int i=0; i<n; ++i ) {
+        MyKey key( MyKey::make(i) );
+        MyTable::const_accessor a;
+        bool b = x.find(a,key); 
+        ASSERT( b, NULL ); 
+        ASSERT( a->second.value_of()==i*i, NULL );
+    }
+    int count = 0;
+    int key_sum = 0;
+    for( MyTable::const_iterator i(x.begin()); i!=x.end(); ++i ) {
+        ++count;
+        key_sum += i->first.value_of();
+    }
+    ASSERT( count==n, NULL );
+    ASSERT( key_sum==n*(n-1)/2, NULL );
+}
+
+void TestCopy() {
+    if( Verbose )
+        printf("testing copy\n");
+    MyTable t1;
+    for( int i=0; i<10000; i=(i<100 ? i+1 : i*3) ) {
+        MyDataCount = 0;
+
+        FillTable( t1, i );
+        CheckTable(t1,i);
+
+        MyTable t2(t1);
+        // Check that copy constructor did not mangle source table.
+        CheckTable(t1,i);
+
+        // Clear original table
+        t1.clear();
+        CheckTable(t1,0);
+
+        // Verify that copy of t1 is correct, even after t1 is cleared.
+        CheckTable(t2,i);
+        t2.clear();
+        CheckTable(t2,0);
+        ASSERT( MyDataCount==0, "data leak?" );
+    }
+}
+
+void TestAssignment() {
+    if( Verbose )
+        printf("testing assignment\n");
+    for( int i=0; i<1000; i=(i<30 ? i+1 : i*5) ) {
+        for( int j=0; j<1000; j=(j<30 ? j+1 : j*7) ) {
+            MyTable t1;
+            MyTable t2;
+            FillTable(t1,i);
+            FillTable(t2,j);
+            CheckTable(t1,i);
+            CheckTable(t2,j);
+
+            MyTable& tref = t2=t1; 
+            ASSERT( &tref==&t2, NULL );
+            CheckTable(t1,i);
+            CheckTable(t2,i);
+
+            t1.clear();
+            CheckTable(t1,0);
+            CheckTable(t2,i);
+            ASSERT( MyDataCount==i, "data leak?" );
+
+            t2.clear();
+            CheckTable(t1,0);
+            CheckTable(t2,0);
+            ASSERT( MyDataCount==0, "data leak?" );
+        }
+    }
+}
+
+//------------------------------------------------------------------------
+// Test driver
+//------------------------------------------------------------------------
+
+#include "tbb/task_scheduler_init.h"
+
+//! Test driver
+int main( int argc, char* argv[] ) {
+    // Default minimum number of threads is 1.
+    MinThread = 1;
+
+    ParseCommandLine(argc,argv);
+    if( MinThread<0 ) {
+        printf("ERROR: must use at least one thread\n");
+        exit(1);
+    }
+
+    // Do serial tests
+    TestTypes();
+    TestIteratorTraits<MyTable::iterator,MyTable::value_type>();
+    TestIteratorTraits<MyTable::const_iterator,const MyTable::value_type>();
+    TestCopy();
+    TestAssignment();
+
+    // Do concurrency tests.
+    for( int nthread=MinThread; nthread<=MaxThread; ++nthread ) {
+        tbb::task_scheduler_init init( nthread );
+        TestInsertFindErase( nthread );
+        TestMultipleInsert( nthread );
+    }
+
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_concurrent_hash_map_string.cpp b/src/test/test_concurrent_hash_map_string.cpp
new file mode 100644
index 0000000..0df73c5
--- /dev/null
+++ b/src/test/test_concurrent_hash_map_string.cpp
@@ -0,0 +1,84 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test for problem where Microsoft VC8 compiler could not compile 
+// concurrent_hash_map that uses a FastString, as defined below.  
+// The root problem was a missing "const" in the copy constructor for scalable_allocator.
+// Unfortunately, I (Arch Robison) was not able to reduce the test to
+// something that did not involve concurrent_hash_map, so this test
+// is regrettably large.  The problem did not manifest itself when
+// the Intel or GNU compilers were used.
+
+#include "tbb/concurrent_hash_map.h"
+#include "tbb/scalable_allocator.h"
+#include "harness_assert.h"
+#include <string>
+
+typedef std::basic_string<char,std::char_traits<char>,tbb::scalable_allocator<char> > FastString;
+
+struct FastStringHashCompare {
+    static size_t hash( const FastString& x ) {
+        size_t h = 0;
+        for( const char* s = x.c_str(); *s; s++ )
+            h = (h*17)^*s;
+        return h;
+    }
+    //! True if FastStrings are equal
+    static bool equal( const FastString& x, const FastString& y ) {
+        return x==y;
+    }
+};
+
+void TestStringKey() {
+    typedef tbb::concurrent_hash_map<FastString,int,FastStringHashCompare> table_type;
+    table_type table;
+    static const FastString fruit[] = {"apple", "banana", "cherry"};
+    for( int i=0; i<12; ++i ) {
+        table_type::accessor a;
+        table.insert( a, fruit[i%3] );
+        a->second += 1;
+    }
+    table_type::iterator j=table.begin();
+    for( int i=0; i<3; ++i, ++j ) {
+        ASSERT( j->second==4, NULL );
+    }
+    ASSERT( j==table.end(), NULL );
+    
+}
+
+#include "harness.h"
+
+//! Test driver
+int main( int argc, char* argv[] ) {
+
+    // Do test with string
+    TestStringKey();
+
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_concurrent_queue.cpp b/src/test/test_concurrent_queue.cpp
new file mode 100644
index 0000000..403a17a
--- /dev/null
+++ b/src/test/test_concurrent_queue.cpp
@@ -0,0 +1,324 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_queue.h"
+#include "tbb/atomic.h"
+#include "tbb/tick_count.h"
+#include "tbb/blocked_range.h"
+#include "harness.h"
+
+static tbb::atomic<long> FooConstructed;
+static tbb::atomic<long> FooDestroyed;
+
+class Foo {
+    enum state_t{
+        LIVE=0x1234,
+        DEAD=0xDEAD
+    };
+    state_t state;
+public:
+    int thread_id;
+    int serial;
+    Foo() : state(LIVE) {
+        ++FooConstructed;
+    }
+    Foo( const Foo& item ) : state(LIVE) {
+        ASSERT( item.state==LIVE, NULL );
+        ++FooConstructed;
+        thread_id = item.thread_id;
+        serial = item.serial;
+    }
+    ~Foo() {
+        ASSERT( state==LIVE, NULL );
+        ++FooDestroyed;
+        state=DEAD;
+        thread_id=0xDEAD;
+        serial=0xDEAD;
+    }
+    void operator=( Foo& item ) {
+        ASSERT( item.state==LIVE, NULL );
+        ASSERT( state==LIVE, NULL );
+        thread_id = item.thread_id;
+        serial = item.serial;
+    }
+    bool is_const() {return false;}
+    bool is_const() const {return true;}
+};
+
+const size_t MAXTHREAD = 256;
+
+static int Sum[MAXTHREAD];
+
+//! Count of various pop operations
+/** [0] = pop_if_present that failed
+    [1] = pop_if_present that succeeded
+    [2] = pop */
+static tbb::atomic<long> PopKind[3];
+
+const int M = 10000;
+
+struct Body {
+    tbb::concurrent_queue<Foo>* queue;
+    const int nthread;
+    Body( int nthread_ ) : nthread(nthread_) {}
+    void operator()( const tbb::blocked_range<int>& r ) const {
+        long pop_kind[3] = {0,0,0};
+        int serial[MAXTHREAD+1];
+        memset( serial, 0, nthread*sizeof(unsigned) );
+        ASSERT( r.begin()+1==r.end(), NULL );
+        ASSERT( r.begin()<nthread, NULL );
+        ASSERT( r.end()<=nthread, NULL );
+
+        long sum = 0;
+        long thread_id = r.begin();
+        for( long j=0; j<M; ++j ) {
+            Foo f;
+            f.thread_id = 0xDEAD;
+            f.serial = 0xDEAD;
+            bool prepopped = false;
+            if( j&1 ) {
+                prepopped = queue->pop_if_present(f);
+                ++pop_kind[prepopped];
+            }
+            Foo g;
+            g.thread_id = thread_id;
+            g.serial = j+1;
+            queue->push( g );
+            if( !prepopped ) {
+                queue->pop(f);
+                ++pop_kind[2];
+            }
+            ASSERT( f.thread_id<=nthread, NULL );
+            ASSERT( f.thread_id==nthread || serial[f.thread_id]<f.serial, "partial order violation" );
+            serial[f.thread_id] = f.serial;
+            sum += f.serial-1;
+        }
+        Sum[r.begin()] = sum;
+        for( int k=0; k<3; ++k )
+            PopKind[k] += pop_kind[k];
+    }
+};
+
+void TestPushPop( int prefill, ptrdiff_t capacity, int nthread ) {
+    ASSERT( nthread>0, "nthread must be positive" );
+    if( prefill+1>=capacity )
+        return;
+    bool success = false;
+    for( int k=0; k<3; ++k )
+        PopKind[k] = 0;
+    for( int trial=0; !success; ++trial ) {
+        FooConstructed = 0;
+        FooDestroyed = 0;
+        Body body(nthread);
+        tbb::concurrent_queue<Foo> queue;
+        queue.set_capacity( capacity );
+        body.queue = &queue;
+        for( int i=0; i<prefill; ++i ) {
+            Foo f;
+            f.thread_id = nthread;
+            f.serial = 1+i;
+            queue.push(f);
+            ASSERT( queue.size()==i+1, NULL );
+            ASSERT( !queue.empty(), NULL );
+        }
+        tbb::tick_count t0 = tbb::tick_count::now();
+        NativeParallelFor( tbb::blocked_range<int>(0,nthread,1), body );
+        tbb::tick_count t1 = tbb::tick_count::now();
+        double timing = (t1-t0).seconds();
+        if( Verbose )
+            printf("prefill=%d capacity=%d time = %g = %g nsec/operation\n", prefill, int(capacity), timing, timing/(2*M*nthread)*1.E9);
+        int sum = 0;
+        for( int k=0; k<nthread; ++k )
+            sum += Sum[k];
+        int expected = nthread*((M-1)*M/2) + ((prefill-1)*prefill)/2;
+        for( int i=prefill; --i>=0; ) {
+            ASSERT( !queue.empty(), NULL );
+            Foo f;
+            queue.pop(f);
+            ASSERT( queue.size()==i, NULL );
+            sum += f.serial-1;
+        }
+        ASSERT( queue.empty(), NULL );
+        ASSERT( queue.size()==0, NULL );
+        if( sum!=expected )
+            printf("sum=%d expected=%d\n",sum,expected);
+        ASSERT( FooConstructed==FooDestroyed, NULL );
+
+        success = true;
+        if( nthread>1 && prefill==0 ) {
+            // Check that pop_if_present got sufficient exercise
+            for( int k=0; k<2; ++k ) {
+#if (_WIN32||_WIN64)
+                // The TBB library on Windows seems to have a tough time generating
+                // the desired interleavings for pop_if_present, so the code tries longer, and settles
+                // for fewer desired interleavings.
+                const int max_trial = 100;
+                const int min_requirement = 20;
+#else
+                const int min_requirement = 100;
+                const int max_trial = 20;
+#endif /* _WIN32||_WIN64 */
+                if( PopKind[k]<min_requirement ) {
+                    if( trial>=max_trial ) {
+                        printf("Warning: %d threads had only %ld pop_if_present operations %s after %d trials (expected at least %d)\n",
+                               nthread, long(PopKind[k]), k==0?"fail":"succeed", max_trial, min_requirement);
+                        printf("This problem may merely be unlucky scheduling.\n"
+                               "Investigate only if it happens repeatedly.\n");
+                    } else {
+                        success = false;
+                    }
+               }
+            }
+        }
+    }
+}
+
+template<typename Iterator1, typename Iterator2>
+void TestIteratorAux( Iterator1 i, Iterator2 j, int size ) {
+    // Now test iteration
+    Iterator1 old_i;
+    for( int k=0; k<size; ++k ) {
+        ASSERT( i!=j, NULL );
+        ASSERT( !(i==j), NULL );
+        Foo f;
+        if( k&1 ) {
+            // Test pre-increment
+            f = *old_i++;
+            // Test assignment
+            i = old_i;
+        } else {
+            // Test post-increment
+            f=*i++;
+            if( k<size-1 ) {
+                // Test "->"
+                ASSERT( k+2==i->serial, NULL );
+            }
+            // Test assignment
+            old_i = i;
+        }
+        ASSERT( k+1==f.serial, NULL );
+    }
+    ASSERT( !(i!=j), NULL );
+    ASSERT( i==j, NULL );
+}
+
+template<typename Iterator1, typename Iterator2>
+void TestIteratorAssignment( Iterator2 j ) {
+    Iterator1 i(j);
+    ASSERT( i==j, NULL );
+    ASSERT( !(i!=j), NULL );
+    Iterator1 k;
+    k = j;
+    ASSERT( k==j, NULL );
+    ASSERT( !(k!=j), NULL );
+}
+
+//! Test the iterators for concurrent_queue
+void TestIterator() {
+    tbb::concurrent_queue<Foo> queue;
+    tbb::concurrent_queue<Foo>& const_queue = queue;
+    for( int j=0; j<500; ++j ) {
+        TestIteratorAux( queue.begin(), queue.end(), j );
+        TestIteratorAux( const_queue.begin(), const_queue.end(), j );
+        TestIteratorAux( const_queue.begin(), queue.end(), j );
+        TestIteratorAux( queue.begin(), const_queue.end(), j );
+        Foo f;
+        f.serial = j+1;
+        queue.push(f);
+    }
+    TestIteratorAssignment<tbb::concurrent_queue<Foo>::const_iterator>( const_queue.begin() );
+    TestIteratorAssignment<tbb::concurrent_queue<Foo>::const_iterator>( queue.begin() );
+    TestIteratorAssignment<tbb::concurrent_queue<Foo>::iterator>( queue.begin() );
+}
+
+void TestConcurrenetQueueType() {
+    AssertSameType( tbb::concurrent_queue<Foo>::value_type(), Foo() );
+    Foo f;
+    const Foo g;
+    tbb::concurrent_queue<Foo>::reference r = f;
+    ASSERT( &r==&f, NULL );
+    ASSERT( !r.is_const(), NULL );
+    tbb::concurrent_queue<Foo>::const_reference cr = g;
+    ASSERT( &cr==&g, NULL );
+    ASSERT( cr.is_const(), NULL );
+}
+
+template<typename T>
+void TestEmptyQueue() {
+    const tbb::concurrent_queue<T> queue;
+    ASSERT( queue.size()==0, NULL );
+    ASSERT( queue.capacity()>0, NULL );
+    ASSERT( size_t(queue.capacity())>=size_t(-1)/(sizeof(void*)+sizeof(T)), NULL );
+}
+
+void TestFullQueue() {
+    for( int n=0; n<10; ++n ) {
+        FooConstructed = 0;
+        FooDestroyed = 0;
+        tbb::concurrent_queue<Foo> queue;
+        queue.set_capacity(n);
+        for( int i=0; i<=n; ++i ) {
+            Foo f;
+            f.serial = i;
+            bool result = queue.push_if_not_full( f );
+            ASSERT( result==(i<n), NULL );
+        }
+        for( int i=0; i<=n; ++i ) {
+            Foo f;
+            bool result = queue.pop_if_present( f );
+            ASSERT( result==(i<n), NULL );
+            ASSERT( !result || f.serial==i, NULL );
+        }
+        ASSERT( FooConstructed==FooDestroyed, NULL );
+    }
+}
+
+int main( int argc, char* argv[] ) {
+    // Set default for minimum number of threads.
+    MinThread = 1;
+    ParseCommandLine(argc,argv);
+
+    TestEmptyQueue<char>();
+    TestEmptyQueue<Foo>();
+    TestFullQueue();
+    TestConcurrenetQueueType();
+    TestIterator();
+
+    // Test concurrent operations
+    for( int nthread=MinThread; nthread<=MaxThread; ++nthread ) {
+        for( int prefill=0; prefill<64; prefill+=(1+prefill/3) ) {
+            TestPushPop(prefill,ptrdiff_t(-1),nthread);
+            TestPushPop(prefill,ptrdiff_t(1),nthread);
+            TestPushPop(prefill,ptrdiff_t(2),nthread);
+            TestPushPop(prefill,ptrdiff_t(10),nthread);
+            TestPushPop(prefill,ptrdiff_t(100),nthread);
+        }
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_concurrent_vector.cpp b/src/test/test_concurrent_vector.cpp
new file mode 100644
index 0000000..414c9c6
--- /dev/null
+++ b/src/test/test_concurrent_vector.cpp
@@ -0,0 +1,570 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/concurrent_vector.h"
+#include <cstdio>
+#include <cstdlib>
+#include "harness_assert.h"
+
+tbb::atomic<long> FooCount;
+
+//! Problem size
+const size_t N = 500000;
+
+struct Foo {
+    int my_bar;
+public:
+    enum State {
+        DefaultInitialized=0x1234,
+        CopyInitialized=0x89ab,
+        Destroyed=0x5678
+    } state;
+    int& bar() {
+        ASSERT( state==DefaultInitialized||state==CopyInitialized, NULL );
+        return my_bar;
+    }
+    int bar() const {
+        ASSERT( state==DefaultInitialized||state==CopyInitialized, NULL );
+        return my_bar;
+    }
+    static const int initial_value_of_bar = 42;
+    Foo() {
+        state = DefaultInitialized;
+        ++FooCount;
+        my_bar = initial_value_of_bar;
+    }
+    Foo( const Foo& foo ) {
+        state = CopyInitialized;
+        ++FooCount;
+        my_bar = foo.my_bar;
+    }
+    ~Foo() {
+        ASSERT( state==DefaultInitialized||state==CopyInitialized, NULL );
+        state = Destroyed;
+        my_bar = ~initial_value_of_bar;
+        --FooCount;
+    }
+    bool is_const() const {return true;}
+    bool is_const() {return false;}
+};
+
+class FooWithAssign: public Foo {
+public:
+    void operator=( const FooWithAssign& x ) {
+        ASSERT( x.state==DefaultInitialized||x.state==CopyInitialized, NULL );
+        ASSERT( state==DefaultInitialized||state==CopyInitialized, NULL );
+        my_bar = x.my_bar;
+    } 
+};
+
+inline void NextSize( int& s ) {
+    if( s<=32 ) ++s;
+    else s += s/10;     
+}
+
+static void CheckVector( const tbb::concurrent_vector<Foo>& cv, size_t expected_size, size_t old_size ) {
+    ASSERT( cv.size()==expected_size, NULL );
+    ASSERT( cv.empty()==(expected_size==0), NULL );
+    for( int j=0; j<int(expected_size); ++j ) {
+        if( cv[j].bar()!=~j )
+            printf("ERROR on line %d for old_size=%ld expected_size=%ld j=%d\n",__LINE__,long(old_size),long(expected_size),j);
+    }
+}
+
+void TestResizeAndCopy() {
+    typedef tbb::concurrent_vector<Foo> vector_t;
+    for( int old_size=0; old_size<=128; NextSize( old_size ) ) {
+        for( int new_size=old_size; new_size<=128; NextSize( new_size ) ) {
+            long count = FooCount;
+            vector_t v;
+            ASSERT( count==FooCount, NULL );
+            v.grow_by(old_size);
+            ASSERT( count+old_size==FooCount, NULL );
+            for( int j=0; j<old_size; ++j )
+                v[j].bar() = j*j;
+            v.grow_to_at_least(new_size);
+            ASSERT( count+new_size==FooCount, NULL );
+            for( int j=0; j<new_size; ++j ) {
+                int expected = j<old_size ? j*j : Foo::initial_value_of_bar;
+                if( v[j].bar()!=expected ) 
+                    printf("ERROR on line %d for old_size=%ld new_size=%ld v[%ld].bar()=%d != %d\n",__LINE__,long(old_size),long(new_size),long(j),v[j].bar(), expected);
+            }
+            ASSERT( v.size()==size_t(new_size), NULL );
+            for( int j=0; j<new_size; ++j ) {
+                v[j].bar() = ~j;
+            }
+            const vector_t& cv = v;
+            // Try copy constructor
+            vector_t copy_of_v(cv);
+            CheckVector(cv,new_size,old_size);
+            v.clear();
+            ASSERT( v.empty(), NULL );
+            CheckVector(copy_of_v,new_size,old_size);
+        }
+    }
+}
+
+void TestCapacity() {
+    for( size_t old_size=0; old_size<=10000; old_size=(old_size<5 ? old_size+1 : 3*old_size) ) {
+        for( size_t new_size=0; new_size<=10000; new_size=(new_size<5 ? new_size+1 : 3*new_size) ) {
+            long count = FooCount; 
+            {
+                typedef tbb::concurrent_vector<Foo> vector_t;
+                vector_t v;
+                v.reserve( old_size );
+                ASSERT( v.capacity()>=old_size, NULL );
+                v.reserve( new_size );
+                ASSERT( v.capacity()>=old_size, NULL );
+                ASSERT( v.capacity()>=new_size, NULL );
+                for( size_t i=0; i<2*new_size; ++i ) {
+                    ASSERT( size_t(FooCount)==count+i, NULL );
+                    size_t j = v.grow_by(1);
+                    ASSERT( j==i, NULL );
+                }
+            }
+            ASSERT( FooCount==count, NULL );
+        }
+    } 
+}
+
+struct AssignElement {
+    typedef tbb::concurrent_vector<int>::range_type::iterator iterator;
+    iterator base;
+    void operator()( const tbb::concurrent_vector<int>::range_type& range ) const {
+        for( iterator i=range.begin(); i!=range.end(); ++i ) {
+            if( *i!=0 )
+                printf("ERROR for v[%ld]\n", long(i-base));
+            *i = int(i-base);
+        }
+    }
+    AssignElement( iterator base_ ) : base(base_) {}
+};
+
+struct CheckElement {
+    typedef tbb::concurrent_vector<int>::const_range_type::iterator iterator;
+    iterator base;
+    void operator()( const tbb::concurrent_vector<int>::const_range_type& range ) const {
+        for( iterator i=range.begin(); i!=range.end(); ++i )
+            if( *i != int(i-base) )
+                printf("ERROR for v[%ld]\n", long(i-base));
+    }
+    CheckElement( iterator base_ ) : base(base_) {}
+};
+
+#include "tbb/tick_count.h"
+#include "tbb/parallel_for.h"
+#include "harness.h"
+
+void TestParallelFor( int nthread ) {
+    typedef tbb::concurrent_vector<int> vector_t;
+    vector_t v;
+    v.grow_to_at_least(N);  
+    tbb::tick_count t0 = tbb::tick_count::now();
+    if( Verbose )
+        printf("Calling parallel_for.h with %ld threads\n",long(nthread));
+    tbb::parallel_for( v.range(10000), AssignElement(v.begin()) );
+    tbb::tick_count t1 = tbb::tick_count::now();
+    const vector_t& u = v;      
+    tbb::parallel_for( u.range(10000), CheckElement(u.begin()) );
+    tbb::tick_count t2 = tbb::tick_count::now();
+    if( Verbose )
+        printf("Time for parallel_for.h: assign time = %8.5f, check time = %8.5f\n",
+               (t1-t0).seconds(),(t2-t1).seconds());
+    for( long i=0; size_t(i)<v.size(); ++i )
+        if( v[i]!=i )
+            printf("ERROR for v[%ld]\n", i);
+}
+
+template<typename Iterator1, typename Iterator2>
+void TestIteratorAssignment( Iterator2 j ) {
+    Iterator1 i(j);
+    ASSERT( i==j, NULL );
+    ASSERT( !(i!=j), NULL );
+    Iterator1 k;
+    k = j;
+    ASSERT( k==j, NULL );
+    ASSERT( !(k!=j), NULL );
+}
+
+template<typename Iterator, typename T>
+void TestIteratorTraits() {
+    AssertSameType( static_cast<typename Iterator::difference_type*>(0), static_cast<ptrdiff_t*>(0) ); 
+    AssertSameType( static_cast<typename Iterator::value_type*>(0), static_cast<T*>(0) ); 
+    AssertSameType( static_cast<typename Iterator::pointer*>(0), static_cast<T**>(0) ); 
+    AssertSameType( static_cast<typename Iterator::iterator_category*>(0), static_cast<std::random_access_iterator_tag*>(0) );
+    T x;
+    typename Iterator::reference xr = x;
+    typename Iterator::pointer xp = &x;
+    ASSERT( &xr==xp, NULL );
+}
+
+template<typename Vector, typename Iterator>
+void CheckConstIterator( const Vector& u, int i, const Iterator& cp ) {
+    typename Vector::const_reference pref = *cp;
+    if( pref.bar()!=i )
+        printf("ERROR for u[%ld] using const_iterator\n", long(i));
+    typename Vector::difference_type delta = cp-u.begin();
+    ASSERT( delta==i, NULL );
+    if( u[i].bar()!=i )
+        printf("ERROR for u[%ld] using subscripting\n", long(i));
+    ASSERT( u.begin()[i].bar()==i, NULL );
+}
+
+template<typename Iterator1, typename Iterator2, typename V> 
+void CheckIteratorComparison( V& u ) {
+    Iterator1 i = u.begin();
+    for( int i_count=0; i_count<100; ++i_count ) {
+        Iterator2 j = u.begin();
+        for( int j_count=0; j_count<100; ++j_count ) {
+            ASSERT( (i==j)==(i_count==j_count), NULL );
+            ASSERT( (i!=j)==(i_count!=j_count), NULL );
+            ASSERT( (i-j)==(i_count-j_count), NULL );
+            ASSERT( (i<j)==(i_count<j_count), NULL );
+            ASSERT( (i>j)==(i_count>j_count), NULL );
+            ASSERT( (i<=j)==(i_count<=j_count), NULL );
+            ASSERT( (i>=j)==(i_count>=j_count), NULL );
+            ++j;
+        }
+        ++i;
+    }
+}
+
+//! Test sequential iterators for vector type V.
+/** Also does timing. */
+template<typename V>
+void TestSequentialFor() {
+    V v;
+    v.grow_by(N);
+
+    // Check iterator 
+    tbb::tick_count t0 = tbb::tick_count::now();
+    typename V::iterator p = v.begin();
+    ASSERT( !(*p).is_const(), NULL );
+    ASSERT( !p->is_const(), NULL );
+    for( int i=0; size_t(i)<v.size(); ++i, ++p ) {
+        if( (*p).state!=Foo::DefaultInitialized )
+            printf("ERROR for v[%ld]\n", long(i));
+        typename V::reference pref = *p;
+        pref.bar() = i;
+        typename V::difference_type delta = p-v.begin();
+        ASSERT( delta==i, NULL );
+        ASSERT( -delta<=0, "difference type not signed?" );
+    }
+    tbb::tick_count t1 = tbb::tick_count::now();
+    
+    // Check const_iterator going forwards
+    const V& u = v;     
+    typename V::const_iterator cp = u.begin();
+    ASSERT( (*cp).is_const(), NULL );
+    ASSERT( cp->is_const(), NULL );
+    for( int i=0; size_t(i)<u.size(); ++i, ++cp ) {
+        CheckConstIterator(u,i,cp);
+    }
+    tbb::tick_count t2 = tbb::tick_count::now();
+    if( Verbose )
+        printf("Time for serial for:  assign time = %8.5f, check time = %8.5f\n",
+               (t1-t0).seconds(),(t2-t1).seconds());
+
+    // Now go backwards
+    cp = u.end();
+    for( int i=int(u.size()); i>0; ) {
+        --i;
+        --cp;
+        if( i>0 ) {
+            typename V::const_iterator cp_old = cp--;
+            int here = (*cp_old).bar();
+            ASSERT( here==u[i].bar(), NULL );
+            typename V::const_iterator cp_new = cp++;
+            int prev = (*cp_new).bar();
+            ASSERT( prev==u[i-1].bar(), NULL );
+        }
+        CheckConstIterator(u,i,cp);
+    }
+
+    // Now go forwards and backwards
+    cp = u.begin();
+    ptrdiff_t j = 0;
+    for( size_t i=0; i<u.size(); ++i ) {
+        CheckConstIterator(u,int(j),cp);
+        typename V::difference_type delta = i*3 % u.size();
+        if( 0<=j+delta && size_t(j+delta)<u.size() ) {
+            cp += delta;
+            j += delta; 
+        } 
+        delta = i*7 % u.size();
+        if( 0<=j-delta && size_t(j-delta)<u.size() ) {
+            if( i&1 ) 
+                cp -= delta;            // Test operator-=
+            else
+                cp = cp - delta;        // Test operator-
+            j -= delta; 
+        } 
+    }
+    
+    for( int i=0; size_t(i)<u.size(); i=(i<50?i+1:i*3) )
+        for( int j=-i; size_t(i+j)<u.size(); j=(j<50?j+1:j*5) ) {
+            ASSERT( (u.begin()+i)[j].bar()==i+j, NULL );
+            ASSERT( (v.begin()+i)[j].bar()==i+j, NULL );
+            ASSERT( (i+u.begin())[j].bar()==i+j, NULL );
+            ASSERT( (i+v.begin())[j].bar()==i+j, NULL );
+        }
+
+    CheckIteratorComparison<typename V::iterator, typename V::iterator>(v);
+    CheckIteratorComparison<typename V::iterator, typename V::const_iterator>(v);
+    CheckIteratorComparison<typename V::const_iterator, typename V::iterator>(v);
+    CheckIteratorComparison<typename V::const_iterator, typename V::const_iterator>(v);
+
+    TestIteratorAssignment<typename V::const_iterator>( u.begin() );
+    TestIteratorAssignment<typename V::const_iterator>( v.begin() );
+    TestIteratorAssignment<typename V::iterator>( v.begin() );
+
+    // Check reverse_iterator 
+    typename V::reverse_iterator rp = v.rbegin();
+    for( size_t i=v.size(); i>0; --i, ++rp ) {
+        typename V::reference pref = *rp;
+        ASSERT( size_t(pref.bar())==i-1, NULL );
+        ASSERT( rp!=v.rend(), NULL );
+    }
+    ASSERT( rp==v.rend(), NULL );
+    
+    // Check const_reverse_iterator 
+    typename V::const_reverse_iterator crp = u.rbegin();
+    for( size_t i=v.size(); i>0; --i, ++crp ) {
+        typename V::const_reference cpref = *crp;
+        ASSERT( size_t(cpref.bar())==i-1, NULL );
+        ASSERT( crp!=u.rend(), NULL );
+    }
+    ASSERT( crp==u.rend(), NULL );
+
+    TestIteratorAssignment<typename V::const_reverse_iterator>( u.rbegin() );
+    TestIteratorAssignment<typename V::reverse_iterator>( v.rbegin() );
+}
+
+static const size_t Modulus = 7;
+
+typedef tbb::concurrent_vector<Foo> MyVector;
+
+class GrowToAtLeast {
+    MyVector& my_vector;
+public:
+    void operator()( const tbb::blocked_range<size_t>& range ) const {
+        for( size_t i=range.begin(); i!=range.end(); ++i ) {
+            size_t n = my_vector.size();
+            size_t k = n==0 ? 0 : i % (2*n+1);
+            my_vector.grow_to_at_least(k+1);
+            ASSERT( my_vector.size()>=k+1, NULL );
+        }
+    }
+    GrowToAtLeast( MyVector& vector ) : my_vector(vector) {}
+};
+
+void TestConcurrentGrowToAtLeast() {
+    MyVector v;
+    for( size_t s=1; s<1000; s*=10 ) {
+        tbb::parallel_for( tbb::blocked_range<size_t>(0,1000000,100), GrowToAtLeast(v) );
+    }
+}
+
+//! Test concurrent invocations of method concurrent_vector::grow_by
+class GrowBy {
+    MyVector& my_vector;
+public:
+    void operator()( const tbb::blocked_range<int>& range ) const {
+        for( int i=range.begin(); i!=range.end(); ++i ) {
+            if( i%3 ) {
+                Foo& element = my_vector[my_vector.grow_by(1)]; 
+                element.bar() = i;
+            } else {
+                Foo f;
+                f.bar() = i;
+                size_t k = my_vector.push_back( f );
+                ASSERT( my_vector[k].bar()==i, NULL );
+            }
+        }
+    }
+    GrowBy( MyVector& vector ) : my_vector(vector) {}
+};
+
+//! Test concurrent invocations of method concurrent_vector::grow_by
+void TestConcurrentGrowBy( int nthread ) {
+    int m = 100000;
+    MyVector v;
+    tbb::parallel_for( tbb::blocked_range<int>(0,m,1000), GrowBy(v) );
+    ASSERT( v.size()==size_t(m), NULL );
+
+    // Verify that v is a permutation of 0..m
+    int inversions = 0;
+    bool* found = new bool[m];
+    memset( found, 0, m );
+    for( int i=0; i<m; ++i ) {
+        int index = v[i].bar();
+        ASSERT( !found[index], NULL );
+        found[index] = true;
+        if( i>0 )
+            inversions += v[i].bar()<v[i-1].bar();
+    }
+    for( int i=0; i<m; ++i ) {
+        ASSERT( found[i], NULL );
+        ASSERT( nthread>1 || v[i].bar()==i, "sequential execution is wrong" );
+    }
+    delete[] found;
+    if( nthread>1 && inversions<m/10 )
+        printf("WARNING: not much concurrency in TestConcurrentGrowBy\n");
+}
+
+//! Test the assignment operator
+void TestAssign() {
+    typedef tbb::concurrent_vector<FooWithAssign> vector_t;
+    for( int dst_size=1; dst_size<=128; NextSize( dst_size ) ) {
+        for( int src_size=2; src_size<=128; NextSize( src_size ) ) {
+            vector_t u;
+            u.grow_to_at_least(src_size);
+            for( int i=0; i<src_size; ++i )
+                u[i].bar() = i*i;
+            vector_t v;
+            v.grow_to_at_least(dst_size);
+            for( int i=0; i<dst_size; ++i )
+                v[i].bar() = -i;
+            v = u;
+            u.clear();
+            ASSERT( u.size()==0, NULL );
+            ASSERT( v.size()==size_t(src_size), NULL );
+            for( int i=0; i<src_size; ++i )
+                ASSERT( v[i].bar()==(i*i), NULL );
+        }
+    }    
+}
+
+//------------------------------------------------------------------------
+// Regression test for problem where on oversubscription caused
+// concurrent_vector::grow_by to run very slowly (TR#196).
+//------------------------------------------------------------------------
+
+#include "tbb/task_scheduler_init.h"
+#include <math.h>
+
+typedef unsigned long Number;
+
+static tbb::concurrent_vector<Number> Primes;
+
+class FindPrimes {
+    bool is_prime( Number val ) const {
+        int limit, factor = 3;
+        if( val<5u ) 
+            return val==2;
+        else {
+            limit = long(sqrtf(float(val))+0.5f);
+            while( factor<=limit && val % factor )
+                ++factor;
+            return factor>limit;
+        }
+    }
+public:
+    void operator()( const tbb::blocked_range<Number>& r ) const {
+        for( Number i=r.begin(); i!=r.end(); ++i ) { 
+            if( i%2 && is_prime(i) ) {
+                Primes[Primes.grow_by(1)] = i;
+            }
+        }
+    }
+};
+
+static double TimeFindPrimes( int nthread ) {
+    Primes.clear();
+    tbb::task_scheduler_init init(nthread);
+    tbb::tick_count t0 = tbb::tick_count::now();
+    tbb::parallel_for( tbb::blocked_range<Number>(0,1000000,500), FindPrimes() );
+    tbb::tick_count t1 = tbb::tick_count::now();
+    return (t1-t0).seconds();
+}
+
+static void TestFindPrimes() {
+    // Time fully subscribed run.
+    double t2 = TimeFindPrimes( tbb::task_scheduler_init::automatic );
+
+    // Time parallel run that is very likely oversubscribed.  
+    double t128 = TimeFindPrimes(128);
+
+    if( Verbose ) 
+        printf("TestFindPrimes: t2==%g t128=%g\n", t2, t128 );
+
+    // We allow the 128-thread run a little extra time to allow for thread overhead.
+    // Theoretically, following test will fail on machine with >128 processors.
+    // But that situation is not going to come up in the near future,
+    // and the generalization to fix the issue is not worth the trouble.
+    if( t128>1.10*t2 ) {
+        printf("Warning: grow_by is pathetically slow: t2==%g t128=%g\n", t2, t128);
+    } 
+}
+
+//------------------------------------------------------------------------
+// Test compatibility with STL sort.
+//------------------------------------------------------------------------
+
+#include <algorithm>
+
+void TestSort() {
+    for( int n=1; n<100; n*=3 ) {
+        tbb::concurrent_vector<int> array;
+        array.grow_by( n );
+        for( int i=0; i<n; ++i )
+            array[i] = (i*7)%n;
+        std::sort( array.begin(), array.end() );
+        for( int i=0; i<n; ++i )
+            ASSERT( array[i]==i, NULL );
+    }
+}
+
+//------------------------------------------------------------------------
+
+//! Test driver
+int main( int argc, char* argv[] ) {
+    // Test requires at least one thread.
+    MinThread = 1;
+    ParseCommandLine( argc, argv );
+    if( MinThread<1 ) {
+        printf("ERROR: MinThread=%d, but must be at least 1\n",MinThread);
+    }
+
+    TestIteratorTraits<tbb::concurrent_vector<Foo>::iterator,Foo>();
+    TestIteratorTraits<tbb::concurrent_vector<Foo>::const_iterator,const Foo>();
+    TestSequentialFor<tbb::concurrent_vector<Foo> > ();
+    TestResizeAndCopy();
+    TestAssign();
+    TestCapacity();
+    for( int nthread=MinThread; nthread<=MaxThread; ++nthread ) {
+        tbb::task_scheduler_init init( nthread );
+        TestParallelFor( nthread );
+        TestConcurrentGrowToAtLeast();
+        TestConcurrentGrowBy( nthread );
+    }
+    TestFindPrimes();
+    TestSort();
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_halt.cpp b/src/test/test_halt.cpp
new file mode 100644
index 0000000..7e20c0a
--- /dev/null
+++ b/src/test/test_halt.cpp
@@ -0,0 +1,123 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include <cstdio>
+#include <cstdlib>
+#include <cassert>
+#include <utility>
+#include "tbb/task.h"
+#include "tbb/task_scheduler_init.h"
+#include "tbb/tick_count.h"
+#include "tbb/parallel_for.h"
+#include "tbb/blocked_range.h"
+#include "tbb/mutex.h"
+#include "tbb/spin_mutex.h"
+#include "tbb/queuing_mutex.h"
+#include "harness.h"
+
+using namespace std;
+using namespace tbb;
+
+///////////////////// Parallel methods ////////////////////////
+
+// *** Serial shared by mutexes *** //
+int SharedI = 1, SharedN;
+template<typename M>
+class SharedSerialFibBody {
+    M &mutex;
+public:
+    SharedSerialFibBody( M &m ) : mutex( m ) {}
+    //! main loop
+    void operator()( const blocked_range<int>& range ) const {
+        for(;;) {
+            typename M::scoped_lock lock( mutex );
+            if(SharedI >= SharedN) break;
+            volatile double sum = 7.3; sum *= 11.17;
+            ++SharedI;
+        }
+    }
+};
+
+//! Root function
+template<class M>
+void SharedSerialFib(int n)
+{
+    SharedI = 1; SharedN = n; M mutex;
+    parallel_for( blocked_range<int>(0,4,1), SharedSerialFibBody<M>( mutex ) );
+}
+
+/////////////////////////// Main ////////////////////////////////////////////////////
+
+double Tsum = 0; int Tnum = 0;
+
+typedef void (*MeasureFunc)(int);
+//! Measure ticks count in loop [2..n]
+void Measure(const char *name, MeasureFunc func, int n)
+{
+    tick_count t0;
+    tick_count::interval_t T;
+    if( Verbose )
+        printf(name);
+    t0 = tick_count::now();
+    for(int number = 2; number <= n; number++)
+        func(number);
+    T = tick_count::now() - t0;
+    double avg = Tnum? Tsum/Tnum : 1;
+    if (avg == 0.0) avg = 1;
+    if(avg * 100 < T.seconds()) {
+        printf("Warning: halting detected (%g sec, av: %g)\n", T.seconds(), avg);
+        ASSERT(avg * 1000 > T.seconds(), "Too long halting period");
+    } else {
+        Tsum += T.seconds(); Tnum++;
+    }
+    if( Verbose )
+        printf("\t- in %f msec\n", T.seconds()*1000);
+}
+
+//! program entry
+int main( int argc, char* argv[] ) {
+    MaxThread = 8; MinThread = 2;
+    ParseCommandLine( argc, argv );
+    int NumbersCount = 100;
+    short recycle = 100;
+
+    do {
+        for(int threads = 2; threads <= MaxThread; threads++)
+        {
+            task_scheduler_init scheduler_init(threads);
+            if( Verbose )
+                printf("Threads number is %d\t", threads);
+            Measure("Shared serial (wrapper mutex)\t", SharedSerialFib<mutex>, NumbersCount);
+            //sum = Measure("Shared serial (spin_mutex)", SharedSerialFib<tbb::spin_mutex>, NumbersCount);
+            //sum = Measure("Shared serial (queuing_mutex)", SharedSerialFib<tbb::queuing_mutex>, NumbersCount);
+        }
+    } while(--recycle);
+    if(!Verbose)
+        printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_handle_perror.cpp b/src/test/test_handle_perror.cpp
new file mode 100644
index 0000000..5abf6bc
--- /dev/null
+++ b/src/test/test_handle_perror.cpp
@@ -0,0 +1,56 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Program for basic correctness of handle_perror, which is internal
+// to the TBB shared library.
+
+#include <cerrno>
+#include <stdexcept>
+#include "tbb/tbb_misc.h"
+#include "harness.h"
+
+static void TestHandlePerror() {
+    bool caught = false;
+    try {
+	tbb::internal::handle_perror( EAGAIN, "apple" );
+    } catch( std::runtime_error& e ) {
+	if( Verbose )
+	    printf("caught runtime_exception('%s')\n",e.what());
+ 	ASSERT( memcmp(e.what(),"apple: ",7)==0, NULL );
+        ASSERT( strstr(e.what(),"unavailable")!=NULL, "bad error message?" ); 
+	caught = true;
+    }
+    ASSERT(caught,NULL);
+}
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine( argc, argv );
+    TestHandlePerror();
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_inits_loop.cpp b/src/test/test_inits_loop.cpp
new file mode 100644
index 0000000..25c1d2d
--- /dev/null
+++ b/src/test/test_inits_loop.cpp
@@ -0,0 +1,93 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "harness.h"
+#include <cstdlib>
+#include <cstdio>
+#include "tbb/task_scheduler_init.h"
+
+#if __APPLE__
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+
+bool exec_test(const char *self) {
+    int status = 1;
+    pid_t p = fork();
+    if(p < 0) {
+        printf("fork error: errno=%d: %s\n", errno, strerror(errno));
+        return true;
+    }
+    else if(p) { // parent
+        if(waitpid(p, &status, 0) != p) {
+            printf("wait error: errno=%d: %s\n", errno, strerror(errno));
+            return true;
+        }
+        if(WIFEXITED(status)) {
+            if(!WEXITSTATUS(status)) return false; // ok
+            else printf("child has exited with return code 0x%x\n", WEXITSTATUS(status));
+        } else {
+            printf("child error 0x%x:%s%s ", status, WIFSIGNALED(status)?" signalled":"",
+                WIFSTOPPED(status)?" stopped":"");
+            if(WIFSIGNALED(status))
+                printf("%s%s", sys_siglist[WTERMSIG(status)], WCOREDUMP(status)?" core dumped":"");
+            if(WIFSTOPPED(status))
+                printf("with %d stop-code", WSTOPSIG(status));
+            printf("\n");
+        }
+    }
+    else { // child
+        // reproduces error much often
+        execl(self, self, "0", NULL);
+        printf("exec fails %s: %d: %s\n", self, errno, strerror(errno));
+        exit(2);
+    }
+    return true;
+}
+#endif
+
+int main( int argc, char * argv[] ) {
+    MinThread = 3000;
+    ParseCommandLine( argc, argv );
+    if( MinThread <= 0 ) {
+        tbb::task_scheduler_init init( 2 ); // even number reuired for an error
+    } else {
+#if __APPLE__
+        for(int i = 0; i<MinThread; i++)
+            if(exec_test(argv[0])) {
+                printf("ERROR: execution fails at %d-th iteration!\n", i);
+                exit(1);
+            }
+
+#endif
+        printf("done\n");
+    }
+    return 0;
+}
diff --git a/src/test/test_malloc_compliance.cpp b/src/test/test_malloc_compliance.cpp
new file mode 100644
index 0000000..2ab6fd1
--- /dev/null
+++ b/src/test/test_malloc_compliance.cpp
@@ -0,0 +1,724 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#define MByte 1048576 //1MB
+
+#if _WIN32 || _WIN64
+#undef _WIN32_WINNT
+#define _WIN32_WINNT 0x0500
+#include <windows.h>
+void limitMem( int limit )
+{
+    JOBOBJECT_EXTENDED_LIMIT_INFORMATION jobInfo;
+    jobInfo.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_PROCESS_MEMORY;
+    jobInfo.ProcessMemoryLimit = limit*MByte;
+    HANDLE hJob = CreateJobObject(NULL, NULL);
+    AssignProcessToJobObject(hJob, GetCurrentProcess());
+    SetInformationJobObject(hJob, JobObjectExtendedLimitInformation, &jobInfo, sizeof(jobInfo));
+}
+#else
+#include <sys/resource.h>
+void limitMem( int limit )
+{
+    rlimit rlim;
+    rlim.rlim_cur = limit*MByte;
+    rlim.rlim_max = limit*MByte;
+    setrlimit(RLIMIT_AS,&rlim);
+}
+#endif 
+
+#include <time.h>
+#include <errno.h>
+#include <vector>
+#include "tbb/scalable_allocator.h"
+
+#include "tbb/blocked_range.h"
+#include "test/harness.h"
+
+#pragma pack(1)
+
+#define COUNT_ELEM_CALLOC 2
+#define COUNT_TESTS 1000
+
+#define COUNT_ELEM 50000
+#define MAX 1000
+#define MByte 1048576 //1MB
+#define APPROACHES 100
+#define COUNTEXPERIMENT 10000
+#define MB 25
+#define MB_MAX 500
+
+const char strError[]="failed";
+const char strOk[]="done";
+
+typedef unsigned int UINT;
+typedef unsigned char UCHAR;
+typedef unsigned long DWORD;
+typedef unsigned char BYTE;
+
+
+typedef void* TestMalloc(size_t size);
+typedef void* TestCalloc(size_t num, size_t size);
+typedef void* TestRealloc(void* memblock, size_t size);
+typedef void  TestFree(void* memblock);
+
+TestMalloc* Tmalloc;
+TestCalloc* Tcalloc;
+TestRealloc* Trealloc;
+TestFree* Tfree;
+
+
+using namespace tbb;
+
+
+
+struct MemStruct
+{
+  void* Pointer;
+  UINT Size;
+};
+
+class CMemTest
+{
+  UINT CountErrors;
+public:
+  bool FullLog;
+
+  CMemTest();
+  CMemTest(bool verb);
+  void ReallocParam(); // realloc with different parameters
+  void InvariantDataRealloc(); //realloc does not change data
+  void NULLReturn(UINT MinSize, UINT MaxSize); // NULL pointer + check errno
+  void UniquePointer(); // unique pointer - check with padding
+  void AddrArifm(); // unique pointer - check with pointer arithmetic
+  void Free_NULL(); // 
+  void Zerofilling(); // check if arrays are zero-filled
+  void RunAllTests();
+  ~CMemTest() {};
+};
+
+int argC;
+char** argV;
+
+struct RoundRobin {
+    const long number_of_threads;
+	mutable CMemTest test;
+    RoundRobin( long p ) : number_of_threads(p) ,test() {}
+
+    void operator()( const tbb::blocked_range<long> &r ) const 
+    {
+        test.FullLog=Verbose;
+        test.RunAllTests();
+    }
+};
+
+
+
+int main(int argc, char* argv[])
+{
+	argC=argc;
+	argV=argv;
+	MaxThread = MinThread = 1;
+  Tmalloc=scalable_malloc;
+  Trealloc=scalable_realloc;
+  Tcalloc=scalable_calloc;
+  Tfree=scalable_free;
+  // check if we were called to test standard behavior
+  for (int i=1; i< argc; i++) {
+    if (strcmp((char*)*(argv+i),"-s")==0)
+    {
+      argC--;
+      Tmalloc=malloc;
+      Trealloc=realloc;
+      Tcalloc=calloc;
+      Tfree=free;
+      break;
+    }
+  }
+  ParseCommandLine( argC, argV );
+  limitMem( 500*MaxThread );
+  //-------------------------------------
+   for( int p=MaxThread; p>=MinThread; --p ) {
+        limitMem( 500*p );
+        if( Verbose ) printf("testing with %d threads\n", p );
+        NativeParallelFor( tbb::blocked_range<long>(0,p,1), RoundRobin(p) );
+    }
+    printf("done\n");
+  return 0;
+}
+
+struct TestStruct
+{
+  DWORD field1:2;
+  DWORD field2:6;
+  double field3;
+  UCHAR field4[100];
+  TestStruct* field5;
+//  std::string field6;
+  std::vector<int> field7;
+  double field8;
+  bool IzZero()
+  {
+    UCHAR *tmp;
+    tmp=(UCHAR*)this;
+    bool b=true;
+    for (int i=0; i<sizeof(TestStruct); i++)
+      if (tmp[i]) b=false;
+    return b;
+  }
+};
+
+
+CMemTest::CMemTest()
+{
+  time_t zzz;
+  srand((UINT)time(&zzz));
+  FullLog=false;
+  UINT i=rand()%100;
+}
+CMemTest::CMemTest(bool verb)
+{
+  time_t zzz;
+  srand((UINT)time(&zzz));
+  FullLog=verb;
+  UINT i=rand()%100;
+}
+
+void CMemTest::InvariantDataRealloc()
+{
+  UINT size, sizeMin;
+  CountErrors=0;
+  if (FullLog) printf("\nInvariant data by realloc....");
+  UCHAR* pchar;
+  sizeMin=size=rand()%MAX+10;
+  pchar=(UCHAR*)Trealloc(NULL,size);
+  for (UINT k=0; k<size; k++)
+    pchar[k]=(UCHAR)k%255+1;
+  for (UINT i=0; i<COUNTEXPERIMENT; i++)
+  {
+    size=rand()%MAX+10;
+    sizeMin=size<sizeMin ? size : sizeMin;
+    pchar=(UCHAR*)Trealloc(pchar,size);
+    for (UINT k=0; k<sizeMin; k++)
+      if (pchar[k] != (UCHAR)k%255+1)
+      {
+        CountErrors++;
+        if (FullLog)
+        {
+          printf("stand '%c', must stand '%c'\n",pchar[k],(UCHAR)k%255+1);
+          printf("error: data changed (at %d, SizeMin=%d)\n",k,sizeMin);
+        }
+      }
+  }
+  Trealloc(pchar,0);
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  //printf("end check\n");
+}
+void CMemTest::ReallocParam()
+{
+  TestStruct *TSold, *TSnew;
+  CountErrors=0;
+  UINT CountTry=0;
+  if (FullLog) printf("\nrealloc with different params....");
+  //
+  for (UINT i=0; i<COUNTEXPERIMENT; i++)
+  {
+    TSnew=(TestStruct*)Tmalloc(sizeof(TestStruct)); // allocate memory
+    TSold=TSnew;  // store address
+    Tfree(TSnew); // free memory
+    TSnew=(TestStruct*)Tmalloc(sizeof(TestStruct));
+    while (TSnew != TSold)
+    {
+      CountTry++;
+      TSold=TSnew;
+      Tfree(TSnew);
+      TSnew=(TestStruct*)Tmalloc(sizeof(TestStruct));
+    }
+    TSold=TSnew;
+    Trealloc(TSnew,0); //realloc should work as free
+    TSnew=NULL;
+    TSnew=(TestStruct*)Trealloc(NULL,sizeof(TestStruct)); //realloc should work as malloc
+    if (TSold == TSnew)
+    {
+/*     if (FullLog)
+      {
+        printf("CountTry: %d\n", CountTry);
+        printf("realloc ok\n");
+      }
+*/
+    }
+    else
+    {
+      CountErrors++;
+      if (FullLog) printf("realloc error");
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+}
+
+void CMemTest::AddrArifm()
+{
+  int* MasPointer[COUNT_ELEM];
+  UINT MasCountElem[COUNT_ELEM];
+  DWORD count;
+  int* tmpAddr;
+  UINT j;
+  UINT CountZero=0;
+  CountErrors=0;
+  if (FullLog) printf("\nUnique pointer using Address arithmetics\n");
+  if (FullLog) printf("malloc....");
+  for (UINT i=0; i<COUNT_ELEM; i++)
+  {
+    count=rand()%MAX;
+    if (count == 0)
+      CountZero++;
+    tmpAddr=(int*)Tmalloc(count*sizeof(int));
+    for (j=0; j<i; j++) // find a place for the new address
+    {
+      if (*(MasPointer+j)>tmpAddr) break;
+    }
+    for (UINT k=i; k>j; k--)
+    {
+      MasPointer[k]=MasPointer[k-1];
+      MasCountElem[k]=MasCountElem[k-1];
+    }
+    MasPointer[j]=tmpAddr;
+    MasCountElem[j]=count*sizeof(int);/**/
+  }
+  if (FullLog) printf("Count zero: %d\n",CountZero);
+  for (int i=0; i<COUNT_ELEM-1; i++)
+  {
+    if ((DWORD)MasPointer[i]+MasCountElem[i] > (DWORD)MasPointer[i+1])
+    {
+      CountErrors++;
+//      if (FullLog) printf("intersection detect at 0x%x between %d element(int) and 0x%x\n"
+//      ,(MasPointer+i),MasCountElem[i],(MasPointer+i+1));
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  //----------------------------------------------------------------
+  CountErrors=0;
+  if (FullLog) printf("realloc....");
+  for (UINT i=0; i<COUNT_ELEM; i++)
+  {
+    count=MasCountElem[i]*2;
+    if (count == 0)
+      CountZero++;
+    tmpAddr=(int*)Trealloc(MasPointer[i],count);
+    for (j=0; j<i; j++) // find a place for the new address
+    {
+      if (*(MasPointer+j)>tmpAddr) break;
+    }
+    for (UINT k=i; k>j; k--)
+    {
+      MasPointer[k]=MasPointer[k-1];
+      MasCountElem[k]=MasCountElem[k-1];
+    }
+    MasPointer[j]=tmpAddr;
+    MasCountElem[j]=count;//*sizeof(int);/**/
+  }
+  if (FullLog) printf("Count zero: %d\n",CountZero);
+
+  // now we have a sorted array of pointers
+  for (int i=0; i<COUNT_ELEM-1; i++)
+  {
+    if ((DWORD)MasPointer[i]+MasCountElem[i] > (DWORD)MasPointer[i+1])
+    {
+      CountErrors++;
+//      if (FullLog) printf("intersection detect at 0x%x between %d element(int) and 0x%x\n"
+//      ,(MasPointer+i),MasCountElem[i],(MasPointer+i+1));
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  for (int i=0; i<COUNT_ELEM; i++)
+  {
+    Tfree(MasPointer[i]);
+  }
+  //-------------------------------------------
+  CountErrors=0;
+  if (FullLog) printf("calloc....");
+  for (UINT i=0; i<COUNT_ELEM; i++)
+  {
+    count=rand()%MAX;
+    if (count == 0)
+      CountZero++;
+    tmpAddr=(int*)Tcalloc(count*sizeof(int),2);
+    for (j=0; j<i; j++) // find a place for the new address
+    {
+      if (*(MasPointer+j)>tmpAddr) break;
+    }
+    for (UINT k=i; k>j; k--)
+    {
+      MasPointer[k]=MasPointer[k-1];
+      MasCountElem[k]=MasCountElem[k-1];
+    }
+    MasPointer[j]=tmpAddr;
+    MasCountElem[j]=count*sizeof(int)*2;/**/
+  }
+  if (FullLog) printf("Count zero: %d\n",CountZero);
+
+  // now we have a sorted array of pointers
+  for (int i=0; i<COUNT_ELEM-1; i++)
+  {
+    if ((DWORD)MasPointer[i]+MasCountElem[i] > (DWORD)MasPointer[i+1])
+    {
+      CountErrors++;
+//      if (FullLog) printf("intersection detect at 0x%x between %d element(int) and 0x%x\n"
+//      ,(MasPointer+i),MasCountElem[i],(MasPointer+i+1));
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  for (int i=0; i<COUNT_ELEM; i++)
+  {
+    Tfree(MasPointer[i]);
+  }
+}
+
+void CMemTest::Zerofilling()
+{
+  TestStruct* TSMas;
+  int CountElement;
+  CountErrors=0;
+  if (FullLog) printf("\nzeroings elements of array....");
+  //test struct
+  for (int i=0; i<COUNTEXPERIMENT; i++)
+  {
+    CountElement=rand()%MAX;
+    TSMas=(TestStruct*)Tcalloc(CountElement,sizeof(TestStruct));
+    for (int j=0; j<CountElement; j++)
+    {
+      if (!TSMas->IzZero())
+      {
+        CountErrors++;
+        if (FullLog) printf("detect nonzero element at TestStruct\n");
+      }
+    }
+    Tfree(TSMas);
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+}
+
+
+
+void CMemTest::NULLReturn(UINT MinSize, UINT MaxSize)
+{
+  std::vector<MemStruct> PointerList;
+  MemStruct MStruct;
+  void *tmp=Tmalloc(MByte);
+  CountErrors=0;
+  int CountNULL;
+  if (FullLog) printf("\nNULL return & check errno:\n");
+  UINT i=0;
+  UINT Size;
+  BYTE *zer;
+  /* //----------------------------------------------
+  float mb=0;
+  UINT mbInd=0;
+  if (FullLog)
+  {
+    printf("0");
+    for (i=0; i<MB_MAX/MB; i++)
+      printf(" ");
+    printf("500Mb");
+    for (i=0; i<MB_MAX/MB-4; i++)
+      printf(" ");
+    printf("1Gb\n");
+  }
+  */ //----------------------------------------------
+  while(tmp != NULL)
+  {
+    Size=rand()%(MaxSize-MinSize)+MinSize;
+  /* //----------------------------------------------
+    if (FullLog)
+    {
+      mb+=((float)Size)/MByte;
+      if (mb > mbInd)
+      {
+        printf(".");
+        mbInd+=MB;
+      }
+    }
+  */ //----------------------------------------------
+    tmp=Tmalloc(Size);
+    if (tmp != NULL)
+    {
+      zer=(BYTE*)tmp;
+      for (UINT k=0; k<Size; k++)
+        zer[k]=0;
+      MStruct.Pointer=tmp;
+      MStruct.Size=Size;
+      PointerList.push_back(MStruct);
+    }
+    i++;
+  }
+  if (FullLog) printf("\n");
+
+  // preparation complete, now running tests
+  // malloc
+  if (FullLog) printf("malloc....");
+  CountNULL = 0;
+  while (CountNULL==0)
+   for (int j=0; j<COUNT_TESTS; j++)
+  {
+    Size=rand()%(MaxSize-MinSize)+MinSize;
+    errno = 0;
+    tmp=Tmalloc(Size);
+    if (tmp == NULL)
+    {
+      CountNULL++;
+      if (errno != ENOMEM) {
+        CountErrors++;
+        if (FullLog) printf("NULL returned, error: errno != ENOMEM\n");
+      }
+    }
+    else
+    {
+      if (errno != 0) {
+        CountErrors++;
+        if (FullLog) printf("valid pointer returned, error: errno not kept\n");
+      }      
+      zer=(BYTE*)tmp;
+      for (UINT k=0; k<Size; k++)
+        zer[k]=0;
+      MStruct.Pointer=tmp;
+      MStruct.Size=Size;
+      PointerList.push_back(MStruct);
+      i++;
+    }
+  }
+  if (FullLog) printf("end malloc\n");
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  CountErrors=0;
+  //calloc
+  if (FullLog) printf("calloc....");
+  CountNULL = 0;
+  while (CountNULL==0)
+   for (int j=0; j<COUNT_TESTS; j++)
+  {
+    Size=rand()%(MaxSize-MinSize)+MinSize;
+    errno = 0;
+    tmp=Tcalloc(COUNT_ELEM_CALLOC,Size);
+    if (tmp == NULL)
+    {
+      CountNULL++;
+      if (errno != ENOMEM) {
+        CountErrors++;
+        if (FullLog) printf("NULL returned, error: errno != ENOMEM\n");
+      }
+    }
+    else
+    {
+      if (errno != 0) {
+        CountErrors++;
+        if (FullLog) printf("valid pointer returned, error: errno not kept\n");
+      }      
+      MStruct.Pointer=tmp;
+      MStruct.Size=Size;
+      PointerList.push_back(MStruct);
+      i++;
+    }
+  }
+  if (FullLog) printf("end calloc\n");
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  CountErrors=0;
+  if (FullLog) printf("realloc....");
+  CountNULL = 0;
+  while (CountNULL==0)
+   for (i=0;i<COUNT_TESTS && i<PointerList.size();i++)
+  {
+    errno = 0;
+    tmp=Trealloc(PointerList[i].Pointer,PointerList[i].Size*2);
+    if (PointerList[i].Pointer == tmp) // the same place
+    {
+      if (errno != 0) {
+        CountErrors++;
+        if (FullLog) printf("valid pointer returned, error: errno not kept\n");
+      }      
+      PointerList[i].Size *= 2;
+    }
+    else if (tmp != PointerList[i].Pointer && tmp != NULL) // another place
+    {
+      if (errno != 0) {
+        CountErrors++;
+        if (FullLog) printf("valid pointer returned, error: errno not kept\n");
+      }      
+      PointerList[i].Pointer = tmp;
+      PointerList[i].Size *= 2;
+    }
+    else if (tmp == NULL)
+    {
+      CountNULL++;
+      if (errno != ENOMEM)
+      {
+        CountErrors++;
+        if (FullLog) printf("NULL returned, error: errno != ENOMEM\n");
+      }
+      // check data integrity
+      zer=(BYTE*)PointerList[i].Pointer;
+      for (UINT k=0; k<PointerList[i].Size; k++)
+        if (zer[k] != 0)
+        {
+          CountErrors++;
+          if (FullLog) printf("NULL returned, error: data changed\n");
+        }
+    }
+  }
+  if (FullLog) printf("realloc end\n");
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  for (UINT i=0; i<PointerList.size(); i++)
+  {
+    Tfree(PointerList[i].Pointer);
+  }
+}
+
+
+void CMemTest::UniquePointer()
+{
+  CountErrors=0;
+  int* MasPointer[COUNT_ELEM];
+  UINT MasCountElem[COUNT_ELEM];
+  if (FullLog) printf("\nUnique pointer using 0\n");
+  //
+  //-------------------------------------------------------
+  //malloc
+  for (int i=0; i<COUNT_ELEM; i++)
+  {
+    MasCountElem[i]=rand()%MAX;
+    MasPointer[i]=(int*)Tmalloc(MasCountElem[i]*sizeof(int));
+    for (UINT j=0; j<MasCountElem[i]; j++)
+      *(MasPointer[i]+j)=0;
+  }
+  if (FullLog) printf("malloc....");
+  for (UINT i=0; i<COUNT_ELEM-1; i++)
+  {
+    for (UINT j=0; j<MasCountElem[i]; j++)
+    {
+      if (*(*(MasPointer+i)+j)!=0)
+      {
+        CountErrors++;
+//        if (FullLog) printf("error, detect 1 with 0x%x\n",(*(MasPointer+i)+j));
+      }
+      *(*(MasPointer+i)+j)+=1;
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  //----------------------------------------------------------
+  //calloc
+  for (int i=0; i<COUNT_ELEM; i++)
+    Tfree(MasPointer[i]);
+  CountErrors=0;
+  for (long i=0; i<COUNT_ELEM; i++)
+  {
+    MasPointer[i]=(int*)Tcalloc(MasCountElem[i]*sizeof(int),2);
+  }
+  if (FullLog) printf("calloc....");
+  for (int i=0; i<COUNT_ELEM-1; i++)
+  {
+    for (UINT j=0; j<*(MasCountElem+i); j++)
+    {
+      if (*(*(MasPointer+i)+j)!=0)
+      {
+        CountErrors++;
+//        if (FullLog) printf("error, detect 1 with 0x%x\n",(*(MasPointer+i)+j));
+      }
+      *(*(MasPointer+i)+j)+=1;
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  //---------------------------------------------------------
+  //realloc
+  CountErrors=0;
+  for (UINT i=0; i<COUNT_ELEM; i++)
+  {
+    MasCountElem[i]*=2;
+    *(MasPointer+i)=(int*)Trealloc(*(MasPointer+i),MasCountElem[i]*sizeof(int));
+    for (UINT j=0; j<MasCountElem[i]; j++)
+      *(*(MasPointer+i)+j)=0;
+  }
+  if (FullLog) printf("realloc....");
+  for (int i=0; i<COUNT_ELEM-1; i++)
+  {
+    for (UINT j=0; j<*(MasCountElem+i); j++)
+    {
+      if (*(*(MasPointer+i)+j)!=0)
+      {
+        CountErrors++;
+      }
+      *(*(MasPointer+i)+j)+=1;
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+  for (int i=0; i<COUNT_ELEM; i++)
+    Tfree(MasPointer[i]);
+}
+
+void CMemTest::Free_NULL()
+{
+  CountErrors=0;
+  if (FullLog) printf("\ncall free with parameter NULL....");
+  for (UINT i=0; i<COUNTEXPERIMENT; i++)
+  {
+    Tfree(NULL);
+    if (errno != 0)
+    {
+      CountErrors++;
+      if (FullLog) printf("error is found by a call free with parameter NULL\n");
+    }
+  }
+  if (CountErrors) printf("%s\n",strError);
+  else if (FullLog) printf("%s\n",strOk);
+}
+
+void CMemTest::RunAllTests()
+{
+  Zerofilling();
+  Free_NULL();
+  InvariantDataRealloc();
+  ReallocParam();
+#if __APPLE__
+  printf("Warning: skipping some tests (known issue on Mac OS* X)\n");
+  return;
+#else
+  UniquePointer();
+  AddrArifm();
+  NULLReturn(1*MByte,100*MByte);
+#endif
+  if (FullLog) printf("All tests ended\nclearing memory....");
+}
diff --git a/src/test/test_malloc_pure_c.c b/src/test/test_malloc_pure_c.c
new file mode 100644
index 0000000..d887d91
--- /dev/null
+++ b/src/test/test_malloc_pure_c.c
@@ -0,0 +1,75 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#ifdef __cplusplus
+#error For testing purpose, this file should be compiled with a C compiler, not C++
+#endif /*__cplusplus */
+
+#include "tbb/scalable_allocator.h"
+#include <stdio.h>
+#include <assert.h>
+
+/*
+ *  The test is to check if the scalable_allocator.h and its functions
+ *  can be used from pure C programs; also some regression checks are done
+ */
+
+int main(void)
+{
+    size_t i, j;
+    void *p1=NULL, *p2=NULL;
+    for( i=0; i<=1<<16; ++i)
+        scalable_free(scalable_malloc(i));
+    for( i=1024*1024; ; i/=2 )
+    {
+        scalable_free(p1);
+        p1 = scalable_realloc(p2, i);
+        p2 = scalable_calloc(i, 32);
+        if (p2) {
+            if (i<sizeof(size_t)) {
+                for (j=0; j<i; j++)
+                    assert(0==*((char*)p2+j));
+            } else {
+                for (j=0; j<i; j+=sizeof(size_t))
+                    assert(0==*((size_t*)p2+j));
+            }
+        }
+        scalable_free(p2);
+        p2 = scalable_malloc(i);
+        if (i==0) break;
+    }
+    for( i=1; i<1024*1024; i*=2 )
+    {
+        scalable_free(p1);
+        p1 = scalable_realloc(p2, i);
+        p2 = scalable_malloc(i);
+    }
+    scalable_free(p2);
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_model_plugin.cpp b/src/test/test_model_plugin.cpp
new file mode 100644
index 0000000..afeaa9c
--- /dev/null
+++ b/src/test/test_model_plugin.cpp
@@ -0,0 +1,171 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#if _WIN32 || _WIN64
+#include <windows.h>
+#else
+#include <dlfcn.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdexcept>
+
+#ifdef _USRDLL
+#include "tbb/task_scheduler_init.h"
+
+class CModel {
+public:
+  CModel(void) {};
+  static tbb::task_scheduler_init tbb_init;
+
+  void init_and_terminate( int );
+};
+
+tbb::task_scheduler_init CModel::tbb_init(1);
+
+//! Test that task::initialize and task::terminate work when doing nothing else.
+/** maxthread is treated as the "maximum" number of worker threads. */
+void CModel::init_and_terminate( int maxthread ) {
+    for( int i=0; i<200; ++i ) {
+        switch( i&3 ) {
+            default: {
+                tbb::task_scheduler_init init( rand() % maxthread + 1 );
+                break;
+            }
+            case 0: {
+                tbb::task_scheduler_init init;
+                break;
+            }
+            case 1: {
+                tbb::task_scheduler_init init( tbb::task_scheduler_init::automatic );
+                break;
+            }
+            case 2: {
+                tbb::task_scheduler_init init( tbb::task_scheduler_init::deferred );
+                init.initialize( rand() % maxthread + 1 );
+                init.terminate();
+                break;
+            }
+        }
+    }
+}
+
+extern "C"
+#if _WIN32 || _WIN64
+__declspec(dllexport)
+#endif
+void plugin_call(int maxthread)
+{
+    srand(2);
+    try {
+        CModel model;
+        model.init_and_terminate(maxthread);
+    } catch( std::runtime_error& error ) {
+        fprintf(stderr, "ERROR: %s\n", error.what());
+    }
+}
+
+#else /* _USRDLL undefined */
+
+#include "harness.h"
+
+extern "C" void plugin_call(int);
+
+void report_error_in(char* function_name)
+{
+#if _WIN32 || _WIN64
+    char* message;
+    int code = GetLastError();
+
+    FormatMessage(
+        FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+        NULL, code,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+        (char*)&message, 0, NULL );
+#else
+    char* message = dlerror();
+    int code = 0;
+#endif
+    fprintf(stderr,
+        "%s failed with error %d: %s\n",
+        function_name, code, message);
+
+#if _WIN32 || _WIN64
+    LocalFree(message);
+#endif
+}
+
+typedef void (*PLUGIN_CALL)(int);
+
+int main(int argc, char* argv[])
+{
+  ParseCommandLine( argc, argv );
+
+  PLUGIN_CALL plugin_call;
+  
+#if _WIN32 || _WIN64
+  HMODULE hLib = LoadLibrary("test_model_plugin.dll");
+  if (hLib==NULL){
+    report_error_in("LoadLibrary");
+    return -1;
+  }
+  plugin_call = (PLUGIN_CALL) GetProcAddress(hLib, "plugin_call");
+  if (plugin_call==NULL) {
+    report_error_in("GetProcAddress");
+    return -1;
+  }
+#else
+#if __APPLE__
+  char *dllname = "test_model_plugin.dylib";
+#else
+  char *dllname = "test_model_plugin.so";
+#endif
+  void* hLib = dlopen( dllname, RTLD_LAZY ); 
+  if (hLib==NULL){
+    report_error_in("dlopen");
+    return -1;
+  }
+  plugin_call = PLUGIN_CALL (dlsym(hLib, "plugin_call"));
+  if (plugin_call==NULL) {
+    report_error_in("dlsym");
+    return -1;
+  }
+#endif
+
+  plugin_call(MaxThread);
+
+#if _WIN32 || _WIN64
+  FreeLibrary(hLib);
+#else
+  dlclose(hLib);
+#endif
+  printf("done\n");
+  return 0;
+}
+
+#endif
diff --git a/src/test/test_mutex.cpp b/src/test/test_mutex.cpp
new file mode 100644
index 0000000..b5aecf1
--- /dev/null
+++ b/src/test/test_mutex.cpp
@@ -0,0 +1,294 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+//------------------------------------------------------------------------
+// Test TBB mutexes when used with parallel_for.h
+//
+// Usage: test_Mutex.exe [-v] nthread
+//
+// The -v option causes timing information to be printed.
+//
+// Compile with _OPENMP and -openmp
+//------------------------------------------------------------------------
+#include "tbb/spin_mutex.h"
+#include "tbb/spin_rw_mutex.h"
+#include "tbb/queuing_rw_mutex.h"
+#include "tbb/queuing_mutex.h"
+#include "tbb/mutex.h"
+#include "tbb/parallel_for.h"
+#include "tbb/blocked_range.h"
+#include "tbb/tick_count.h"
+#include "tbb/atomic.h"
+#include "harness.h"
+#include <cstdlib>
+#include <cstdio>
+#if _OPENMP
+#include "test/OpenMP_Mutex.h"
+#endif /* _OPENMP */
+
+
+#if __linux__
+#define STD std
+#else
+#define STD   /* Cater to broken Windows compilers that are missing "std". */
+#endif /* __linux__ */
+
+// This test deliberately avoids a "using tbb" statement,
+// so that the error of putting types in the wrong namespace will be caught.
+
+template<typename M>
+struct Counter {
+    typedef M mutex_type;
+    M mutex;
+    volatile long value;
+};
+
+//! Function object for use with parallel_for.h.
+template<typename C>
+struct AddOne {
+    C& counter;
+    /** Increments counter once for each iteration in the iteration space. */
+    void operator()( tbb::blocked_range<size_t>& range ) const {
+        for( size_t i=range.begin(); i!=range.end(); ++i ) {
+            if( i&1 ) {
+                // Try implicit acquire and explicit release
+                typename C::mutex_type::scoped_lock lock(counter.mutex);
+                counter.value = counter.value+1;
+                lock.release();
+            } else {
+                // Try explicit acquire and implicit release
+                typename C::mutex_type::scoped_lock lock;
+                lock.acquire(counter.mutex);
+                counter.value = counter.value+1;
+            }
+        }
+    }
+    AddOne( C& counter_ ) : counter(counter_) {}
+};
+
+//! Generic test of a TBB mutex type M.
+/** Does not test features specific to reader-writer locks. */
+template<typename M>
+void Test( const char * name ) {
+    if( Verbose ) {
+        printf("%s time = ",name);
+        fflush(stdout);
+    }
+    Counter<M> counter;
+    counter.value = 0;
+    const int n = 100000;
+    tbb::tick_count t0 = tbb::tick_count::now();
+    tbb::parallel_for(tbb::blocked_range<size_t>(0,n,10000),AddOne<Counter<M> >(counter));
+    tbb::tick_count t1 = tbb::tick_count::now();
+    if( Verbose )
+        printf("%g usec\n",(t1-t0).seconds());
+    if( counter.value!=n )
+        STD::printf("ERROR for %s: counter.value=%ld\n",name,counter.value);
+}
+
+template<typename M, size_t N>
+struct Invariant {
+    typedef M mutex_type;
+    M mutex;
+    const char* mutex_name;
+    volatile long value[N];
+    volatile long single_value;
+    Invariant( const char* mutex_name_ ) :
+        mutex_name(mutex_name_)
+    {
+    single_value = 0;
+        for( size_t k=0; k<N; ++k )
+            value[k] = 0;
+    }
+    void update() {
+        for( size_t k=0; k<N; ++k )
+            ++value[k];
+    }
+    bool value_is( long expected_value ) const {
+        long tmp;
+        for( size_t k=0; k<N; ++k )
+//            if( value[k]!=expected_value )
+//                return false;
+            if( (tmp=value[k])!=expected_value ) {
+                printf("ATTN! %ld!=%ld\n", tmp, expected_value);
+                return false;
+            }
+        return true;
+    }
+    bool is_okay() {
+        return value_is( value[0] );
+    }
+};
+
+//! Function object for use with parallel_for.h.
+template<typename I>
+struct TwiddleInvariant {
+    I& invariant;
+    /** Increments counter once for each iteration in the iteration space. */
+    void operator()( tbb::blocked_range<size_t>& range ) const {
+        for( size_t i=range.begin(); i!=range.end(); ++i ) {
+            //! Every 8th access is a write access
+            bool write = (i%8)==7;
+            bool okay = true;
+            bool lock_kept = true;
+            if( (i/8)&1 ) {
+                // Try implicit acquire and explicit release
+                typename I::mutex_type::scoped_lock lock(invariant.mutex,write);
+                if( write ) {
+                    long my_value = invariant.value[0];
+                    invariant.update();
+                    if( i%16==7 ) {
+                        lock_kept = lock.downgrade_to_reader();
+                        if( !lock_kept )
+                            my_value = invariant.value[0] - 1;
+                        okay = invariant.value_is(my_value+1);
+                    }
+                } else {
+                    okay = invariant.is_okay();
+                    if( i%8==3 ) {
+                        long my_value = invariant.value[0];
+                        lock_kept = lock.upgrade_to_writer();
+                        if( !lock_kept )
+                            my_value = invariant.value[0];
+                        invariant.update();
+                        okay = invariant.value_is(my_value+1);
+                    }
+                }
+                lock.release();
+            } else {
+                // Try explicit acquire and implicit release
+                typename I::mutex_type::scoped_lock lock;
+                lock.acquire(invariant.mutex,write);
+                if( write ) {
+                    long my_value = invariant.value[0];
+                    invariant.update();
+                    if( i%16==7 ) {
+                        lock_kept = lock.downgrade_to_reader();
+                        if( !lock_kept )
+                            my_value = invariant.value[0] - 1;
+                        okay = invariant.value_is(my_value+1);
+                    }
+                } else {
+                    okay = invariant.is_okay();
+                    if( i%8==3 ) {
+                        long my_value = invariant.value[0];
+                        lock_kept = lock.upgrade_to_writer();
+                        if( !lock_kept )
+                            my_value = invariant.value[0];
+                        invariant.update();
+                        okay = invariant.value_is(my_value+1);
+                    }
+                }
+            }
+            if( !okay ) {
+                STD::printf( "ERROR for %s at %ld: %s %s %s %s\n",invariant.mutex_name, long(i),
+                             write?"write,":"read,", write?(i%16==7?"downgrade,":""):(i%8==3?"upgrade,":""),
+                             lock_kept?"lock kept,":"lock not kept,", (i/8)&1?"imp/exp":"exp/imp" );
+            }
+        }
+    }
+    TwiddleInvariant( I& invariant_ ) : invariant(invariant_) {}
+};
+
+/** This test is generic so that we can test any other kinds of ReaderWriter locks we write later. */
+template<typename M>
+void TestReaderWriterLock( const char * mutex_name ) {
+    if( Verbose ) {
+        printf("%s readers & writers time = ",mutex_name);
+        fflush(stdout);
+    }
+    Invariant<M,8> invariant(mutex_name);
+    const size_t n = 500000;
+    tbb::tick_count t0 = tbb::tick_count::now();
+    tbb::parallel_for(tbb::blocked_range<size_t>(0,n,5000),TwiddleInvariant<Invariant<M,8> >(invariant));
+    tbb::tick_count t1 = tbb::tick_count::now();
+    // There is either a writer or a reader upgraded to a writer for each 4th iteration
+    long expected_value = n/4;
+    if( !invariant.value_is(expected_value) )
+        STD::printf("ERROR for %s: final invariant value is wrong\n",mutex_name);
+    if( Verbose )
+        printf("%g usec\n",(t1-t0).seconds());
+}
+
+/** Test try_acquire functionality of a non-reenterable mutex */
+template<typename M>
+void TestTryAcquire_OneThread( const char * mutex_name ) {
+    M tested_mutex;
+    typename M::scoped_lock lock1;
+    if( lock1.try_acquire(tested_mutex) )
+        lock1.release();
+    else
+        STD::printf("ERROR for %s: try_acquire failed though it should not\n", mutex_name);
+    {
+        typename M::scoped_lock lock2(tested_mutex);
+        if( lock1.try_acquire(tested_mutex) )
+            STD::printf("ERROR for %s: try_acquire succeeded though it should not\n", mutex_name);
+    }
+    if( lock1.try_acquire(tested_mutex) )
+        lock1.release();
+    else
+        STD::printf("ERROR for %s: try_acquire failed though it should not\n", mutex_name);
+}
+
+#include "tbb/task_scheduler_init.h"
+
+int main( int argc, char * argv[] ) {
+    ParseCommandLine( argc, argv );
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        tbb::task_scheduler_init init( p );
+	if( Verbose )
+	    printf( "testing with %d workers\n", static_cast<int>(p) );
+	// Run each test 3 times.
+	for( int i=0; i<3; ++i ) {
+	    Test<tbb::spin_mutex>( "Spin Mutex" );
+#if _OPENMP
+	    Test<OpenMP_Mutex>( "OpenMP_Mutex" );
+#endif /* _OPENMP */
+	    Test<tbb::queuing_mutex>( "Queuing Mutex" );
+	    Test<tbb::mutex>( "Wrapper Mutex" );
+	    Test<tbb::queuing_rw_mutex>( "Queuing RW Mutex" );
+	    Test<tbb::spin_rw_mutex>( "Spin RW Mutex" );
+            
+            TestTryAcquire_OneThread<tbb::spin_mutex>("Spin Mutex");
+            TestTryAcquire_OneThread<tbb::queuing_mutex>("Queuing Mutex");
+#if USE_PTHREAD
+            // under ifdef because on Windows tbb::mutex is reenterable and the test will fail
+            TestTryAcquire_OneThread<tbb::mutex>("Wrapper Mutex");
+#endif /* USE_PTHREAD */
+            TestTryAcquire_OneThread<tbb::spin_rw_mutex>("Spin RW Mutex"); // only tests try_acquire for writers
+            TestTryAcquire_OneThread<tbb::queuing_rw_mutex>("Queuing RW Mutex"); // only tests try_acquire for writers
+
+	    TestReaderWriterLock<tbb::queuing_rw_mutex>( "Queuing RW Mutex" );
+	    TestReaderWriterLock<tbb::spin_rw_mutex>( "Spin RW Mutex" );
+	if( Verbose )
+	    printf( "calling destructor for task_scheduler_init\n" );
+	}
+    }
+    STD::printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_mutex_native_threads.cpp b/src/test/test_mutex_native_threads.cpp
new file mode 100644
index 0000000..c5adc8b
--- /dev/null
+++ b/src/test/test_mutex_native_threads.cpp
@@ -0,0 +1,283 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "harness.h"
+#include <cstdio>
+
+#if USE_PTHREAD
+
+#include <cstdlib>
+#include "tbb/spin_mutex.h"
+#include "tbb/queuing_mutex.h"
+#include "tbb/queuing_rw_mutex.h"
+#include "tbb/spin_rw_mutex.h"
+#include "tbb/tick_count.h"
+#include "tbb/atomic.h"
+
+
+#if __linux__
+#define STD std
+#else
+#define STD   /* Cater to broken Windows compilers that are missing "std". */
+#endif /* __linux__ */
+
+// This test deliberately avoids a "using tbb" statement,
+// so that the error of putting types in the wrong namespace will be caught.
+
+template<typename M>
+struct Counter {
+    typedef M mutex_type;
+    M mutex;
+    volatile long value;
+};
+
+template<typename C>
+void AddOne (C& counter, size_t mode)
+/** Increments counter once for each iteration in the iteration space. */
+{
+    if( mode&1 ) {
+        // Try implicit acquire and explicit release
+        typename C::mutex_type::scoped_lock lock(counter.mutex);
+        counter.value = counter.value+1;
+        lock.release();
+    } else {
+        // Try explicit acquire and implicit release
+        typename C::mutex_type::scoped_lock lock;
+        lock.acquire(counter.mutex);
+        counter.value = counter.value+1;
+    }
+}
+
+template<typename M, size_t N>
+struct Invariant {
+    typedef M mutex_type;
+    M mutex;
+    const char* mutex_name;
+    volatile long value[N];
+    volatile long single_value;
+    Invariant( const char* mutex_name_ ) :
+        mutex_name(mutex_name_)
+    {
+        single_value = 0;
+        for( size_t k=0; k<N; ++k )
+            value[k] = 0;
+    }
+    void update() {
+        for( size_t k=0; k<N; ++k )
+            ++value[k];
+    }
+    bool value_is( long expected_value ) const {
+        long tmp;
+        for( size_t k=0; k<N; ++k )
+//            if( value[k]!=expected_value )
+//                return false;
+            if( (tmp=value[k])!=expected_value ) {
+                printf("ATTN! %ld!=%ld\n", tmp, expected_value);
+                return false;
+            }
+        return true;
+    }
+    bool is_okay() {
+        return value_is( value[0] );
+    }
+};
+
+template<typename I>
+void TwiddleInvariant( I& invariant, size_t mode )
+{
+    //! Every 8th access is a write access
+    bool write = (mode%8)==7;
+    bool okay = true;
+    bool lock_kept = true;
+    if( (mode/8)&1 ) {
+        // Try implicit acquire and explicit release
+        typename I::mutex_type::scoped_lock lock(invariant.mutex,write);
+        if( write ) {
+            long my_value = invariant.value[0];
+            invariant.update();
+            if( mode%16==7 ) {
+                lock_kept = lock.downgrade_to_reader();
+                if( !lock_kept )
+                    my_value = invariant.value[0] - 1;
+                okay = invariant.value_is(my_value+1);
+            }
+        } else {
+            okay = invariant.is_okay();
+            if( mode%8==3 ) {
+                long my_value = invariant.value[0];
+                lock_kept = lock.upgrade_to_writer();
+                if( !lock_kept )
+                    my_value = invariant.value[0];
+                invariant.update();
+                okay = invariant.value_is(my_value+1);
+            }
+        }
+        lock.release();
+    } else {
+        // Try explicit acquire and implicit release
+        typename I::mutex_type::scoped_lock lock;
+        lock.acquire(invariant.mutex,write);
+        if( write ) {
+            long my_value = invariant.value[0];
+            invariant.update();
+            if( mode%16==7 ) {
+                lock_kept = lock.downgrade_to_reader();
+                if( !lock_kept )
+                    my_value = invariant.value[0] - 1;
+                okay = invariant.value_is(my_value+1);
+            }
+        } else {
+            okay = invariant.is_okay();
+            if( mode%8==3 ) {
+                long my_value = invariant.value[0];
+                lock_kept = lock.upgrade_to_writer();
+                if( !lock_kept )
+                    my_value = invariant.value[0];
+                invariant.update();
+                okay = invariant.value_is(my_value+1);
+            }
+        }
+    }
+    if( !okay ) {
+        STD::printf( "ERROR for %s at %ld: %s %s %s %s\n",invariant.mutex_name, long(mode),
+                     write?"write,":"read,", write?(mode%16==7?"downgrade,":""):(mode%8==3?"upgrade,":""),
+                     lock_kept?"lock kept,":"lock not kept,", (mode/8)&1?"imp/exp":"exp/imp" );
+    }
+}
+
+template<typename M>
+class Work
+{
+public:
+    static tbb::atomic<size_t> order;
+    static const long mutex_test_size;
+    static const long readwrite_test_size;
+    static const long chunk;
+
+    static void* mutex_work(void* p)
+    {
+        Counter<M>* pCounter = reinterpret_cast<Counter<M>*>(p);
+        long step, i;
+        while( (step=order.fetch_and_add<tbb::acquire>(chunk))<mutex_test_size ){
+            for( i=0; i<chunk && step<mutex_test_size; ++i, ++step ) {
+                AddOne(*pCounter, step);
+            }
+        }
+        return NULL;
+    }
+
+    static void* readwrite_work(void* p)
+    {
+        Invariant<M,8>* pInv = reinterpret_cast<Invariant<M,8>*>(p);
+        long step, i;
+        while( (step=order.fetch_and_add<tbb::acquire>(chunk))<readwrite_test_size ){
+            for( i=0; i<chunk && step<readwrite_test_size; ++i, ++step ) {
+                TwiddleInvariant(*pInv, step);
+            }
+        }
+        return NULL;
+    }
+};
+
+template<typename M> tbb::atomic<size_t> Work<M>::order;
+template<typename M> const long Work<M>::mutex_test_size = 100000;
+template<typename M> const long Work<M>::readwrite_test_size = 1000000;
+template<typename M> const long Work<M>::chunk = 100;
+
+typedef void* thread_func( void* );
+
+//! Generic test of a TBB mutex type M.
+/** Does not test features specific to reader-writer locks. */
+template<typename M>
+void Test( const char * name ) {
+    if( Verbose )
+        printf("testing %s\n",name);
+    Counter<M> counter;
+    counter.value = 0;
+    Work<M>::order = 0;
+    thread_func* mutex = reinterpret_cast<thread_func*>(&(Work<M>::mutex_work));
+    pthread_t* thr = new pthread_t[NThread];
+
+    tbb::tick_count t0 = tbb::tick_count::now();
+    for (int i=0; i<NThread; ++i)
+        pthread_create(thr+i, NULL, mutex, reinterpret_cast<void*>(&counter));
+    for (int i=0; i<NThread; ++i)
+        pthread_join(*(thr+i), NULL);
+    tbb::tick_count t1 = tbb::tick_count::now();
+    if( Verbose )
+        printf("%s time = %g usec\n",name, (t1-t0).seconds() );
+    if( counter.value!=Work<M>::mutex_test_size )
+        STD::printf("ERROR for %s: counter.value=%ld\n",name,counter.value);
+    delete[] thr;
+}
+
+
+/** This test is generic so that we can test any other kinds of ReaderWriter locks we write later. */
+template<typename M>
+void TestReaderWriterLock( const char * mutex_name ) {
+    if( Verbose )
+        printf("testing %s\n",mutex_name);
+    Invariant<M,8> invariant(mutex_name);
+    Work<M>::order = 0;
+    thread_func* readwrite = reinterpret_cast<thread_func*>(Work<M>::readwrite_work);
+    pthread_t* thr = new pthread_t[NThread];
+    tbb::tick_count t0 = tbb::tick_count::now();
+    for (int i=0; i<NThread; ++i)
+        pthread_create(thr+i, NULL, readwrite, reinterpret_cast<void*>(&invariant));
+    for (int i=0; i<NThread; ++i)
+        pthread_join(*(thr+i), NULL);
+    tbb::tick_count t1 = tbb::tick_count::now();
+    // There is either a writer or a reader upgraded to a writer for each 4th iteration
+    long expected_value = Work<M>::readwrite_test_size/4;
+    if( !invariant.value_is(expected_value) )
+        STD::printf("ERROR for %s: final invariant value is wrong\n",mutex_name);
+    if( Verbose )
+        printf("%s readers & writers time = %g usec\n",mutex_name,(t1-t0).seconds());
+    delete[] thr;
+}
+#endif /* USE_PTHREAD */
+
+int main( int argc, char * argv[] ) {
+    ParseCommandLine( argc, argv );
+#if USE_PTHREAD
+    if( Verbose )
+        printf( "testing with %d threads\n", NThread );
+    Test<tbb::spin_mutex>( "Spin Mutex" );
+    Test<tbb::queuing_mutex>( "Queuing Mutex" );
+    Test<tbb::queuing_rw_mutex>( "Queuing RW Mutex" );
+    Test<tbb::spin_rw_mutex>( "Spin RW Mutex" );
+    TestReaderWriterLock<tbb::queuing_rw_mutex>( "Queuing RW Mutex" );
+    TestReaderWriterLock<tbb::spin_rw_mutex>( "Spin RW Mutex" );
+    STD::printf("done\n");
+#else
+    if( Verbose )
+        printf("this test need pthreads to work; define USE_PTHREAD before compilation.\n");
+    printf("skip\n");
+#endif /* USE_PTHREAD */
+    return 0;
+}
diff --git a/src/test/test_openmp.cpp b/src/test/test_openmp.cpp
new file mode 100644
index 0000000..5187b82
--- /dev/null
+++ b/src/test/test_openmp.cpp
@@ -0,0 +1,224 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test mixing OpenMP and TBB
+
+/* SCR #471 
+ Bellow is workaround to compile test within enviroment of Intel Compiler
+ but by Microsoft Compiler. So, there is wrong "omp.h" file included and
+ manifest section is missed from .exe file - restoring here.
+ */
+#if !defined(__INTEL_COMPILER) && _MSC_VER >= 1400
+    #include <crtassem.h>
+    #if !defined(_OPENMP)
+        #define _OPENMP
+        #if defined(_DEBUG)
+            #pragma comment(lib, "vcompd")
+        #else   // _DEBUG
+            #pragma comment(lib, "vcomp")
+        #endif  // _DEBUG
+    #endif // _OPENMP
+
+    #if defined(_DEBUG)
+        #if defined(_M_IX86)
+            #pragma comment(linker,"/manifestdependency:\"type='win32' "            \
+                "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".DebugOpenMP' "         \
+                "version='" _CRT_ASSEMBLY_VERSION "' "                          \
+                "processorArchitecture='x86' "                                  \
+                "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
+        #elif defined(_M_AMD64)
+            #pragma comment(linker,"/manifestdependency:\"type='win32' "            \
+                "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".DebugOpenMP' "         \
+                "version='" _CRT_ASSEMBLY_VERSION "' "                          \
+                "processorArchitecture='amd64' "                                  \
+                "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
+        #elif defined(_M_IA64)
+            #pragma comment(linker,"/manifestdependency:\"type='win32' "            \
+                "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".DebugOpenMP' "         \
+                "version='" _CRT_ASSEMBLY_VERSION "' "                          \
+                "processorArchitecture='ia64' "                                  \
+                "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
+        #endif
+    #else   // _DEBUG
+        #if defined(_M_IX86)
+            #pragma comment(linker,"/manifestdependency:\"type='win32' "            \
+                "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".OpenMP' "              \
+                "version='" _CRT_ASSEMBLY_VERSION "' "                          \
+                "processorArchitecture='x86' "                                  \
+                "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
+        #elif defined(_M_AMD64)
+            #pragma comment(linker,"/manifestdependency:\"type='win32' "            \
+                "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".OpenMP' "              \
+                "version='" _CRT_ASSEMBLY_VERSION "' "                          \
+                "processorArchitecture='amd64' "                                  \
+                "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
+        #elif defined(_M_IA64)
+            #pragma comment(linker,"/manifestdependency:\"type='win32' "            \
+                "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".OpenMP' "              \
+                "version='" _CRT_ASSEMBLY_VERSION "' "                          \
+                "processorArchitecture='ia64' "                                  \
+                "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
+        #endif
+    #endif  // _DEBUG
+    #define _OPENMP_NOFORCE_MANIFEST
+#endif
+
+#include <omp.h>
+
+
+typedef short T;
+
+void SerialConvolve( T c[], const T a[], int m, const T b[], int n ) {
+    for( int i=0; i<m+n-1; ++i ) {
+        int start = i<n ? 0 : i-n+1;
+        int finish = i<m ? i+1 : m; 
+        T sum = 0;
+        for( int j=start; j<finish; ++j ) 
+            sum += a[j]*b[i-j];
+        c[i] = sum;
+    }
+}
+
+#include "tbb/blocked_range.h"
+#include "tbb/parallel_for.h"
+#include "tbb/parallel_reduce.h"
+#include "tbb/task_scheduler_init.h"
+#include "harness.h"
+
+using namespace tbb;
+
+class InnerBody {
+    const T* my_a;
+    const T* my_b;
+    const int i;
+public:
+    T sum;
+    InnerBody( T c[], const T a[], const T b[], int i ) :
+        my_a(a), my_b(b), sum(0), i(i)
+    {}
+    InnerBody( InnerBody& x, split ) :
+        my_a(x.my_a), my_b(x.my_b), sum(0), i(x.i)
+    { 
+    }
+    void join( InnerBody& x ) {sum += x.sum;}
+    void operator()( const blocked_range<int>& range ) {
+        for( int j=range.begin(); j!=range.end(); ++j ) 
+            sum += my_a[j]*my_b[i-j];
+    }
+};
+
+//! Test OpenMMP loop around TBB loop
+void OpenMP_TBB_Convolve( T c[], const T a[], int m, const T b[], int n ) {
+    if( Verbose )
+        printf("testing OpenMP loop around TBB loop\n");
+#pragma omp parallel 
+    {
+        task_scheduler_init init;
+#pragma omp for
+        for( int i=0; i<m+n-1; ++i ) {
+            int start = i<n ? 0 : i-n+1;
+            int finish = i<m ? i+1 : m; 
+            InnerBody body(c,a,b,i);
+            parallel_reduce( blocked_range<int>(start,finish,10), body );
+            c[i] = body.sum;
+        }
+    }
+}
+
+class OuterBody {
+    const T* my_a;
+    const T* my_b;
+    T* my_c;
+    const int m;
+    const int n;
+public:
+    T sum;
+    OuterBody( T c[], const T a[], int m_, const T b[], int n_ ) :
+        my_c(c), my_a(a), my_b(b), m(m_), n(n_)
+    {}
+    void operator()( const blocked_range<int>& range ) const {
+        for( int i=range.begin(); i!=range.end(); ++i ) {
+            int start = i<n ? 0 : i-n+1;
+            int finish = i<m ? i+1 : m; 
+            T sum = 0;
+#pragma omp parallel for reduction(+:sum)
+            for( int j=start; j<finish; ++j ) 
+                sum += my_a[j]*my_b[i-j];
+            my_c[i] = sum;
+        }
+    }
+};
+
+//! Test TBB loop around OpenMP loop
+void TBB_OpenMP_Convolve( T c[], const T a[], int m, const T b[], int n ) {
+    if( Verbose )
+        printf("testing TBB loop around OpenMP loop\n");
+    parallel_for( blocked_range<int>(0,m+n-1,10), OuterBody( c, a, m, b, n ) );
+}
+
+#include <stdio.h>
+
+const int M = 17*17;
+const int N = 13*13;
+
+int main( int argc, char* argv[] ) {
+#ifdef _PGO_INSTRUMENT
+    printf("Warning: test_openmp.exe has problems if compiled with -prof-genx; skipping\n");
+    return 0;
+#endif
+    ParseCommandLine(argc,argv);
+    MinThread = 1;
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        T a[M];
+        T b[N];
+        for( int m=1; m<=M; m*=17 ) {
+            for( int n=1; n<=M; n*=13 ) {
+                for( int i=0; i<m; ++i ) a[i] = 1+i/5;
+                for( int i=0; i<n; ++i ) b[i] = 1+i/7;
+                T expected[M+N];
+                SerialConvolve( expected, a, m, b, n );
+                task_scheduler_init init(p);
+                T actual[M+N];
+                for( int k = 0; k<2; ++k ) {
+                    memset( actual, -1, sizeof(actual) );
+                    switch(k) {
+                        case 0: 
+                            TBB_OpenMP_Convolve( actual, a, m, b, n ); 
+                            break;
+                        case 1: OpenMP_TBB_Convolve( actual, a, m, b, n ); break;
+                    }
+                    for( int i=0; i<m+n-1; ++i ) {
+                        ASSERT( actual[i]==expected[i], NULL );
+                    }
+                }
+            }
+        } 
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_parallel_for.cpp b/src/test/test_parallel_for.cpp
new file mode 100644
index 0000000..96275ea
--- /dev/null
+++ b/src/test/test_parallel_for.cpp
@@ -0,0 +1,162 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test for function template parallel_for.h
+
+#include "tbb/parallel_for.h"
+#include "tbb/atomic.h"
+#include "harness_assert.h"
+#include "harness.h"
+
+static tbb::atomic<int> FooBodyCount;
+
+//! An range object whose only public members are those required by the Range concept.
+template<size_t Pad>
+class FooRange {
+    //! Start of range
+    int start;
+
+    //! Size of range
+    int size;
+    FooRange( int start_, int size_ ) : start(start_), size(size_) {
+        zero_fill<char>(pad, Pad);
+        pad[Pad-1] = 'x';
+    }
+    template<size_t Pad_> friend void Flog( int nthread );
+    template<size_t Pad_> friend class FooBody;
+    void operator&();
+
+    char pad[Pad];
+public:
+    bool empty() const {return size==0;}
+    bool is_divisible() const {return size>1;}
+    FooRange( FooRange& original, tbb::split ) : size(original.size/2) {
+        original.size -= size;
+        start = original.start+original.size;
+        ASSERT( original.pad[Pad-1]=='x', NULL );
+        pad[Pad-1] = 'x';
+    }
+};
+
+//! An range object whose only public members are those required by the parallel_for.h body concept.
+template<size_t Pad>
+class FooBody {
+    static const int LIVE = 0x1234;
+    tbb::atomic<int>* array;
+    int state;
+    friend class FooRange<Pad>;
+    template<size_t Pad_> friend void Flog( int nthread );
+    FooBody( tbb::atomic<int>* array_ ) : array(array_), state(LIVE) {}
+public:
+    ~FooBody() {
+        --FooBodyCount;
+        for( size_t i=0; i<sizeof(*this); ++i )
+            reinterpret_cast<char*>(this)[i] = -1;
+    }
+    //! Copy constructor 
+    FooBody( const FooBody& other ) : array(other.array), state(other.state) {
+        ++FooBodyCount;
+        ASSERT( state==LIVE, NULL );
+    }
+    void operator()( FooRange<Pad>& r ) const {
+        for( int k=0; k<r.size; ++k )
+            array[r.start+k]++;
+    }
+};
+
+#include "tbb/tick_count.h"
+
+static const int N = 1000;
+static tbb::atomic<int> Array[N];
+
+template<size_t Pad>
+void Flog( int nthread ) {
+    tbb::tick_count T0 = tbb::tick_count::now();
+    for( int i=0; i<N; ++i ) {
+        for ( int mode = 0; mode < 3; ++mode) {
+            FooRange<Pad> r( 0, i );
+            const FooRange<Pad> rc = r;
+            FooBody<Pad> f( Array );
+            const FooBody<Pad> fc = f;
+            memset( Array, 0, sizeof(Array) );
+            FooBodyCount = 1;
+            switch (mode) {
+                case 0:
+                    tbb::parallel_for( rc, fc );
+                break;
+                case 1:
+                    tbb::parallel_for( rc, fc, tbb::simple_partitioner() );
+                break;
+                case 2:
+                    tbb::parallel_for( rc, fc, tbb::auto_partitioner() );
+                break;
+            }
+            for( int j=0; j<i; ++j ) 
+                ASSERT( Array[j]==1, NULL );
+            for( int j=i; j<N; ++j ) 
+                ASSERT( Array[j]==0, NULL );
+            // Destruction of bodies might take a while, but there should be at most one body per thread
+            // at this point.
+            while( FooBodyCount>1 ) { 
+                ASSERT( FooBodyCount<=nthread, NULL );
+            }
+            ASSERT( FooBodyCount==1, NULL );
+        }
+    }
+    tbb::tick_count T1 = tbb::tick_count::now();
+    if( Verbose )
+        printf("time=%g\tnthread=%d\tpad=%d\n",(T1-T0).seconds(),nthread,int(Pad));
+}
+
+#include <cstdio>
+#include "tbb/task_scheduler_init.h"
+#include "harness_cpu.h"
+
+int main( int argc, char* argv[] ) {
+    MinThread = 1;
+    ParseCommandLine(argc,argv);
+    if( MinThread<1 ) {
+        printf("number of threads must be positive\n");
+        exit(1);
+    }
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        if( p>0 ) {
+            tbb::task_scheduler_init init( p );
+            Flog<1>(p);
+            Flog<10>(p);
+            Flog<100>(p);
+            Flog<1000>(p);
+            Flog<10000>(p);
+
+           // Test that all workers sleep when no work
+           TestCPUUserTime(p-1);
+        }
+    } 
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_parallel_reduce.cpp b/src/test/test_parallel_reduce.cpp
new file mode 100644
index 0000000..000bc26
--- /dev/null
+++ b/src/test/test_parallel_reduce.cpp
@@ -0,0 +1,150 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/parallel_reduce.h"
+#include "tbb/blocked_range.h"
+#include "tbb/tick_count.h"
+#include "tbb/atomic.h"
+#include "harness_assert.h"
+#include <cstdlib>
+#include <cstdio>
+
+using namespace std;
+
+static tbb::atomic<long> ForkCount;
+
+class FooBody {
+private:
+    FooBody( const FooBody& );          // Deny access
+    void operator=( const FooBody& );   // Deny access
+public:
+    //! Parent that created this body via split operation.  NULL if original body.
+    FooBody* parent;
+    //! Total number of index values processed by body and its children.
+    long sum;
+    //! Number of join operations done so far on this body and its children.
+    long join_count;
+    //! Range that has been processed so far by this body and its children.
+    size_t begin, end;
+    //! True if body has not yet been processed at least once by operator().
+    bool is_new;
+    //! 1 if body was created by split; 0 if original body.
+    int forked;
+ 
+    FooBody() : parent(reinterpret_cast<FooBody*>(-1L)), forked(0) {}
+    ~FooBody() {
+        forked = 0xDEADBEEF; 
+        sum=0xDEADBEEF;
+        join_count=0xDEADBEEF;
+    } 
+    FooBody( FooBody& other, tbb::split ) {
+        ++ForkCount;
+        sum = 0;
+        parent = &other;
+        join_count = 0;
+        is_new = true;
+        forked = 1;
+    }
+    void join( FooBody& s ) {
+        ASSERT( s.forked==1, NULL );
+        ASSERT( this!=&s, NULL );
+        if( this!=s.parent ) {
+            printf( "ERROR: %p.join(%p): s.parent=%p\n", this, &s, s.parent );
+            exit(1);
+        }
+        ASSERT( end==s.begin, NULL );
+        end = s.end;
+        sum += s.sum;
+        join_count += s.join_count + 1;
+        s.forked = 2;
+    }
+    void operator()( tbb::blocked_range<size_t>& r ) {
+        for( size_t k=r.begin(); k<r.end(); ++k )
+            ++sum;
+        if( is_new ) {
+            is_new = false;
+            begin = r.begin();
+        } else
+            ASSERT( end==r.begin(), NULL );
+        end = r.end();
+    }
+};
+
+static size_t ChunkSize = 1;
+
+#include "harness.h"
+
+void Flog( int nthread ) {
+    FooBody f;
+    tbb::tick_count T0 = tbb::tick_count::now();
+    long join_count = 0;        
+    for( size_t i=0; i<=1000; ++i ) {
+        for (int mode = 0;  mode < 3; mode++) {
+            f.sum = 0;
+            f.parent = NULL;
+            f.join_count = 0;
+            f.is_new = true;
+            f.forked = 0;
+            switch (mode) {
+                case 0:
+                    tbb::parallel_reduce( tbb::blocked_range<size_t>(0,i,ChunkSize), f );
+                break;
+                case 1:
+                    tbb::parallel_reduce( tbb::blocked_range<size_t>(0,i,ChunkSize), f, tbb::simple_partitioner() );
+                break;
+                case 2:
+                    tbb::parallel_reduce( tbb::blocked_range<size_t>(0,i,ChunkSize), f, tbb::auto_partitioner() );
+                break;
+            }
+            join_count += f.join_count;
+	}
+    }
+    tbb::tick_count T1 = tbb::tick_count::now();
+    if( Verbose )
+        printf("time=%g f.sum=%ld join_count=%ld ForkCount=%ld nthread=%d\n",(T1-T0).seconds(),f.sum,join_count,long(ForkCount), nthread);
+}
+
+#include "tbb/task_scheduler_init.h"
+#include "harness_cpu.h"
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine( argc, argv );
+    if( MinThread<0 ) {
+        printf("Usage: nthread must be positive\n");
+        exit(1);
+    }
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        tbb::task_scheduler_init init( p );
+        Flog(p);
+
+        // Test that all workers sleep when no work
+        TestCPUUserTime(p-1);
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_parallel_scan.cpp b/src/test/test_parallel_scan.cpp
new file mode 100644
index 0000000..d8be458
--- /dev/null
+++ b/src/test/test_parallel_scan.cpp
@@ -0,0 +1,272 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/parallel_scan.h"
+#include "tbb/blocked_range.h"
+#include "harness_assert.h"
+
+typedef tbb::blocked_range<long> Range;
+
+static volatile bool ScanIsRunning = false;
+
+//! Sum of 0..i with wrap around on overflow.
+inline int TriangularSum( int i ) {
+    return i&1 ? ((i>>1)+1)*i : (i>>1)*(i+1); 
+}
+
+//! Verify that sum is sum of integers in closed interval [start_index..finish_index].
+/** line should be the source line of the caller */
+static void VerifySum( long start_index, long finish_index, int sum, int line );
+
+const int MAXN = 2000;
+
+enum AddendFlag {
+    UNUSED=0,
+    USED_NONFINAL=1,
+    USED_FINAL=2
+};
+
+//! Array recording how each addend was used. 
+/** 'unsigned char' instead of AddendFlag for sake of compactness. */
+static unsigned char AddendHistory[MAXN];
+
+//! Set to 1 for debugging output 
+#define PRINT_DEBUG 0
+
+#include "tbb/atomic.h"
+#if PRINT_DEBUG
+#include <stdio.h>
+tbb::atomic<long> NextBodyId;
+#endif /* PRINT_DEBUG */
+
+struct BodyId {
+#if PRINT_DEBUG
+    const int id;
+    BodyId() : id(NextBodyId++) {}
+#endif /* PRINT_DEBUG */
+};
+
+tbb::atomic<long> NumberOfLiveAccumulator;
+
+static void Snooze( bool scan_should_be_running ) {
+    ASSERT( ScanIsRunning==scan_should_be_running, NULL );
+}
+
+template<typename T>
+class Accumulator: BodyId {
+    T my_total;
+    const T* my_array;
+    T* my_sum;
+    Range my_range;
+    //! Equals this while object is fully constructed, NULL otherwise.
+    /** Used to detect premature destruction and accidental bitwise copy. */
+    Accumulator* self;
+    Accumulator( const T array[], T sum[] ) :
+        my_total(), my_array(array), my_sum(sum), my_range(-1,-1,1)
+    {
+        ++NumberOfLiveAccumulator;
+        // Set self as last action of constructor, to indicate that object is fully constructed.
+        self = this;
+    }
+    friend void TestAccumulator( int mode, int nthread );
+public:
+#if PRINT_DEBUG
+    void print() const {
+        printf("%d [%ld..%ld)\n", id,my_range.begin(),my_range.end() );
+    }
+#endif /* PRINT_DEBUG */
+    ~Accumulator() {
+#if PRINT_DEBUG
+        printf("%d [%ld..%ld) destroyed\n",id,my_range.begin(),my_range.end() ); 
+#endif /* PRINT_DEBUG */
+        // Clear self as first action of destructor, to indicate that object is not fully constructed.
+        self = 0;
+        --NumberOfLiveAccumulator;
+    }
+    Accumulator( Accumulator& a, tbb::split ) : 
+        my_total(0), my_array(a.my_array), my_sum(a.my_sum), my_range(-1,-1,1)  
+    {
+        ++NumberOfLiveAccumulator;
+#if PRINT_DEBUG
+        printf("%d forked from %d\n",id,a.id);
+#endif /* PRINT_DEBUG */
+        Snooze(true);
+        // Set self as last action of constructor, to indicate that object is fully constructed.
+        self = this;
+    }
+    template<typename Tag> 
+    void operator()( const Range& r, Tag tag ) {
+        Snooze(true);
+#if PRINT_DEBUG
+        if( my_range.empty() )
+            printf("%d computing %s [%ld..%ld)\n",id,tag.is_final_scan()?"final":"lookahead",r.begin(),r.end() );
+        else
+            printf("%d computing %s [%ld..%ld) [%ld..%ld)\n",id,tag.is_final_scan()?"final":"lookahead",my_range.begin(),my_range.end(),r.begin(),r.end());
+#endif /* PRINT_DEBUG */
+        ASSERT( !tag.is_final_scan() || my_range.begin()==0 && my_range.end()==r.begin() || my_range.empty() && r.begin()==0, NULL );
+        for( long i=r.begin(); i<r.end(); ++i ) {
+            my_total += my_array[i];
+            if( tag.is_final_scan() ) {
+                ASSERT( AddendHistory[i]<USED_FINAL, "addend used 'finally' twice?" );
+                AddendHistory[i] |= USED_FINAL;
+                my_sum[i] = my_total;
+                VerifySum( 0L, i, int(my_sum[i]), __LINE__ );
+            } else {
+                ASSERT( AddendHistory[i]==UNUSED, "addend used too many times" );
+                AddendHistory[i] |= USED_NONFINAL;
+            }   
+        }
+        if( my_range.empty() )
+            my_range = r;
+        else
+            my_range = Range(my_range.begin(), r.end(), 1 );
+        Snooze(true);
+        ASSERT( self==this, "this Accumulator corrupted or prematurely destroyed" );
+    }
+    void reverse_join( const Accumulator& left ) {
+#if PRINT_DEBUG
+        printf("reverse join %d [%ld..%ld) %d [%ld..%ld)\n",
+               left.id,left.my_range.begin(),left.my_range.end(),
+               id,my_range.begin(),my_range.end());
+#endif /* PRINT_DEBUG */
+        Snooze(true);
+        ASSERT( ScanIsRunning, NULL );     
+        ASSERT( left.my_range.end()==my_range.begin(), NULL );
+        my_total += left.my_total;
+        my_range = Range( left.my_range.begin(), my_range.end(), 1 );
+        ASSERT( ScanIsRunning, NULL );     
+        Snooze(true);
+        ASSERT( ScanIsRunning, NULL );     
+        ASSERT( self==this, NULL );
+        ASSERT( left.self==&left, NULL );
+    }
+    void assign( const Accumulator& other ) {
+        my_total = other.my_total;
+        my_range = other.my_range;
+        ASSERT( self==this, NULL );
+        ASSERT( other.self==&other, "other Accumulator corrupted or prematurely destroyed" );
+    }
+};
+
+#include "tbb/tick_count.h"
+#include "harness.h"
+
+static void VerifySum( long start_index, long finish_index, int sum, int line ) {
+    int expected = TriangularSum( finish_index ) - TriangularSum( start_index );
+    if( expected!=sum ) {
+        printf("line %d: sum[%ld..%ld] should be = %d, but was computed as %d\n", line, start_index, finish_index, expected, sum );
+        abort();
+    }
+}
+
+void TestAccumulator( int mode, int nthread ) {
+    typedef int T;
+    T* addend = new T[MAXN];
+    T* sum = new T[MAXN];
+    for( long n=0; n<=MAXN; ++n ) {
+        for( long i=0; i<MAXN; ++i ) {
+            addend[i] = -1;
+            sum[i] = -2;
+            AddendHistory[i] = UNUSED;
+        }
+        for( long i=0; i<n; ++i )
+            addend[i] = i;
+        Accumulator<T> acc( addend, sum );
+        tbb::tick_count t0 = tbb::tick_count::now();
+#if PRINT_DEBUG
+        printf("--------- mode=%d range=[0..%ld)\n",mode,n);
+#endif /* PRINT_DEBUG */
+        ScanIsRunning = true;
+
+        switch (mode) {
+            case 0:
+                tbb::parallel_scan( Range( 0, n, 1 ), acc );
+            break;
+            case 1:
+                tbb::parallel_scan( Range( 0, n, 1 ), acc, tbb::simple_partitioner() );
+            break;
+            case 2:
+                tbb::parallel_scan( Range( 0, n, 1 ), acc, tbb::auto_partitioner() );
+            break;
+        }
+
+        ScanIsRunning = false;
+#if PRINT_DEBUG
+        printf("=========\n");
+#endif /* PRINT_DEBUG */
+        Snooze(false);
+        tbb::tick_count t1 = tbb::tick_count::now();
+        long used_once_count = 0;
+        for( long i=0; i<n; ++i ) 
+            if( !(AddendHistory[i]&USED_FINAL) ) {
+                printf("failed to use addend[%ld] %s\n",i,AddendHistory[i]&USED_NONFINAL?"(but used nonfinal)":"");
+            }
+        for( long i=0; i<n; ++i ) {
+            VerifySum( 0, i, sum[i], __LINE__ );
+            used_once_count += AddendHistory[i]==USED_FINAL;
+        }
+        if( n )
+            ASSERT( acc.my_total==sum[n-1], NULL );
+        else
+            ASSERT( acc.my_total==0, NULL );
+        if( Verbose ) 
+            printf("time [n=%ld] = %g\tused_once%% = %g\tnthread=%d\n",n,(t1-t0).seconds(), n==0 ? 0 : 100.0*used_once_count/n,nthread);
+    }
+    delete[] addend;
+    delete[] sum;
+}
+
+static void TestScanTags() {
+    ASSERT( tbb::pre_scan_tag::is_final_scan()==false, NULL );
+    ASSERT( tbb::final_scan_tag::is_final_scan()==true, NULL );
+}
+
+#include "tbb/task_scheduler_init.h"
+#include "harness_cpu.h"
+
+int main(int argc, char* argv[]) {
+    ParseCommandLine(argc,argv);
+    TestScanTags();
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        for (int mode = 0; mode < 3; mode++) {
+            tbb::task_scheduler_init init(p);
+            NumberOfLiveAccumulator = 0;
+            TestAccumulator(mode, p);
+
+            // Test that all workers sleep when no work
+            TestCPUUserTime(p-1);
+
+            // Checking has to be done late, because when parallel_scan makes copies of
+            // the user's "Body", the copies might be destroyed slightly after parallel_scan 
+            // returns.
+            ASSERT( NumberOfLiveAccumulator==0, NULL );
+        }
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_parallel_sort.cpp b/src/test/test_parallel_sort.cpp
new file mode 100644
index 0000000..f5dc9c0
--- /dev/null
+++ b/src/test/test_parallel_sort.cpp
@@ -0,0 +1,527 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "harness_assert.h"
+#include "harness.h"
+#include <math.h>
+#include <algorithm>
+#include <iterator>
+#include <functional>
+#include <string>
+#include <cstring>
+#include <exception>
+
+#include "tbb/task_scheduler_init.h"
+#include "tbb/parallel_sort.h"
+#include "tbb/concurrent_vector.h"
+
+/** Has tighly controlled interface so that we can verify
+    that parallel_sort uses only the required interface. */
+class Minimal {
+    int val;
+public:
+    Minimal() {}
+    void set_val(int i) { val = i; }
+    int get_val(int i) { return val; }
+    static bool CompareWith (const Minimal &a, const Minimal &b) { 
+        return (a.val < b.val);
+    }
+    static bool AreEqual( Minimal &a,  Minimal &b) { 
+       return a.val == b.val; 
+    }
+};
+
+//! Defines a comparison function object for Minimal 
+class MinimalCompare {
+public:
+    bool operator() (const Minimal &a, const Minimal &b) const { 
+        return Minimal::CompareWith(a,b);
+    }
+};
+
+//! The default validate; but it uses operator== which is not required
+template<typename RandomAccessIterator>
+bool Validate(RandomAccessIterator a, RandomAccessIterator b, size_t n) {
+    for (size_t i = 0; i < n; i++) {
+        ASSERT( a[i] == b[i], NULL );
+    }
+    return true;
+} 
+
+//! A Validate specialized to string for debugging-only 
+template<>
+bool Validate<std::string *>(std::string * a, std::string * b, size_t n) {
+    for (size_t i = 0; i < n; i++) {
+        if ( Verbose && a[i] != b[i]) {
+          for (size_t j = 0; j < n; j++) {
+              printf("a[%llu] == %s and b[%llu] == %s\n", static_cast<unsigned long long>(j), a[j].c_str(), static_cast<unsigned long long>(j), b[j].c_str());
+          }
+        }
+        ASSERT( a[i] == b[i], NULL );
+    }
+    return true;
+}
+
+//! A Validate specialized to Minimal since it does not define an operator== 
+template<>
+bool Validate<Minimal *>(Minimal *a, Minimal *b, size_t n) {
+    for (size_t i = 0; i < n; i++) {
+        ASSERT( Minimal::AreEqual(a[i],b[i]), NULL );
+    }
+    return true;
+} 
+
+//! A Validate specialized to concurrent_vector<Minimal> since it does not define an operator== 
+template<>
+bool Validate<tbb::concurrent_vector<Minimal>::iterator>(tbb::concurrent_vector<Minimal>::iterator a, 
+                                                         tbb::concurrent_vector<Minimal>::iterator b, size_t n) {
+    for (size_t i = 0; i < n; i++) {
+        ASSERT( Minimal::AreEqual(a[i],b[i]), NULL );
+    }
+    return true;
+}
+
+//! used in Verbose mode for identifying which data set is being used 
+static std::string test_type; 
+
+//! The default initialization routine.
+/*! This routine assumes that you can assign to the elements from a float.
+    It assumes that iter and sorted_list have already been allocated. It fills
+    them according to the current data set (tracked by a local static variable).
+    Returns true if a valid test has been setup, or false if there is no test to
+    perform.
+*/ 
+   
+template < typename RandomAccessIterator, typename Compare >
+bool init_iter(RandomAccessIterator iter, RandomAccessIterator sorted_list, size_t n, const Compare &compare, bool reset) {
+    static char test_case = 0; 
+    const char num_cases = 3; 
+
+    if (reset) test_case = 0;
+
+    if (test_case < num_cases) {
+        // switch on the current test case, filling the iter and sorted_list appropriately
+        switch(test_case) {
+            case 0:
+                /* use sin to generate the values */
+                test_type = "sin";
+                for (size_t i = 0; i < n; i++) 
+                    iter[i] = sorted_list[i] = static_cast<typename std::iterator_traits< RandomAccessIterator >::value_type>(sin(float(i)));
+                break;
+            case 1:
+                /* presorted list */ 
+                test_type = "pre-sorted";
+                for (size_t i = 0; i < n; i++) 
+                    iter[i] = sorted_list[i] = static_cast<typename std::iterator_traits< RandomAccessIterator >::value_type>(i);
+                break;
+            case 2:
+                /* reverse-sorted list */ 
+                test_type = "reverse-sorted";
+                for (size_t i = 0; i < n; i++) 
+                    iter[i] = sorted_list[i] = static_cast<typename std::iterator_traits< RandomAccessIterator >::value_type>(n - i);
+                break;
+        } 
+
+        // pre-sort sorted_list for later validity testing 
+        std::sort(sorted_list, sorted_list + n, compare);
+        test_case++;
+        return true;
+    }
+    return false;
+}
+
+template < typename T, typename Compare >
+bool init_iter(T * iter, T * sorted_list, size_t n, const Compare &compare, bool reset) {
+    static char test_case = 0;
+    const char num_cases = 3;
+
+    if (reset) test_case = 0;
+
+    if (test_case < num_cases) {
+        // switch on the current test case, filling the iter and sorted_list appropriately
+        switch(test_case) {
+            case 0:
+                /* use sin to generate the values */
+                test_type = "sin";
+                for (size_t i = 0; i < n; i++)
+                    iter[i] = sorted_list[i] = T(sin(float(i)));
+                break;
+            case 1:
+                /* presorted list */
+                test_type = "pre-sorted";
+                for (size_t i = 0; i < n; i++)
+                    iter[i] = sorted_list[i] = T(i);
+                break;
+            case 2:
+                /* reverse-sorted list */
+                test_type = "reverse-sorted";
+                for (size_t i = 0; i < n; i++)
+                    iter[i] = sorted_list[i] = T(n - i);
+                break;
+        }
+
+        // pre-sort sorted_list for later validity testing 
+        std::sort(sorted_list, sorted_list + n, compare);
+        test_case++;
+        return true;
+    }
+    return false;
+}
+
+
+//! The initialization routine specialized to the class Minimal 
+/*! Minimal cannot have floats assigned to it.  This function uses the set_val method
+*/
+
+template < >
+bool init_iter(Minimal* iter, Minimal * sorted_list, size_t n, const MinimalCompare &compare, bool reset) {
+    static char test_case = 0;
+    const char num_cases = 3; 
+
+    if (reset) test_case = 0;
+
+    if (test_case < num_cases) {
+        switch(test_case) {
+            case 0:
+                /* use sin to generate the values */
+                test_type = "sin";
+                for (size_t i = 0; i < n; i++) {
+                    iter[i].set_val( int( sin( float(i) ) * 1000.f) );
+                    sorted_list[i].set_val( int ( sin( float(i) ) * 1000.f) );
+                }
+                break;
+            case 1:
+                /* presorted list */ 
+                test_type = "pre-sorted";
+                for (size_t i = 0; i < n; i++) {
+                    iter[i].set_val( int(i) ); 
+                    sorted_list[i].set_val( int(i) );
+                }
+                break;
+            case 2:
+                /* reverse-sorted list */ 
+                test_type = "reverse-sorted";
+                for (size_t i = 0; i < n; i++) {
+                    iter[i].set_val( int(n-i) ); 
+                    sorted_list[i].set_val( int(n-i) );
+                }
+                break;
+        } 
+        std::sort(sorted_list, sorted_list + n, compare);
+        test_case++;
+        return true;
+    }
+    return false;
+}
+
+//! The initialization routine specialized to the class concurrent_vector<Minimal> 
+/*! Minimal cannot have floats assigned to it.  This function uses the set_val method
+*/
+
+template < >
+bool init_iter(tbb::concurrent_vector<Minimal>::iterator iter, tbb::concurrent_vector<Minimal>::iterator sorted_list, 
+               size_t n, const MinimalCompare &compare, bool reset) {
+    static char test_case = 0;
+    const char num_cases = 3;
+
+    if (reset) test_case = 0;
+
+    if (test_case < num_cases) {
+        switch(test_case) {
+            case 0:
+                /* use sin to generate the values */
+                test_type = "sin";
+                for (size_t i = 0; i < n; i++) {
+                    iter[i].set_val( int( sin( float(i) ) * 1000.f) );
+                    sorted_list[i].set_val( int ( sin( float(i) ) * 1000.f) );
+                }
+                break;
+            case 1:
+                /* presorted list */
+                test_type = "pre-sorted";
+                for (size_t i = 0; i < n; i++) {
+                    iter[i].set_val( int(i) );
+                    sorted_list[i].set_val( int(i) );
+                }
+                break;
+            case 2:
+                /* reverse-sorted list */
+                test_type = "reverse-sorted";
+                for (size_t i = 0; i < n; i++) {
+                    iter[i].set_val( int(n-i) );
+                    sorted_list[i].set_val( int(n-i) );
+                }
+                break;
+        }
+        std::sort(sorted_list, sorted_list + n, compare);
+        test_case++;
+        return true;
+    }
+    return false;
+}
+
+//! The initialization routine specialized to the class string 
+/*! strings are created from floats. 
+*/
+
+template<>
+bool init_iter(std::string *iter, std::string *sorted_list, size_t n, const std::less<std::string> &compare, bool reset) {
+    static char test_case = 0;
+    const char num_cases = 1; 
+ 
+    if (reset) test_case = 0;
+
+    if (test_case < num_cases) {
+        switch(test_case) {
+            case 0:
+                /* use sin to generate the values */
+                test_type = "sin";
+                for (size_t i = 0; i < n; i++) {
+                    char buffer[20];
+#if __STDC_SECURE_LIB__>=200411
+                    sprintf_s(buffer, sizeof(buffer), "%f", float(sin(float(i))));
+#else
+                    sprintf(buffer, "%f", float(sin(float(i))));
+#endif /* _MSC_VER>=1400 */
+                    sorted_list[i] = iter[i] = std::string(buffer);
+                }
+                break;
+        } 
+        std::sort(sorted_list, sorted_list + n, compare);
+        test_case++;
+        return true;
+    }
+    return false;
+}
+
+//! The current number of threads in use (for Verbose only) 
+static size_t current_p;
+
+//! The current data type being sorted (for Verbose only) 
+static std::string current_type; 
+
+//! The default test routine.
+/*! Tests all data set sizes from 0 to N, all grainsizes from 0 to G=10, and selects from 
+    all possible interfaces to parallel_sort depending on whether a scratch space and
+    compare have been provided.
+*/
+template<typename RandomAccessIterator, typename Compare>
+bool parallel_sortTest(size_t n, RandomAccessIterator iter, RandomAccessIterator sorted_list, const Compare *comp) {
+    bool passed = true;
+
+    Compare local_comp; 
+
+    init_iter(iter, sorted_list, n, local_comp, true);
+    do {
+        if ( Verbose) 
+            printf("%s %s p=%llu n=%llu :",current_type.c_str(), test_type.c_str(), 
+                   static_cast<unsigned long long>(current_p), static_cast<unsigned long long>(n));
+        if (comp != NULL) {
+            tbb::parallel_sort(iter, iter + n, local_comp );
+         } else {
+            tbb::parallel_sort(iter, iter + n );
+         }
+        if (!Validate(iter, sorted_list, n)) 
+            passed = false;
+        if ( Verbose ) printf("passed\n");
+    } while (init_iter(iter, sorted_list, n, local_comp, false));
+    return passed;
+}
+
+//! The test routine specialize to Minimal, since it does not have a less defined for it
+template<>
+bool parallel_sortTest(size_t n, Minimal * iter, Minimal * sorted_list, const MinimalCompare *compare) {
+    bool passed = true;
+
+    if (compare == NULL) return passed;
+
+    init_iter(iter, sorted_list, n, *compare, true);
+    do {
+        if ( Verbose) 
+            printf("%s %s p=%llu n=%llu :",current_type.c_str(), test_type.c_str(),
+                    static_cast<unsigned long long>(current_p), static_cast<unsigned long long>(n));
+
+        tbb::parallel_sort(iter, iter + n, *compare );
+
+        if (!Validate(iter, sorted_list, n))
+            passed = false;
+        if ( Verbose ) printf("passed\n");
+    } while (init_iter(iter, sorted_list, n, *compare, false));
+    return passed;
+}
+
+//! The test routine specialize to concurrent_vector of Minimal, since it does not have a less defined for it
+template<>
+bool parallel_sortTest(size_t n, tbb::concurrent_vector<Minimal>::iterator iter, 
+                       tbb::concurrent_vector<Minimal>::iterator sorted_list, const MinimalCompare *compare) {
+    bool passed = true;
+
+    if (compare == NULL) return passed;
+    
+    init_iter(iter, sorted_list, n, *compare, true);
+    do {
+        if ( Verbose) 
+            printf("%s %s p=%llu n=%llu :",current_type.c_str(), test_type.c_str(),
+                    static_cast<unsigned long long>(current_p), static_cast<unsigned long long>(n));
+    
+        tbb::parallel_sort(iter, iter + n, *compare );
+
+        if (!Validate(iter, sorted_list, n))
+            passed = false;
+        if ( Verbose ) printf("passed\n");
+    } while (init_iter(iter, sorted_list, n, *compare, false));
+    return passed;
+}
+
+//! The main driver for the tests.
+/*! Minimal, float and string types are used.  All interfaces to parallel_sort that are usable
+    by each type are tested.
+*/
+void Flog( int nthread ) {
+    // For eacg type create: 
+    // the list to be sorted by parallel_sort (array) 
+    // the list to be sort by STL sort (array_2)
+    // and a less function object
+
+    const size_t N = 50000;
+    
+    Minimal *minimal_array = new Minimal[N];
+    Minimal *minimal_array_2 = new Minimal[N];
+    MinimalCompare minimal_less;
+
+    float *float_array = new float[N];
+    float *float_array_2 = new float[N];
+    std::less<float> float_less;
+
+    std::string *string_array = new std::string[N];
+    std::string *string_array_2 = new std::string[N];
+    std::less<std::string> string_less;
+
+    tbb::concurrent_vector<float> float_cv1;
+    tbb::concurrent_vector<float> float_cv2;
+    float_cv1.grow_to_at_least(N);
+    float_cv2.grow_to_at_least(N);
+
+    tbb::concurrent_vector<Minimal> minimal_cv1;
+    tbb::concurrent_vector<Minimal> minimal_cv2;
+    minimal_cv1.grow_to_at_least(N);
+    minimal_cv2.grow_to_at_least(N);
+ 
+ 
+    // run the appropriate tests for each type
+
+    current_type = "Minimal(less)";
+    parallel_sortTest(0, minimal_array, minimal_array_2, &minimal_less);
+    parallel_sortTest(1, minimal_array, minimal_array_2, &minimal_less);
+    parallel_sortTest(10, minimal_array, minimal_array_2, &minimal_less);
+    parallel_sortTest(9999, minimal_array, minimal_array_2, &minimal_less);
+    parallel_sortTest(50000, minimal_array, minimal_array_2, &minimal_less);
+
+    current_type = "float (no less)";
+    parallel_sortTest(0, float_array, float_array_2, static_cast<std::less<float> *>(NULL)); 
+    parallel_sortTest(1, float_array, float_array_2, static_cast<std::less<float> *>(NULL)); 
+    parallel_sortTest(10, float_array, float_array_2, static_cast<std::less<float> *>(NULL)); 
+    parallel_sortTest(9999, float_array, float_array_2, static_cast<std::less<float> *>(NULL)); 
+    parallel_sortTest(50000, float_array, float_array_2, static_cast<std::less<float> *>(NULL)); 
+
+    current_type = "float (less)";
+    parallel_sortTest(0, float_array, float_array_2, &float_less); 
+    parallel_sortTest(1, float_array, float_array_2, &float_less); 
+    parallel_sortTest(10, float_array, float_array_2, &float_less); 
+    parallel_sortTest(9999, float_array, float_array_2, &float_less); 
+    parallel_sortTest(50000, float_array, float_array_2, &float_less); 
+
+    current_type = "string (no less)";
+    parallel_sortTest(0, string_array, string_array_2, static_cast<std::less<std::string> *>(NULL));
+    parallel_sortTest(1, string_array, string_array_2, static_cast<std::less<std::string> *>(NULL));
+    parallel_sortTest(10, string_array, string_array_2, static_cast<std::less<std::string> *>(NULL));
+    parallel_sortTest(9999, string_array, string_array_2, static_cast<std::less<std::string> *>(NULL));
+    parallel_sortTest(50000, string_array, string_array_2, static_cast<std::less<std::string> *>(NULL));
+
+    current_type = "string (less)";
+    parallel_sortTest(0, string_array, string_array_2, &string_less);
+    parallel_sortTest(1, string_array, string_array_2, &string_less);
+    parallel_sortTest(10, string_array, string_array_2, &string_less);
+    parallel_sortTest(9999, string_array, string_array_2, &string_less);
+    parallel_sortTest(50000, string_array, string_array_2, &string_less);
+
+    current_type = "concurrent_vector<float> (no less)";
+    parallel_sortTest(0, float_cv1.begin(), float_cv2.begin(), static_cast<std::less<float> *>(NULL));
+    parallel_sortTest(1, float_cv1.begin(), float_cv2.begin(), static_cast<std::less<float> *>(NULL));
+    parallel_sortTest(10, float_cv1.begin(), float_cv2.begin(), static_cast<std::less<float> *>(NULL));
+    parallel_sortTest(9999, float_cv1.begin(), float_cv2.begin(), static_cast<std::less<float> *>(NULL));
+    parallel_sortTest(50000, float_cv1.begin(), float_cv2.begin(), static_cast<std::less<float> *>(NULL));
+
+    current_type = "concurrent_vector<float> (less)";
+    parallel_sortTest(0, float_cv1.begin(), float_cv2.begin(), &float_less);
+    parallel_sortTest(1, float_cv1.begin(), float_cv2.begin(), &float_less);
+    parallel_sortTest(10, float_cv1.begin(), float_cv2.begin(), &float_less);
+    parallel_sortTest(9999, float_cv1.begin(), float_cv2.begin(), &float_less);
+    parallel_sortTest(50000, float_cv1.begin(), float_cv2.begin(), &float_less);
+
+    current_type = "concurrent_vector<Minimal> (less)";
+    parallel_sortTest(0, minimal_cv1.begin(), minimal_cv2.begin(), &minimal_less);
+    parallel_sortTest(1, minimal_cv1.begin(), minimal_cv2.begin(), &minimal_less);
+    parallel_sortTest(10, minimal_cv1.begin(), minimal_cv2.begin(), &minimal_less);
+    parallel_sortTest(9999, minimal_cv1.begin(), minimal_cv2.begin(), &minimal_less);
+    parallel_sortTest(50000, minimal_cv1.begin(), minimal_cv2.begin(), &minimal_less);
+
+    delete [] minimal_array;
+    delete [] minimal_array_2;
+
+    delete [] float_array;
+    delete [] float_array_2;
+
+    delete [] string_array;
+    delete [] string_array_2;
+}
+
+#include <cstdio>
+#include "harness_cpu.h"
+
+//! Parses the command line and iterates over the number of threads, calling Flog
+int main( int argc, char* argv[] ) {
+    ParseCommandLine(argc,argv);
+    if( MinThread<1 ) {
+        printf("Usage: number of threads must be positive\n");
+        exit(1);
+    }
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        if( p>0 ) {
+            tbb::task_scheduler_init init( p );
+            current_p = p;
+            Flog(p);
+
+            // Test that all workers sleep when no work
+            TestCPUUserTime(p-1);
+        }
+    } 
+    printf("done\n");
+    return 0;
+}
+
diff --git a/src/test/test_parallel_while.cpp b/src/test/test_parallel_while.cpp
new file mode 100644
index 0000000..e4b8f82
--- /dev/null
+++ b/src/test/test_parallel_while.cpp
@@ -0,0 +1,183 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/parallel_while.h"
+#include "harness_assert.h"
+
+const int N = 200;
+
+typedef int Element;
+
+//! Representation of an array index with only those signatures required by parallel_while.
+class MinimalArgumentType {
+    void operator=( const MinimalArgumentType& );
+    long my_value;
+    enum {
+        DEAD=0xDEAD,
+        LIVE=0x2718,
+        INITIALIZED=0x3141 
+    } my_state;
+public:
+    ~MinimalArgumentType() {
+        ASSERT( my_state==LIVE||my_state==INITIALIZED, NULL );
+        my_state = DEAD;
+    }
+    MinimalArgumentType() {
+        my_state = LIVE;
+    }
+    void set_value( long i ) {
+        ASSERT( my_state==LIVE||my_state==INITIALIZED, NULL );
+        my_value = i;
+        my_state = INITIALIZED;
+    }
+    long get_value() const {
+        ASSERT( my_state==INITIALIZED, NULL );
+        return my_value;
+    } 
+};
+
+class IntegerStream {
+    long my_limit;
+    long my_index;
+public:
+    IntegerStream( long n ) : my_limit(n), my_index(0) {}
+    bool pop_if_present( MinimalArgumentType& v ) {
+        if( my_index>=my_limit ) 
+            return false;
+        v.set_value( my_index );
+        my_index+=2;
+        return true;
+    }
+};
+
+class MatrixMultiplyBody {
+    Element (*a)[N];
+    Element (*b)[N];
+    Element (*c)[N];
+    const int n;
+    tbb::parallel_while<MatrixMultiplyBody>& my_while;
+public:
+    typedef MinimalArgumentType argument_type;
+    void operator()( argument_type i_arg ) const {
+        long i = i_arg.get_value();
+        if( (i&1)==0 && i+1<N ) {
+            MinimalArgumentType value;
+            value.set_value(i+1);
+            my_while.add( value );
+        }
+        for( int j=0; j<n; ++j )    
+            c[i][j] = 0;
+        for( int k=0; k<n; ++k ) {
+            Element aik = a[i][k];
+            for( int j=0; j<n; ++j )    
+                c[i][j] += aik*b[k][j];
+        }
+    }
+    MatrixMultiplyBody( tbb::parallel_while<MatrixMultiplyBody>& w, Element c_[N][N], Element a_[N][N], Element b_[N][N], int n_ ) :
+        a(a_), b(b_), c(c_), n(n_),  my_while(w)
+    {}
+};
+
+void WhileMatrixMultiply( Element c[N][N], Element a[N][N], Element b[N][N], int n ) {
+    IntegerStream stream( N );
+    tbb::parallel_while<MatrixMultiplyBody> w;
+    MatrixMultiplyBody body(w,c,a,b,n);
+    w.run( stream, body );
+}
+
+#include "harness.h"
+#include "tbb/tick_count.h"
+#include <cstdlib>
+#include <cstdio>
+using namespace std;
+
+static long Iterations = 5;
+
+static void SerialMatrixMultiply( Element c[N][N], Element a[N][N], Element b[N][N], int n ) {
+    for( int i=0; i<n; ++i ) {   
+        for( int j=0; j<n; ++j )    
+            c[i][j] = 0;
+        for( int k=0; k<n; ++k ) {
+            Element aik = a[i][k];
+            for( int j=0; j<n; ++j )    
+                c[i][j] += aik*b[k][j];
+        }
+    }
+}
+
+static void InitializeMatrix( Element x[N][N], int n, int salt ) {
+    for( int i=0; i<n; ++i )
+        for( int j=0; j<n; ++j )
+            x[i][j] = (i*n+j)^salt;
+}
+
+static Element A[N][N], B[N][N], C[N][N], D[N][N];
+
+static void Run( int nthread, int n ) {
+    /* Initialize matrices */
+    InitializeMatrix(A,n,5);
+    InitializeMatrix(B,n,10);
+    InitializeMatrix(C,n,0);
+    InitializeMatrix(D,n,15);
+
+    tbb::tick_count t0 = tbb::tick_count::now();
+    for( long i=0; i<Iterations; ++i ) {
+        WhileMatrixMultiply( C, A, B, n );
+    }
+    tbb::tick_count t1 = tbb::tick_count::now();
+    SerialMatrixMultiply( D, A, B, n );
+
+    // Check result
+    for( int i=0; i<n; ++i )   
+        for( int j=0; j<n; ++j )    
+            ASSERT( C[i][j]==D[i][j], NULL );
+    if( Verbose ) 
+        printf("time=%g\tnthread=%d\tn=%d\n",(t1-t0).seconds(),nthread,n);
+}
+
+#include "tbb/task_scheduler_init.h"
+#include "harness_cpu.h"
+
+int main( int argc, char* argv[] ) {
+    ParseCommandLine( argc, argv );
+    if( MinThread<1 ) {
+        printf("number of threads must be positive\n");
+        exit(1);
+    }
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        tbb::task_scheduler_init init( p );
+        for( int n=N/4; n<=N; n+=N/4 )
+            Run(p,n);
+
+        // Test that all workers sleep when no work
+        TestCPUUserTime(p-1);
+    }
+    printf("done\n");
+    return 0;
+}
+
diff --git a/src/test/test_pipeline.cpp b/src/test/test_pipeline.cpp
new file mode 100644
index 0000000..e550cee
--- /dev/null
+++ b/src/test/test_pipeline.cpp
@@ -0,0 +1,173 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/pipeline.h"
+#include "tbb/tick_count.h"
+#include <cstdlib>
+#include <cstdio>
+#include "harness.h"
+
+struct Buffer {
+    int id;
+    //! True if Buffer is in use.
+    bool is_busy;
+    Buffer() : id(-1), is_busy(false) {}
+};
+
+static size_t InputCounter;
+static const size_t MaxStreamSize = 1<<12;
+//! Maximum number of filters allowed
+static const int MaxFilters = 5;
+static size_t StreamSize;
+static const size_t MaxBuffer = 8;
+static bool Done[MaxFilters][MaxStreamSize];
+
+class MyFilter: public tbb::filter {
+    bool* const my_done;
+    const bool my_is_last;      
+public:
+    MyFilter( bool is_ordered, bool done[], bool is_last ) : 
+        filter(is_ordered) ,
+        my_done(done),
+        my_is_last(is_last)
+    {}
+    /*override*/void* operator()( void* item ) {
+        Buffer& b = *static_cast<Buffer*>(item);
+        ASSERT( 0<=b.id && size_t(b.id)<StreamSize, NULL );
+        ASSERT( !my_done[b.id], "duplicate processing of token?" );
+        ASSERT( !is_serial() || b.id==0 || my_done[b.id-1], NULL );
+        ASSERT( b.is_busy, NULL );
+        my_done[b.id] = true;
+        if( my_is_last ) {
+            b.is_busy = false;
+        }
+        return item;
+    }
+};
+
+class MyInput: public tbb::filter {
+    const size_t my_number_of_filters;
+    size_t next_buffer;
+    Buffer buffer[MaxBuffer];
+    /*override*/void* operator()( void* );
+public:
+    MyInput( bool is_ordered, int number_of_filters ) : 
+        tbb::filter(is_ordered),
+        my_number_of_filters(number_of_filters),
+        next_buffer(0)
+    {}
+    bool last_filter_is_ordered;        
+};
+
+void* MyInput::operator()(void*) {
+    if( InputCounter>=StreamSize ) 
+        return NULL;
+    else {
+retry:
+        Buffer& b = buffer[next_buffer];
+        ASSERT( &buffer[0] <= &b, NULL );
+        ASSERT( &b <= &buffer[MaxBuffer-1], NULL ); 
+        next_buffer = (next_buffer+1) % MaxBuffer;
+        if( !last_filter_is_ordered && b.is_busy ) 
+            goto retry;
+        ASSERT( !b.is_busy, "premature reuse of buffer");
+        b.id = int(InputCounter++);
+        b.is_busy = my_number_of_filters>1;
+        return &b;
+    }
+}
+
+//! Test pipeline that has a single stage, which is ordered, or two stages, where first is unordered.
+void TestTrivialpipeline( size_t nthread, int number_of_filters ) {
+    if( Verbose ) 
+        printf("testing with %d filters\n", number_of_filters );
+    ASSERT( number_of_filters<=MaxFilters, "too many filters" );
+    // Iterate over possible ordered/unordered filter sequences
+    for( int bitmask=0; bitmask<1<<number_of_filters; ++bitmask ) {
+        // Build pipeline
+        tbb::pipeline pipeline;
+        tbb::filter* filter[MaxFilters];
+        for( int i=0; i<number_of_filters; ++i ) {
+            const bool is_ordered = bitmask>>i&1;
+            const bool is_last = i==number_of_filters-1;
+            if( i==0 )
+                filter[i] = new MyInput(is_ordered,number_of_filters);
+            else
+                filter[i] = new MyFilter(is_ordered,Done[i],is_last);
+            pipeline.add_filter(*filter[i]);
+            if( is_last ) 
+                static_cast<MyInput*>(filter[0])->last_filter_is_ordered = is_ordered;
+        }
+        for( StreamSize=0; StreamSize<=MaxStreamSize; StreamSize += StreamSize/3+1 ) {
+            memset( Done, 0, sizeof(Done) );
+            InputCounter = 0;
+            tbb::tick_count t0 = tbb::tick_count::now();
+            pipeline.run( nthread<MaxBuffer ? nthread : MaxBuffer-1 );
+            tbb::tick_count t1 = tbb::tick_count::now();
+            if( number_of_filters>0 ) 
+                ASSERT( InputCounter==StreamSize, NULL );
+            for( int i=1; i<MaxFilters; ++i )
+                for( size_t j=0; j<StreamSize; ++j ) {
+                    ASSERT( Done[i][j]==(i<number_of_filters), NULL );
+                }
+        }
+        pipeline.clear();
+        for( int i=number_of_filters; --i>=0; ) {
+            delete filter[i];
+            filter[i] = NULL;
+        }
+    }
+}
+
+#include "tbb/task_scheduler_init.h"
+#include "harness_cpu.h"
+
+int main( int argc, char* argv[] ) {
+    // Default is at least one thread.
+    MinThread = 1;
+    ParseCommandLine(argc,argv);
+    if( MinThread<1 ) {
+        printf("must have at least one thread");
+        exit(1);
+    }
+
+    // Test with varying number of threads.
+    for( int nthread=MinThread; nthread<=MaxThread; ++nthread ) {
+        // Initialize TBB task scheduler
+        tbb::task_scheduler_init init( nthread );
+
+        // Test pipelines with n filters
+        for( int n=0; n<=5; ++n )
+            TestTrivialpipeline(size_t(nthread),n);
+
+        // Test that all workers sleep when no work
+        TestCPUUserTime(nthread-1);
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_rwm_upgrade_downgrade.cpp b/src/test/test_rwm_upgrade_downgrade.cpp
new file mode 100644
index 0000000..0f8658c
--- /dev/null
+++ b/src/test/test_rwm_upgrade_downgrade.cpp
@@ -0,0 +1,92 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/queuing_rw_mutex.h"
+#include "tbb/spin_rw_mutex.h"
+#include "harness.h"
+#include "tbb/blocked_range.h"
+
+#define USE_TBB_PFOR 1
+
+#if USE_TBB_PFOR
+#include "tbb/task.h"
+#include "tbb/parallel_for.h"
+#endif
+
+using namespace tbb;
+
+volatile int Count = 0;
+
+template<typename RWMutex>
+struct Hammer {
+	RWMutex &MutexProtectingCount;
+    mutable volatile int dummy;
+
+    Hammer(RWMutex &m): MutexProtectingCount(m) {}
+    void operator()( const blocked_range<int>& range ) const {
+        for( int j=0; j<100000; ++j ) {
+            typename RWMutex::scoped_lock lock(MutexProtectingCount,false);
+            int c = Count;
+            for( int j=0; j<10; ++j ) {
+                ++dummy;
+            }
+            if( lock.upgrade_to_writer() ) {
+                // The upgrade suceeded without any intervening writers
+                ASSERT( c==Count, "another thread modified Count while I held a read lock" );
+            } else {
+                c = Count;
+            }
+            for( int j=0; j<10; ++j ) {
+                ++Count;
+            }
+            lock.downgrade_to_reader();
+            for( int j=0; j<10; ++j ) {
+                ++dummy;
+            }
+        }
+    }
+};
+
+queuing_rw_mutex QRW_mutex;
+spin_rw_mutex SRW_mutex;
+
+#include "tbb/task_scheduler_init.h"
+
+int main( int argc, char* argv[]) {
+    ParseCommandLine( argc, argv );
+#if USE_TBB_PFOR
+    task_scheduler_init init(NThread);
+    parallel_for( blocked_range<int>( 0, NThread, 1 ), Hammer<queuing_rw_mutex>(QRW_mutex) ); Count = 0;
+    parallel_for( blocked_range<int>( 0, NThread, 1 ), Hammer<spin_rw_mutex>(SRW_mutex) );
+#else
+    NativeParallelFor( blocked_range<int>( 0, NThread, 1 ), Hammer<queuing_rw_mutex>(QRW_mutex) ); Count = 0;
+    NativeParallelFor( blocked_range<int>( 0, NThread, 1 ), Hammer<spin_rw_mutex>(SRW_mutex) );
+#endif
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_task.cpp b/src/test/test_task.cpp
new file mode 100644
index 0000000..874dfa6
--- /dev/null
+++ b/src/test/test_task.cpp
@@ -0,0 +1,299 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/task.h"
+#include "tbb/atomic.h"
+#include "harness_assert.h"
+#include <cstdlib>
+
+//------------------------------------------------------------------------
+// Test for task::spawn_children and task_list
+//------------------------------------------------------------------------
+
+tbb::atomic<int> Count;
+
+class RecursiveTask: public tbb::task {
+    const int my_child_count;
+    const int my_depth; 
+    //! Spawn tasks in list.  Exact method depends upon my_depth&bit_mask.
+    void spawn_list( tbb::task_list& list, int bit_mask ) {
+        if( my_depth&bit_mask ) {
+            spawn(list);
+            ASSERT( list.empty(), NULL );
+            wait_for_all();
+        } else {
+            spawn_and_wait_for_all(list);
+            ASSERT( list.empty(), NULL );
+        }
+    }
+public:
+    RecursiveTask( int child_count, int depth ) : my_child_count(child_count), my_depth(depth) {}
+    /*override*/ tbb::task* execute() {
+        ++Count;
+        if( my_depth>0 ) {
+            tbb::task_list list;
+            ASSERT( list.empty(), NULL );
+            for( int k=0; k<my_child_count; ++k ) {
+                list.push_back( *new( tbb::task::allocate_child() ) RecursiveTask(my_child_count/2,my_depth-1 ) );
+                ASSERT( !list.empty(), NULL );
+            }
+            set_ref_count( my_child_count+1 );
+            spawn_list( list, 1 );
+            // Now try reusing this as the parent.
+            set_ref_count(2);
+            list.push_back( *new (tbb::task::allocate_child() ) tbb::empty_task() );
+            spawn_list( list, 2 );
+        }
+        return NULL;
+    }
+};
+
+//! Compute what Count should be after RecursiveTask(child_count,depth) runs.
+static int Expected( int child_count, int depth ) {
+    return depth<=0 ? 1 : 1+child_count*Expected(child_count/2,depth-1);
+}
+
+#include "tbb/task_scheduler_init.h"
+#include "harness.h"
+
+//! Test task::spawn( task_list& )
+void TestSpawnChildren( int nthread ) {
+    if( Verbose ) 
+        printf("testing task::spawn_children for %d threads\n",nthread);
+    tbb::task_scheduler_init init(nthread);
+    for( int j=0; j<50; ++j ) {
+        Count = 0;
+        RecursiveTask& p = *new( tbb::task::allocate_root() ) RecursiveTask(j,4);
+        tbb::task::spawn_root_and_wait(p);
+        int expected = Expected(j,4);
+        ASSERT( Count==expected, NULL );
+    }
+}
+
+//! Test task::spawn_root_and_wait( task_list& )
+void TestSpawnRootList( int nthread ) {
+    if( Verbose ) 
+        printf("testing task::spawn_root_and_wait(task_list&) for %d threads\n",nthread);
+    tbb::task_scheduler_init init(nthread);
+    for( int j=0; j<5; ++j )
+        for( int k=0; k<10; ++k ) {
+            Count = 0;
+            tbb::task_list list; 
+            for( int i=0; i<k; ++i )
+                list.push_back( *new( tbb::task::allocate_root() ) RecursiveTask(j,4) );
+            tbb::task::spawn_root_and_wait(list);
+            int expected = k*Expected(j,4);
+            ASSERT( Count==expected, NULL );
+        }    
+}
+
+//------------------------------------------------------------------------
+// Test for task::recycle_as_safe_continuation
+//------------------------------------------------------------------------
+
+class TaskGenerator: public tbb::task {
+    int my_child_count;
+    int my_depth;
+    
+public:
+    TaskGenerator( int child_count, int depth ) : my_child_count(child_count), my_depth(depth) {}
+    ~TaskGenerator( ) { my_child_count = my_depth = -125; }
+
+    /*override*/ tbb::task* execute() {
+        ASSERT( my_child_count>=0 && my_depth>=0, NULL );
+        if( my_depth>0 ) {
+            recycle_as_safe_continuation();
+            set_ref_count( my_child_count+1 );
+            for( int j=0; j<my_child_count; ++j ) {
+                tbb::task& t = *new( allocate_child() ) TaskGenerator(my_child_count/2,my_depth-1);
+                spawn(t);
+            }
+            --my_depth;
+#if __linux__||__APPLE__
+            sched_yield();
+#else
+            Sleep(0);
+#endif /* __linux__ */
+            ASSERT( state()==recycle && ref_count()>0, NULL);
+        }
+        return NULL;
+    }
+};
+
+void TestSafeContinuation( int nthread ) {
+    if( Verbose ) 
+        printf("testing task::recycle_as_safe_continuation for %d threads\n",nthread);
+    tbb::task_scheduler_init init(nthread);
+    for( int j=8; j<33; ++j ) {
+        TaskGenerator& p = *new( tbb::task::allocate_root() ) TaskGenerator(j,5);
+        tbb::task::spawn_root_and_wait(p);
+    }
+}
+
+//------------------------------------------------------------------------
+// Test that important assertions in class task fail as expected.
+//------------------------------------------------------------------------
+
+#include "tbb/blocked_range.h"
+#include "harness_bad_expr.h"
+
+//! Task that will be abused.
+tbb::task* volatile AbusedTask;
+
+//! Number of times that AbuseOneTask
+int AbuseOneTaskRan;
+
+//! Body used to create task in thread 0 and abuse it in thread 1.
+struct AbuseOneTask {
+    void operator()( const tbb::blocked_range<int>& r ) const {
+        tbb::task_scheduler_init init;
+        // Thread 1 attempts to incorrectly use the task created by thread 0.
+        TRY_BAD_EXPR(AbusedTask->spawn(*AbusedTask),"owne");
+        TRY_BAD_EXPR(AbusedTask->spawn_and_wait_for_all(*AbusedTask),"owne");
+        TRY_BAD_EXPR(tbb::task::spawn_root_and_wait(*AbusedTask),"owne");
+
+        // Try variant that operate on a tbb::task_list
+        tbb::task_list list;
+        TRY_BAD_EXPR(AbusedTask->spawn(list),"owne");
+        TRY_BAD_EXPR(AbusedTask->spawn_and_wait_for_all(list),"owne");
+        // spawn_root_and_wait over empty list should vacuously succeed.
+        tbb::task::spawn_root_and_wait(list);
+
+        // Check that spawn_root_and_wait fails on non-empty list. 
+        list.push_back(*AbusedTask);
+        TRY_BAD_EXPR(tbb::task::spawn_root_and_wait(list),"owne");
+
+        TRY_BAD_EXPR(AbusedTask->destroy(*AbusedTask),"owne");
+        TRY_BAD_EXPR(AbusedTask->wait_for_all(),"owne");
+
+        // Try abusing recycle_as_continuation
+        TRY_BAD_EXPR(AbusedTask->recycle_as_continuation(), "execute" );
+        TRY_BAD_EXPR(AbusedTask->recycle_as_safe_continuation(), "execute" );
+        TRY_BAD_EXPR(AbusedTask->recycle_to_reexecute(), "execute" );
+
+        // Check correct use of depth parameter
+        tbb::task::depth_type depth = AbusedTask->depth();
+        ASSERT( depth==0, NULL );
+        for( int k=1; k<=81; k*=3 ) {
+            AbusedTask->set_depth(depth+k);
+            ASSERT( AbusedTask->depth()==depth+k, NULL );
+            AbusedTask->add_to_depth(k+1);
+            ASSERT( AbusedTask->depth()==depth+2*k+1, NULL );
+        }
+        AbusedTask->set_depth(0);
+
+        // Try abusing the depth parameter
+        TRY_BAD_EXPR(AbusedTask->set_depth(-1),"negative");
+        TRY_BAD_EXPR(AbusedTask->add_to_depth(-1),"negative");
+
+        ++AbuseOneTaskRan;
+    }
+};
+
+//! Test various __TBB_ASSERT assertions related to class tbb::task.
+void TestTaskAssertions() {
+#if TBB_DO_ASSERT
+    // Catch assertion failures
+    tbb::set_assertion_handler( AssertionFailureHandler );
+    tbb::task_scheduler_init init;
+    // Create task to be abused
+    AbusedTask = new( tbb::task::allocate_root() ) tbb::empty_task;
+    NativeParallelFor( tbb::blocked_range<int>(0,1,1), AbuseOneTask() );
+    ASSERT( AbuseOneTaskRan==1, NULL );
+    AbusedTask->destroy(*AbusedTask);
+    // Restore normal assertion handling
+    tbb::set_assertion_handler( NULL );
+#endif /* TBB_DO_ASSERT */
+}
+
+//------------------------------------------------------------------------
+// Test that recovery actions work correctly for task::allocate_* methods
+// when a task's constructor throws an exception.
+//------------------------------------------------------------------------
+
+static int TestUnconstructibleTaskCount;
+
+struct ConstructionFailure {
+};
+
+//! Task that cannot be constructed.  
+struct UnconstructibleTask: public tbb::empty_task {
+    UnconstructibleTask() {
+        throw ConstructionFailure();
+    }
+};
+
+#define TRY_BAD_CONSTRUCTION(x)                  \
+    {                                            \
+        try {                                    \
+            new(x) UnconstructibleTask;          \
+        } catch( ConstructionFailure ) {         \
+            ASSERT( parent()==original_parent, NULL ); \
+            ASSERT( ref_count()==original_ref_count, "incorrectly changed ref_count" );\
+            ++TestUnconstructibleTaskCount;      \
+        }                                        \
+    }
+
+struct RootTaskForTestUnconstructibleTask: public tbb::task {
+    tbb::task* execute() {
+        tbb::task* original_parent = parent();
+        ASSERT( original_parent!=NULL, NULL );
+        int original_ref_count = ref_count();
+        TRY_BAD_CONSTRUCTION( allocate_root() );
+        TRY_BAD_CONSTRUCTION( allocate_child() );
+        TRY_BAD_CONSTRUCTION( allocate_continuation() );
+        TRY_BAD_CONSTRUCTION( allocate_additional_child_of(*this) );
+        return NULL;
+    }
+};
+
+void TestUnconstructibleTask() {
+    TestUnconstructibleTaskCount = 0;
+    tbb::task_scheduler_init init;
+    tbb::task* t = new( tbb::task::allocate_root() ) RootTaskForTestUnconstructibleTask;
+    tbb::task::spawn_root_and_wait(*t);
+    ASSERT( TestUnconstructibleTaskCount==4, NULL );
+}
+
+//------------------------------------------------------------------------
+
+int main(int argc, char* argv[]) {
+    srand(2);
+    MinThread = 1;
+    ParseCommandLine( argc, argv );
+    TestTaskAssertions();
+    TestUnconstructibleTask();
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        TestSpawnChildren( p );
+        TestSpawnRootList( p );
+        TestSafeContinuation( p );
+    }
+    printf("done\n");
+    return 0;
+}
+
diff --git a/src/test/test_task_leaks.cpp b/src/test/test_task_leaks.cpp
new file mode 100644
index 0000000..000f1c0
--- /dev/null
+++ b/src/test/test_task_leaks.cpp
@@ -0,0 +1,147 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+
+#define  COUNT_TASK_NODES 1
+#include "../tbb/task.cpp"
+
+#include "tbb/atomic.h"
+#include "harness_assert.h"
+#include <cstdlib>
+
+//------------------------------------------------------------------------
+// Test for task::spawn_children
+//------------------------------------------------------------------------
+
+tbb::atomic<int> Count;
+
+#include "tbb/task_scheduler_init.h"
+#include "harness.h"
+using namespace tbb;
+using namespace tbb::internal;
+
+class TaskGenerator: public tbb::task {
+    const int my_child_count;
+    int my_depth;
+public:
+    TaskGenerator(int child_count, int depth) : my_child_count(child_count), my_depth(depth) {}
+    /*override*/ tbb::task* execute() {
+        if( my_depth>0 ) {
+            tbb::task& c  = *new( tbb::task::allocate_continuation() ) tbb::empty_task;
+            c.set_ref_count( my_child_count );
+            recycle_as_child_of(c);
+            for( int j=1; j<my_child_count; ++j ) {
+                tbb::task& t = *new( c.allocate_child() ) TaskGenerator(my_child_count, my_depth-1);
+                c.spawn(t);
+            }
+            --my_depth;
+            return this;
+        }
+        return NULL;
+    }
+};
+
+#include "harness_memory.h"
+#include <math.h>
+
+//! Tests whether task scheduler allows thieves to hoard task objects.
+/** The test takes a while to run, so we run it only with the default
+    number of threads. */
+void TestTaskReclamation() {
+    if( Verbose )
+        printf("testing task reclamation\n");
+    size_t initial_amount_of_memory = 0;
+    double task_count_sum = 0;
+    double task_count_sum_square = 0;
+    double average, sigma;
+
+    tbb::task_scheduler_init init;
+    int N = 20;
+    for( int i=0; i<N; ++i ) {
+        // First N iterations fill internal buffers and collect initial statistics
+        for( int j=0; j<10; ++j ) {
+            tbb::task& t = *new( tbb::task::allocate_root() ) TaskGenerator(/*child_count=*/4, /*depth=*/6);
+            tbb::task::spawn_root_and_wait(t);
+        }
+
+        size_t m = GetMemoryUsage();
+        if( m-initial_amount_of_memory > 0)
+            initial_amount_of_memory = m;
+
+        tbb::internal::intptr n = (*reinterpret_cast<GenericScheduler**>(&init))->get_task_node_count( /*count_arena_workers=*/true );
+        task_count_sum += n;
+        task_count_sum_square += n*n;
+    }
+    // Calculate statistical values
+    average = task_count_sum / N;
+    sigma   = sqrt( (task_count_sum_square - task_count_sum*task_count_sum/N)/N );
+    if( Verbose )
+        printf("Average task count: %g, sigma: %g, sum: %g, square sum:%g \n", average, sigma, task_count_sum, task_count_sum_square);
+
+    int error_count = 0;
+    for( int i=0; i<500; ++i ) {
+        // These iterations check for excessive memory use and unreasonable task count
+        for( int j=0; j<10; ++j ) {
+            tbb::task& t = *new( tbb::task::allocate_root() ) TaskGenerator(/*child_count=*/4, /*depth=*/6);
+            tbb::task::spawn_root_and_wait(t);
+        }
+        tbb::internal::intptr n = (*reinterpret_cast<GenericScheduler**>(&init))->get_task_node_count( /*count_arena_workers=*/true );
+        size_t m = GetMemoryUsage();
+
+        if( (m-initial_amount_of_memory > 0) && (n > average+4*sigma) ) {
+            ++error_count;
+            // Use 4*sigma interval (for normal distribution, 3*sigma contains ~99% of values).
+            // Issue a warning for the first couple of times, then errors
+            printf( "%s: possible leak of up to %ld bytes; currently %ld cached task objects (iteration=%d)\n",
+                    error_count>3?"Error":"Warning", long(m-initial_amount_of_memory), long(n), i );
+            initial_amount_of_memory = m;
+            if( error_count>5 ) break;
+        } else {
+            if( Verbose )
+                printf( "Consumed %ld bytes and %ld objects (iteration=%d)\n", long(m), long(n), i );
+        }
+    }
+}
+
+//------------------------------------------------------------------------
+
+int main(int argc, char* argv[]) {
+#if _WIN32||_WIN64
+    // This initialization is normally done by DllMain in task.cpp,
+    // but because this test directly includes task.cpp,
+    // the initialization must be done explicitly.
+    InitializeCriticalSection(&OneTimeInitializationCriticalSection);
+#endif /* _WIN32||_WIN64 */
+    srand(2);
+    MinThread = 1;
+    ParseCommandLine( argc, argv );
+    TestTaskReclamation();
+    printf("done\n");
+    return 0;
+}
+
diff --git a/src/test/test_task_scheduler_init.cpp b/src/test/test_task_scheduler_init.cpp
new file mode 100644
index 0000000..3b6e91c
--- /dev/null
+++ b/src/test/test_task_scheduler_init.cpp
@@ -0,0 +1,98 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/task_scheduler_init.h"
+#include <cstdlib>
+
+//! Test that task::initialize and task::terminate work when doing nothing else.
+/** maxthread is treated as the "maximum" number of worker threads. */
+void InitializeAndTerminate( int maxthread ) {
+    for( int i=0; i<200; ++i ) {
+        switch( i&3 ) {
+            default: {
+                tbb::task_scheduler_init init( rand() % maxthread + 1 );
+                break;
+            }
+            case 0: {   
+                tbb::task_scheduler_init init;
+                break;
+            }
+            case 1: {
+                tbb::task_scheduler_init init( tbb::task_scheduler_init::automatic );
+                break;
+            }
+            case 2: {
+                tbb::task_scheduler_init init( tbb::task_scheduler_init::deferred );
+                init.initialize( rand() % maxthread + 1 );
+                init.terminate();
+                break;
+            }
+        }
+    }
+}
+
+#include <cstdio>
+#include <stdexcept>
+#include "harness.h"
+#include "tbb/blocked_range.h"
+
+#if _WIN64
+namespace std {      // 64-bit Windows compilers have not caught up with 1998 ISO C++ standard
+    using ::srand;
+    using ::printf;
+}
+#endif /* _WIN64 */
+
+struct ThreadedInit {
+    void operator()( const tbb::blocked_range<long>& r ) const {
+        try {
+            InitializeAndTerminate(MaxThread);
+        } catch( std::runtime_error& error ) {
+            std::printf("ERROR: %s\n", error.what() );
+        }
+    }
+};
+
+//! Test driver
+int main(int argc, char* argv[]) {
+    std::srand(2);
+    // Set defaults
+    MaxThread = MinThread = 2;
+    ParseCommandLine( argc, argv );
+    try {
+        InitializeAndTerminate(MaxThread);
+    } catch( std::runtime_error& error ) {
+        std::printf("ERROR: %s\n", error.what() );
+    }
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        if( Verbose ) printf("testing with %d threads\n", p );
+        NativeParallelFor( tbb::blocked_range<long>(0,p,1), ThreadedInit() );
+    }
+    std::printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_tick_count.cpp b/src/test/test_tick_count.cpp
new file mode 100644
index 0000000..c13e99b
--- /dev/null
+++ b/src/test/test_tick_count.cpp
@@ -0,0 +1,160 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+#include "tbb/tick_count.h"
+#include "harness.h"
+#include <cstdio>
+
+//! Assert that two times in seconds are very close.
+void AssertNear( double x, double y ) {
+    ASSERT( -1.0E-10 <= x-y && x-y <=1.0E-10, NULL );
+}
+
+//! Test arithmetic operators on tick_count::interval_t
+void TestArithmetic( const tbb::tick_count& t0, const tbb::tick_count& t1, const tbb::tick_count& t2 ) {
+    tbb::tick_count::interval_t i= t1-t0;
+    tbb::tick_count::interval_t j = t2-t1;
+    tbb::tick_count::interval_t k = t2-t0;
+    AssertSameType( tbb::tick_count::interval_t(), i-j );
+    AssertSameType( tbb::tick_count::interval_t(), i+j );
+    ASSERT( i.seconds()>1E-9, NULL );
+    ASSERT( j.seconds()>1E-9, NULL );
+    ASSERT( k.seconds()>2E-9, NULL );
+    AssertNear( (i+j).seconds(), k.seconds() );
+    AssertNear( (k-j).seconds(), i.seconds() );
+    AssertNear( ((k-j)+(j-i)).seconds(), k.seconds()-i.seconds() );
+    tbb::tick_count::interval_t sum;
+    sum += i;
+    sum += j;
+    AssertNear( sum.seconds(), k.seconds() );
+    sum -= i;
+    AssertNear( sum.seconds(), j.seconds() );
+    sum -= j;
+    AssertNear( sum.seconds(), 0.0 );
+}
+
+//------------------------------------------------------------------------
+// Test for overhead in calls to tick_count 
+//------------------------------------------------------------------------
+
+//! Wait for given duration.
+/** The duration parameter is in units of seconds. */
+static void WaitForDuration( double duration ) {
+    tbb::tick_count start = tbb::tick_count::now();
+    while( (tbb::tick_count::now()-start).seconds() < duration )
+        continue;
+}
+
+//! Test that average timer overhead is within acceptable limit.
+/** The 'tolerance' value inside the test specifies the limit. */
+void TestSimpleDelay( int ntrial, double duration, double tolerance ) {
+    double total_worktime = 0;
+    // Iteration -1 warms up the code cache.
+    for( int trial=-1; trial<ntrial; ++trial ) {
+        tbb::tick_count t0 = tbb::tick_count::now();
+        if( duration ) WaitForDuration(duration);
+        tbb::tick_count t1 = tbb::tick_count::now();
+        if( trial>=0 ) {
+            total_worktime += (t1-t0).seconds(); 
+        }
+    }
+    // Compute average worktime and average delta
+    double worktime = total_worktime/ntrial;
+    double delta = worktime-duration;
+    if (Verbose)
+        printf("worktime=%g delta=%g tolerance=%g\n", worktime, delta, tolerance);
+
+    // Check that delta is acceptable
+    if( delta<0 ) 
+        printf("ERROR: delta=%g < 0\n",delta); 
+    if( delta>tolerance )
+        printf("%s: delta=%g > %g=tolerance where duration=%g\n",delta>3*tolerance?"ERROR":"WARNING",delta,tolerance,duration);
+}
+
+//------------------------------------------------------------------------
+// Test for subtracting calls to tick_count from different threads.
+//------------------------------------------------------------------------
+
+#include "tbb/atomic.h"
+#include "tbb/blocked_range.h"
+const int MAX_NTHREAD = 1000;
+static tbb::atomic<int> Counter;
+static volatile bool Flag;
+static tbb::tick_count tick_countArray[MAX_NTHREAD];
+
+struct tick_countDifferenceBody {
+    void operator()( const tbb::blocked_range<int>& range ) const {
+        ASSERT( range.begin()+1==range.end(), "grainsize must be 1" );
+        int id = range.begin();
+        if( --Counter==0 ) Flag = true;
+        while( !Flag ) continue;
+        tick_countArray[id] = tbb::tick_count::now();
+    }
+};
+
+//! Test that two tick_count values recorded on different threads can be meaningfully subtracted.
+void Testtick_countDifference( int n ) {
+    double tolerance = 3E-4;
+    for( int trial=0; trial<10; ++trial ) {
+        Counter = n;
+        Flag = false;
+        NativeParallelFor( tbb::blocked_range<int>(0,n,1), tick_countDifferenceBody() ); 
+        ASSERT( Counter==0, NULL ); 
+        for( int i=0; i<n; ++i )
+            for( int j=0; j<i; ++j ) {
+                double diff = (tick_countArray[i]-tick_countArray[j]).seconds();
+                if( diff<0 ) diff = -diff;
+                if( diff>tolerance ) {
+                    printf("%s: cross-thread tick_count difference = %g > %g = tolerance\n",
+                           diff>3*tolerance?"ERROR":"WARNING",diff,tolerance);
+                }
+            }
+    }
+}
+
+//------------------------------------------------------------------------
+// Test driver
+//------------------------------------------------------------------------
+
+//! Top level test driver. 
+int main( int argc, char* argv[]) {
+    ParseCommandLine(argc, argv);
+
+    tbb::tick_count t0 = tbb::tick_count::now();
+    TestSimpleDelay(/*ntrial=*/1000000,/*duration=*/0,    /*tolerance=*/2E-6);
+    tbb::tick_count t1 = tbb::tick_count::now();
+    TestSimpleDelay(/*ntrial=*/10,     /*duration=*/0.125,/*tolerance=*/5E-6);
+    tbb::tick_count t2 = tbb::tick_count::now();
+    TestArithmetic(t0,t1,t2);
+
+    for( int n=MinThread; n<=MaxThread; ++n ) {
+        Testtick_countDifference(n);
+    }
+    printf("done\n");
+    return 0;
+}
diff --git a/src/test/test_yield.cpp b/src/test/test_yield.cpp
new file mode 100644
index 0000000..12f20c8
--- /dev/null
+++ b/src/test/test_yield.cpp
@@ -0,0 +1,79 @@
+/*
+    Copyright 2005-2007 Intel Corporation.  All Rights Reserved.
+
+    This file is part of Threading Building Blocks.
+
+    Threading Building Blocks is free software; you can redistribute it
+    and/or modify it under the terms of the GNU General Public License
+    version 2 as published by the Free Software Foundation.
+
+    Threading Building Blocks 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.
+
+    You should have received a copy of the GNU General Public License
+    along with Threading Building Blocks; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    As a special exception, you may use this file as part of a free software
+    library without restriction.  Specifically, if other files instantiate
+    templates or use macros or inline functions from this file, or you compile
+    this file and link it with other files to produce an executable, this
+    file does not by itself cause the resulting executable to be covered by
+    the GNU General Public License.  This exception does not however
+    invalidate any other reasons why the executable file might be covered by
+    the GNU General Public License.
+*/
+
+// Test that __TBB_Yield works.
+// On Red Hat EL4 U1, it does not work, because sched_yield is broken.
+
+#include "tbb/tbb_machine.h"
+#include "harness.h"
+#include "tbb/blocked_range.h"
+#include "tbb/tick_count.h"
+
+static volatile long CyclicCounter;
+static volatile bool Quit;
+double SingleThreadTime;
+
+struct RoundRobin {
+    const int number_of_threads;
+    RoundRobin( long p ) : number_of_threads(p) {}
+    void operator()( const tbb::blocked_range<long>& r ) const {
+        const long k = r.begin();
+        tbb::tick_count t0 = tbb::tick_count::now();
+        for( long i=0; i<10000; ++i ) {
+            // Wait for previous thread to notify us 
+            for( int j=0; CyclicCounter!=k && !Quit; ++j ) {
+                __TBB_Yield();
+                if( j%100==0 ) {
+                    tbb::tick_count t1 = tbb::tick_count::now();
+                    if( (t1-t0).seconds()>=1.0*number_of_threads ) {
+                        printf("Warning: __TBB_Yield failing to yield with %d threads (or system is heavily loaded)\n",number_of_threads);
+                        Quit = true;
+                        return;
+                    }
+                }
+            }
+            // Notify next thread that it can run            
+            CyclicCounter = (k+1)%number_of_threads;
+        }
+    }
+};
+
+int main( long argc, char* argv[] ) {
+    // Set defaults
+    MaxThread = MinThread = 3;
+    ParseCommandLine( argc, argv );
+    for( int p=MinThread; p<=MaxThread; ++p ) {
+        if( Verbose ) printf("testing with %d threads\n", p );
+        CyclicCounter = 0;
+        Quit = false;
+        NativeParallelFor( tbb::blocked_range<long>(0,p,1), RoundRobin(p) );
+    }
+    printf("done\n");
+    return 0;
+}
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/tbb.git



More information about the debian-science-commits mailing list